Procházet zdrojové kódy

用户机构数据过滤

hym před 4 roky
rodič
revize
07750a8401

+ 17 - 0
user_center/src/main/java/com/huaxu/controller/OrgController.java

@@ -116,5 +116,22 @@ public class OrgController {
         return new AjaxMessage<>(ResultStatus.OK,
                 orgService.deleteAll(ids));
     }
+    /**
+     * 获取机构树
+     *
+     * @param
+     * @param
+     * @return Response对象
+     */
+    @RequestMapping(value = "getOrgUserTree", method = RequestMethod.POST)
+    @ApiOperation(value = "获取机构树")
+    public AjaxMessage<List<OrgTree>> getOrgUserTree(@ApiParam(value = "机构类型", required = true)
+
+                                                 @RequestParam  String orgType) {
+        Org org=new Org();
+        org.setOrgType(orgType);
+
+        return new AjaxMessage<>(ResultStatus.OK, orgService.getUserTrees(org));
+    }
 
 }

+ 1 - 0
user_center/src/main/java/com/huaxu/service/OrgService.java

@@ -87,4 +87,5 @@ public interface OrgService {
 
     IPage<Org> selectPage(Org org, IPage<Org> page);
     List<OrgTree> getTrees(Org org);
+    List<OrgTree>getUserTrees(Org org);
 }

+ 34 - 0
user_center/src/main/java/com/huaxu/service/impl/OrgServiceImpl.java

@@ -189,6 +189,40 @@ public class OrgServiceImpl implements OrgService {
 
         return trees;
     }
+
+    @Override
+    public List<OrgTree> getUserTrees(Org org) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        org.setTenantId(currentUser.getTenantId());
+        Set<Integer>orgIds=new HashSet<>();
+        List<ProgramItem> programItemList = currentUser.getProgramItemList();
+        if(programItemList!=null){
+            programItemList.forEach(programItem -> {
+                orgIds.add(programItem.getOrgId());
+            });
+        }
+
+        List<OrgTree> trees=new ArrayList<>();
+        if("company".equals(org.getOrgType())){
+            if(currentUser.getDepartmentId()==null){
+                trees=orgMapper.selectTrees(org);
+                trees=getOrgTree(trees,currentUser.getCompanyId(),1,orgIds);
+            }else{
+                org.setId(currentUser.getCompanyId());
+                trees=orgMapper.selectTrees(org);
+            }
+        }else{
+            if(currentUser.getDepartmentId()!=null){
+                org.setOrgType("department");
+                trees=orgMapper.selectTrees(org);
+                trees=getOrgTree(trees,currentUser.getDepartmentId(),1,orgIds);
+            }
+
+        }
+
+        return trees;
+    }
+
     public static List<OrgTree> getOrgTree(List<OrgTree> list, Integer id, Integer level, Set<Integer> set) {
         List<OrgTree> temList = newArrayList();
         if (list != null) {

+ 4 - 1
user_center/src/main/resources/mapper/OrgMapper.xml

@@ -267,9 +267,12 @@
                <if test="tenantId!=null ">
                   and TENANT_ID=#{tenantId}
                </if>
-               <if test="orgType=='company'">
+               <if test="orgType=='company'||orgType=='department'">
                   and ORG_TYPE=#{orgType}
                </if>
+               <if test="id!=null">
+                   and id=#{id}
+               </if>
            </where>
 
     </select>