From 152687d40f879e2e2e8f672b818929b748b9666a Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 12 三月 2024 18:16:21 +0800
Subject: [PATCH] 地域、点位优化

---
 ycl-server/src/main/java/com/ycl/platform/controller/RegionController.java     |    6 +++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java             |    3 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RegionCascaderVO.java        |   27 +++++++++++++
 ycl-server/src/main/java/com/ycl/platform/service/RegionService.java           |    6 +++
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java           |    3 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/YwPointQuery.java         |    3 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java               |    3 +
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java |   14 ++++++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/RegionServiceImpl.java  |   31 +++++++++++++++
 9 files changed, 94 insertions(+), 2 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
index 1e33e8d..39f9865 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
@@ -48,5 +48,8 @@
     @TableField("remark")
     private String remark;
 
+    @TableField("point_detail")
+    private String pointDetail;
+
 
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
index e5fd435..7b8274d 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
@@ -46,6 +46,9 @@
     @ApiModelProperty("杩愮淮鐘舵��")
     private String status;
 
+
+    private String pointDetail;
+
 //    @NotBlank(message = "澶囨敞涓嶈兘涓虹┖", groups = {Add.class, Update.class})
 //    @ApiModelProperty("澶囨敞")
 //    private String remark;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/YwPointQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/YwPointQuery.java
