czh 2 лет назад
Родитель
Сommit
f7f8e9efac

+ 2 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/AreaTreeFrontResDto.java

@@ -23,6 +23,8 @@ public class AreaTreeFrontResDto implements Serializable {
 
     private Integer level;
 
+    private Integer pcode;
+
     private List<AreaTreeFrontResDto> child;
 
 }

+ 2 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressAddReqVo.java

@@ -36,6 +36,7 @@ public class AddressAddReqVo implements Serializable {
      * 联系人
      */
     @Pattern(regexp = RegularUtils.NAME, message = "联系人格式不正确")
+    @NotBlank(message = "联系人不能为空")
     private String contacts;
 
     /**
@@ -67,6 +68,7 @@ public class AddressAddReqVo implements Serializable {
      * 联系人电话
      */
     @Pattern(regexp = RegularUtils.PHONE_REG, message = "手机号格式不正确")
+    @NotBlank(message = "手机号不能为空")
     private String phone;
 
     /**

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java

@@ -19,6 +19,7 @@ import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
@@ -163,8 +164,8 @@ public class KwsUserController {
     }
 
     @PostMapping("testEdit")
-    public HttpResult testEdit(@RequestParam String type, @RequestParam String value) {
-        return HttpResult.ok(kwsUserService.test(type, value));
+    public HttpResult testEdit(@RequestParam String type) {
+        return HttpResult.ok(kwsUserService.test(Arrays.stream(type.split(",")).map(Integer::parseInt).toList()));
     }
 
     @PostMapping("testApprove")

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

@@ -17,4 +17,6 @@ public interface SysAreaDao {
     List<Map<String, Object>> findList(Map<String, Object> params);
 
     SysArea selectById(Integer code);
+
+    List<SysArea> selectByIds(List<Integer> list);
 }

+ 37 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -1,5 +1,7 @@
 package com.sckw.system.dubbo;
 
+import com.google.common.collect.Lists;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -17,6 +19,7 @@ import com.sckw.system.model.vo.res.FindAreaTreeResVo;
 import com.sckw.system.service.KwsUserService;
 import com.sckw.system.service.SysAreaService;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -80,7 +83,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             return Collections.emptyMap();
         }
 
-        return sysDictResDtos.stream().collect(Collectors.toMap(SysDictResDto::getValue, v->v));
+        return sysDictResDtos.stream().collect(Collectors.toMap(SysDictResDto::getValue, v -> v));
     }
 
     /**
@@ -464,9 +467,41 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
 
     @Override
     public List<AreaTreeFrontResDto> queryAreaTreeFrontByCodeList(List<Integer> list) {
-        return null;
+        List<SysArea> sysAreas = sysAreaService.selectByIds(list);
+        if (CollectionUtils.isEmpty(sysAreas)) {
+            return Collections.emptyList();
+        }
+
+        int maxLevel = sysAreas.stream().map(SysArea::getLevel).max(Integer::compareTo).get();
+        List<AreaTreeFrontResDto> areaTreeFrontResDtoList = BeanUtils.copyToList(sysAreas, AreaTreeFrontResDto.class);
+        List<AreaTreeFrontResDto> upLevel = new ArrayList<>();
+        for (int i = maxLevel; i > 1; i--) {
+            int finalI = i;
+            List<AreaTreeFrontResDto> currentLevelArea = areaTreeFrontResDtoList.stream().filter(item -> item.getLevel().equals(finalI)).toList();
+            for (AreaTreeFrontResDto areaTreeFrontResDto : currentLevelArea) {
+                if (!upLevel.stream().map(AreaTreeFrontResDto::getCode).toList().contains(areaTreeFrontResDto.getCode())) {
+                    upLevel.add(areaTreeFrontResDto);
+                }
+            }
+
+            upLevel.removeIf(x -> x.getLevel() > finalI);
+            Map<Integer, List<AreaTreeFrontResDto>> collect = upLevel.stream().collect(Collectors.groupingBy(AreaTreeFrontResDto::getPcode));
+            for (Integer pcode : collect.keySet()) {
+                SysArea sysArea = sysAreaService.selectById(pcode);
+                AreaTreeFrontResDto areaTreeFrontResDto = new AreaTreeFrontResDto();
+                areaTreeFrontResDto.setCode(sysArea.getCode());
+                areaTreeFrontResDto.setPcode(sysArea.getPcode());
+                areaTreeFrontResDto.setName(sysArea.getName());
+                areaTreeFrontResDto.setLevel(sysArea.getLevel());
+                areaTreeFrontResDto.setChild(collect.get(pcode));
+                upLevel.add(areaTreeFrontResDto);
+            }
+        }
+
+        return upLevel.stream().filter(x -> x.getLevel() == 1).toList();
     }
 
+
     @Override
     public UserCacheResDto queryManagerInfoByEntId(Long entId) {
         KwsEnterpriseResDto kwsEnterpriseResDto = remoteBaseService.queryEnterpriseById(entId);

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -10,6 +10,7 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
 import com.sckw.system.api.model.dto.req.UpdatePasswordReqDto;
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.RegisterResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.dao.*;
@@ -593,8 +594,8 @@ public class KwsUserService {
         updatePwd(reqVo.getNewPassword(), kwsUser);
     }
 
-    public List<SysDictResDto> test(String type, String value) {
-        return remoteSystemService.queryDictBottom(type, value);
+    public List<AreaTreeFrontResDto> test(List<Integer> list) {
+        return remoteSystemService.queryAreaTreeFrontByCodeList(list);
     }
 
 }

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

@@ -44,6 +44,17 @@ public class SysAreaService {
         return sysAreaDao.selectById(code);
     }
 
+    /**
+     * @desc: 根据id获取
+     * @author: yzc
+     * @date: 2023-07-11 11:38
+     * @Param code:
+     * @return: com.sckw.system.model.SysArea
+     */
+    public List<SysArea> selectByIds(List<Integer> list) {
+        return sysAreaDao.selectByIds(list);
+    }
+
 
     /**
      * @param reqVo pcode

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

@@ -57,4 +57,15 @@
     from sys_area
     where code = #{code,jdbcType=INTEGER}
   </select>
+
+    <select id="selectByIds" resultType="com.sckw.system.model.SysArea">
+      select
+      <include refid="Base_Column_List" />
+      from sys_area
+      where del_flag = 0
+        and code in
+      <foreach collection="list" separator="," open="(" close=")" item="item">
+        #{item}
+      </foreach>
+    </select>
 </mapper>