Jelajahi Sumber

优化区域树查询接口

czh 2 tahun lalu
induk
melakukan
ed705c1d54

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysAreaDao.java

@@ -15,7 +15,7 @@ import java.util.Map;
 @Mapper
 public interface SysAreaDao {
 
-    List<Map<String, Object>> findList(Map<String, Object> params);
+    List<SysArea> findList(Map<String, Object> params);
 
     SysArea selectById(Integer code);
 

+ 16 - 6
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -721,16 +721,26 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         if (Objects.isNull(code)) {
             return Collections.emptyList();
         }
-        Map<String, Object> params = new HashMap<>(1);
-        params.put("pcode", code);
-        List<Map<String, Object>> list = sysAreaService.findList(params);
+
+        List<SysArea> list = sysAreaService.findList(null);
         if (CollectionUtils.isEmpty(list)) {
-            return null;
+            return Collections.emptyList();
         }
 
-        List<FindAreaTreeResVo> result = BeanUtils.copyToList(list, FindAreaTreeResVo.class);
+        return getAreaChild(BeanUtils.copyToList(list, FindAreaTreeResVo.class), code);
+    }
+
+    private List<FindAreaTreeResVo> getAreaChild(List<FindAreaTreeResVo> findAreaTreeResVoList, Integer code) {
+        List<FindAreaTreeResVo> result = findAreaTreeResVoList.stream().filter(item -> item.getPcode().equals(code)).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(result)) {
+            return null;
+        }
         for (FindAreaTreeResVo findAreaTreeResVo : result) {
-            findAreaTreeResVo.setChild(queryAreaGroup(findAreaTreeResVo.getCode()));
+            if (findAreaTreeResVo.getLevel().equals(Global.NUMERICAL_THREE)) {
+                continue;
+            }
+
+            findAreaTreeResVo.setChild(getAreaChild(findAreaTreeResVoList, findAreaTreeResVo.getCode()));
         }
         return result;
     }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysAreaService.java

@@ -28,7 +28,7 @@ public class SysAreaService {
      * @param params
      * @return
      */
-    public List<Map<String, Object>> findList(Map<String, Object> params) {
+    public List<SysArea> findList(Map<String, Object> params) {
         return sysAreaDao.findList(params);
     }
 

+ 3 - 1
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -284,11 +284,13 @@
     from kws_enterprise a
            left join kws_dept b on a.id = b.ent_id
            LEFT JOIN kws_user d ON a.phone = d.account
-           left join kws_role f on b.id = f.dept_id
+           left join kws_user_role e on d.id = e.user_id
+           left join kws_role f on e.role_id = f.id
     where a.del_flag = 0
       and b.del_flag = 0
       and d.del_flag = 0
       and f.del_flag = 0
+      and e.del_flag = 0
       and d.is_main = 1
       and d.system_type = 2
       and a.id = #{entId}

+ 1 - 1
sckw-modules/sckw-system/src/main/resources/mapper/SysAreaDao.xml

@@ -31,7 +31,7 @@
     del_flag
   </sql>
 
-  <select id="findList" resultType="java.util.Map" parameterType="java.util.Map" >
+  <select id="findList" resultType="com.sckw.system.model.SysArea" parameterType="java.util.Map" >
     SELECT
     code , pcode , name, code, hot, level, lng, lat, letter, merger_name mergerName,
     short_name shortName