From 56209c7e652e25951623ab0041baa710cc29490e Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 03 八月 2022 09:23:04 +0800
Subject: [PATCH] 优化代码

---
 service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java b/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java
index 1f242d5..7f50c4a 100644
--- a/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java
@@ -107,27 +107,43 @@
                 if(!apiStaffDataVo.getUserId().equals(tmpOrgStaffRelDto.getStaffId())){
                     continue;
                 }
-                tmpOrgStaffRelDto.setParentOrgId(tmpOrgStaffRelDto.getOrgId());
-                findParents(tmpOrgStaffRelDto, orgDtos, null);
-                apiStaffDataVo.setOrgName(tmpOrgStaffRelDto.getOrgName());
+               apiStaffDataVo.setOrgId(tmpOrgStaffRelDto.getOrgId());
             }
+        }
+
+        for(ApiStaffDataVo apiStaffDataVo : staffs) {
+            if(StringUtil.isEmpty(apiStaffDataVo.getOrgId())){
+                continue;
+            }
+            apiStaffDataVo.setParentOrgId(apiStaffDataVo.getOrgId());
+
+            findParents(apiStaffDataVo, orgDtos, null,0);
+
         }
 
     }
 
 
-    private void findParents(OrgStaffRelDto orgStaffRelDto, List<OrgDto> orgDtos, OrgDto curOrgDto) {
+    private void findParents(ApiStaffDataVo apiStaffDataVo, List<OrgDto> orgDtos, OrgDto curOrgDto,int orgDeep) {
         for (OrgDto orgDto : orgDtos) {
-            if (!orgStaffRelDto.getParentOrgId().equals(orgDto.getOrgId())) { // 浠栬嚜宸辫烦杩�
-                continue;
-            }
-            orgStaffRelDto.setParentOrgId(orgDto.getParentOrgId());
             curOrgDto = orgDto;
-            if (StringUtil.isEmpty(orgStaffRelDto.getOrgName())) {
-                orgStaffRelDto.setOrgName(orgDto.getOrgName() );
+            if (!apiStaffDataVo.getParentOrgId().equals(orgDto.getOrgId())) { // 浠栬嚜宸辫烦杩�
                 continue;
             }
-            orgStaffRelDto.setOrgName(orgDto.getOrgName() + " / " + orgStaffRelDto.getOrgName());
+
+            //濡傛灉鍒颁竴绾� 灏辩粨鏉�
+            if(OrgDto.ORG_LEVEL_STORE.equals(apiStaffDataVo.getOrgLevel())){
+                continue;
+            }
+
+            apiStaffDataVo.setParentOrgId(orgDto.getParentOrgId());
+
+            if (StringUtil.isEmpty(apiStaffDataVo.getOrgName())) {
+                apiStaffDataVo.setOrgName(orgDto.getOrgName() );
+                continue;
+            }
+            apiStaffDataVo.setOrgName(orgDto.getOrgName() + " / " + apiStaffDataVo.getOrgName());
+            apiStaffDataVo.setOrgLevel(orgDto.getOrgLevel());
         }
 
         if (curOrgDto != null && OrgDto.ORG_LEVEL_STORE.equals(curOrgDto.getOrgLevel())) {
@@ -142,7 +158,13 @@
             return;
         }
 
-        findParents(orgStaffRelDto, orgDtos, curOrgDto);
+        orgDeep +=1;
+
+        if(orgDeep > 20){
+            return ;
+        }
+
+        findParents(apiStaffDataVo, orgDtos, curOrgDto,orgDeep);
     }
 
     /**

--
Gitblit v1.8.0