index ca880b0..a27e1f5 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/YwPointQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/YwPointQuery.java
@@ -20,5 +20,8 @@
 @Accessors(chain = true)
 @ApiModel(value = "YwPoint鏌ヨ", description = "杩愮淮鐐逛綅鏌ヨ")
 public class YwPointQuery extends AbsQuery {
+
+    private String pointName;
+
 }
 
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RegionCascaderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RegionCascaderVO.java
new file mode 100644
index 0000000..2c4b97f
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RegionCascaderVO.java
@@ -0,0 +1,27 @@
+package com.ycl.platform.domain.vo;
+
+import enumeration.general.RegionLevelEnum;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍦板煙绾ц仈
+ *
+ * @author锛歺p
+ * @date锛�2024/3/12 16:21
+ */
+@Data
+public class RegionCascaderVO {
+
+    private Integer value;
+
+    private String label;
+
+    private Integer parentId;
+
+    private RegionLevelEnum regionLevel;
+
+    private List<RegionCascaderVO> children;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
index 9b41fcf..c7aa164 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
@@ -33,6 +33,7 @@
 
     /** 杩愮淮鍗曚綅 */
     private Integer unitId;
+    private String unitName;
 
     /** 杩愮淮鐘舵�� */
     private String status;
@@ -40,6 +41,8 @@
     /** 澶囨敞 */
     private String remark;
 
+    private String pointDetail;
+
     public static YwPointVO getVoByEntity(@NonNull YwPoint entity, YwPointVO vo) {
         if(vo == null) {
             vo = new YwPointVO();
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/RegionController.java b/ycl-server/src/main/java/com/ycl/platform/controller/RegionController.java
index d00f065..21ccbe0 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/RegionController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/RegionController.java
@@ -78,4 +78,10 @@
     public Result counties() {
         return regionService.counties();
     }
+
+    @GetMapping("/cascader")
+    @ApiOperation(value = "绾ц仈閫夋嫨", notes = "绾ц仈閫夋嫨")
+    public Result cascader() {
+        return regionService.cascader();
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/RegionService.java b/ycl-server/src/main/java/com/ycl/platform/service/RegionService.java
index ea891e4..49a1f1f 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/RegionService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/RegionService.java
@@ -68,4 +68,10 @@
      * @return
      */
     Result counties();
+
+    /**
+     * 绾ц仈閫夋嫨
+     * @return
+     */
+    Result cascader();
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/RegionServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/RegionServiceImpl.java
index 713130a..045e50c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/RegionServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/RegionServiceImpl.java
@@ -3,6 +3,7 @@
 import com.ycl.platform.base.BaseSelect;
 import com.ycl.platform.domain.entity.Region;
 import com.ycl.platform.domain.entity.YwUnit;
+import com.ycl.platform.domain.vo.RegionCascaderVO;
 import com.ycl.platform.mapper.RegionMapper;
 import com.ycl.platform.service.RegionService;
 import com.ycl.system.Result;
@@ -171,4 +172,34 @@
         }).collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    public Result cascader() {
+        List<Region> regionList = new LambdaQueryChainWrapper<>(baseMapper)
+                .ne(Region::getRegionLevel, RegionLevelEnum.CITY)
+                .list();
+        List<RegionCascaderVO> vos = regionList.stream().map(entity -> {
+            RegionCascaderVO vo = new RegionCascaderVO();
+            vo.setValue(entity.getId());
+            vo.setLabel(entity.getSimpleName());
+            vo.setRegionLevel(entity.getRegionLevel());
+            vo.setParentId(entity.getParentId());
+            return vo;
+        }).collect(Collectors.toList());
+        List<RegionCascaderVO> removeList = new ArrayList<>(12);
+        for (RegionCascaderVO region : vos) {
+            if (region.getRegionLevel() == RegionLevelEnum.COUNTY) {
+                List<RegionCascaderVO> childList = new ArrayList<>(12);
+                for (RegionCascaderVO region1 : vos) {
+                    if (region1.getParentId() == region.getValue()) {
+                        childList.add(region1);
+                        removeList.add(region1);
+                    }
+                }
+                region.setChildren(childList);
+            }
+        }
+        vos.removeAll(removeList);
+        return Result.ok().data(vos);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
index 1941582..811d071 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -1,7 +1,9 @@
 package com.ycl.platform.service.impl;
 
 import com.ycl.platform.domain.entity.YwPoint;
+import com.ycl.platform.domain.entity.YwUnit;
 import com.ycl.platform.mapper.YwPointMapper;
+import com.ycl.platform.mapper.YwUnitMapper;
 import com.ycl.platform.service.YwPointService;
 import com.ycl.system.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,7 +11,7 @@
 import com.ycl.platform.domain.vo.YwPointVO;
 import com.ycl.platform.domain.query.YwPointQuery;
 import java.util.List;
-import org.apache.commons.lang3.StringUtils;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.system.page.PageUtil;
 import org.springframework.stereotype.Service;
@@ -22,6 +24,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import lombok.RequiredArgsConstructor;
+import org.springframework.util.StringUtils;
 
 /**
  * 杩愮淮鐐逛綅 鏈嶅姟瀹炵幇绫�
@@ -34,6 +37,7 @@
 public class YwPointServiceImpl extends ServiceImpl<YwPointMapper, YwPoint> implements YwPointService {
 
     private final YwPointMapper ywPointMapper;
+    private final YwUnitMapper ywUnitMapper;
 
     /**
      * 娣诲姞
@@ -115,12 +119,18 @@
     public Result page(YwPointQuery query) {
 
         IPage<YwPoint> page = new LambdaQueryChainWrapper<>(baseMapper)
+                .like(StringUtils.hasText(query.getPointName()), YwPoint::getPointName, query.getPointName())
                 .orderByDesc(YwPoint::getCreateTime)
                 .page(PageUtil.getPage(query, YwPoint.class));
 
         List<YwPointVO> vos = page.getRecords().stream()
                 .map(
-                        entity -> YwPointVO.getVoByEntity(entity, null)
+                        entity -> {
+                            YwPointVO vo = YwPointVO.getVoByEntity(entity, null);
+                            YwUnit unit = ywUnitMapper.selectById(vo.getUnitId());
+                            vo.setUnitName(unit.getUnitName());
+                            return vo;
+                        }
                 )
                 .collect(Collectors.toList());
         return Result.ok().data(vos).total(page.getTotal());

--
Gitblit v1.8.0