Răsfoiți Sursa

学校功能

TRX 1 an în urmă
părinte
comite
6b92c9f242

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/service/school/AreaService.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.client.service.school;
 
 import com.zhongshu.card.client.model.base.IDsParam;
+import com.zhongshu.card.client.model.school.AreaModel;
 import com.zhongshu.card.client.model.school.AreaParam;
 import com.zhongshu.card.client.ret.ResultContent;
 import com.zhongshu.card.client.utils.ITree;
@@ -17,6 +18,9 @@ public interface AreaService {
 
     public ResultContent<List<ITree>> getAreaTree(String oid);
 
+    // 加载当前区域的所有上级区域(包括自己)
+    List<AreaModel> getParents(String id);
+
     // 删除
     ResultContent deleteArea(String id);
 

+ 24 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/AreaServiceImpl.java

@@ -23,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -150,6 +151,29 @@ public class AreaServiceImpl extends SuperService implements AreaService {
         return ResultContent.buildSuccess(iTrees);
     }
 
+    /**
+     * 加载当前区域的所有上级区域(包括自己)
+     *
+     * @param id
+     * @return
+     */
+    public List<AreaModel> getParents(String id) {
+        List<Area> list = new ArrayList<>();
+        loopLoad(id, list);
+        List<AreaModel> models = list.stream().map(this::toModel).collect(Collectors.toList());
+        return models;
+    }
+
+    private void loopLoad(String id, List<Area> list) {
+        Area area = areaDao.findTopById(id);
+        if (ObjectUtils.isNotEmpty(area)) {
+            list.add(area);
+            if (StringUtils.isNotEmpty(area.getParentId()) && !area.getParentId().equals(ITree.ROOT_ID)) {
+                loopLoad(area.getParentId(), list);
+            }
+        }
+    }
+
     public AreaModel toModel(Area entity) {
         AreaModel model = new AreaModel();
         if (ObjectUtils.isNotEmpty(entity)) {