From 06c6900e75635fed38aabfbea759419dfec622c9 Mon Sep 17 00:00:00 2001
From: liyanqi <15181887205@163.com>
Date: 星期五, 16 九月 2022 18:37:29 +0800
Subject: [PATCH] 1:违建上报 2:遂昌行政区域表设计及相关代码实现
---
ycl-platform/src/main/java/com/ycl/controller/region/SccgRegionController.java | 39 +++++++
ycl-common/src/main/java/com/ycl/mapper/platform/region/SccgRegionMapper.java | 16 +++
ycl-common/src/main/java/com/ycl/entity/platform/region/SccgRegion.java | 49 +++++++++
ycl-common/src/main/java/com/ycl/utils/redis/RedisKey.java | 7 +
ycl-platform/src/main/resources/application.yml | 1
ycl-common/src/main/resources/mapper/platform/region/SccgRegionMapper.xml | 17 +++
ycl-common/src/main/java/com/ycl/service/platform/region/ISccgRegionService.java | 22 ++++
ycl-common/src/main/java/com/ycl/service/platform/depart/impl/UmsDepartServiceImpl.java | 7 -
ycl-common/src/main/java/com/ycl/service/platform/dict/impl/DatabaseDictionaryServiceImpl.java | 6
ycl-common/src/main/java/com/ycl/service/platform/region/impl/SccgRegionServiceImpl.java | 87 +++++++++++++++++
10 files changed, 240 insertions(+), 11 deletions(-)
diff --git a/ycl-common/src/main/java/com/ycl/entity/platform/region/SccgRegion.java b/ycl-common/src/main/java/com/ycl/entity/platform/region/SccgRegion.java
new file mode 100644
index 0000000..1b1df03
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/entity/platform/region/SccgRegion.java
@@ -0,0 +1,49 @@
+package com.ycl.entity.platform.region;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.catalina.LifecycleState;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 閬傛槍琛屾斂鍖哄煙
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_sccg_region")
+public class SccgRegion implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鍦板煙鍚�
+ */
+ @TableField("region_name")
+ private String regionName;
+
+ /**
+ * 榛樿0
+ */
+ @TableField("parent_id")
+ private Long parentId;
+
+ @TableField(exist = false)
+ private List<SccgRegion> children;
+}
diff --git a/ycl-common/src/main/java/com/ycl/mapper/platform/region/SccgRegionMapper.java b/ycl-common/src/main/java/com/ycl/mapper/platform/region/SccgRegionMapper.java
new file mode 100644
index 0000000..9032082
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/mapper/platform/region/SccgRegionMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.mapper.platform.region;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.entity.platform.region.SccgRegion;
+
+/**
+ * <p>
+ * 閬傛槍琛屾斂鍖哄煙 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-16
+ */
+public interface SccgRegionMapper extends BaseMapper<SccgRegion> {
+
+}
diff --git a/ycl-common/src/main/java/com/ycl/service/platform/depart/impl/UmsDepartServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/platform/depart/impl/UmsDepartServiceImpl.java
index 77f50de..1b52a84 100644
--- a/ycl-common/src/main/java/com/ycl/service/platform/depart/impl/UmsDepartServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/platform/depart/impl/UmsDepartServiceImpl.java
@@ -180,13 +180,6 @@
return griddingEntities;
}
- /**
- * 閫掑綊鏌ユ壘鎵�鏈夌綉鏍肩殑瀛愮綉鏍�
- *
- * @param root 褰撳墠缃戞牸
- * @param all 鎵�鏈夌綉鏍�
- * @return
- */
public List<UmsDepart> getChildrens(UmsDepart root, List<UmsDepart> all) {
List<UmsDepart> collect = all.stream().filter(griddingEntity -> {
return griddingEntity.getParentId().equals(root.getId());
diff --git a/ycl-common/src/main/java/com/ycl/service/platform/dict/impl/DatabaseDictionaryServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/platform/dict/impl/DatabaseDictionaryServiceImpl.java
index 7970e22..3d0caac 100644
--- a/ycl-common/src/main/java/com/ycl/service/platform/dict/impl/DatabaseDictionaryServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/platform/dict/impl/DatabaseDictionaryServiceImpl.java
@@ -40,11 +40,11 @@
@Override
public List<DatabaseDictionary> getAll() {
- String key = RedisKey.DICT_LIST_ALL;
- String result = (String) redisService.get(key);
+ String key = RedisKey.DICT;
+ String result = (String) redisService.get(key.concat("all"));
if (StringUtils.isBlank(result)) {
List<DatabaseDictionary> dictList = databaseDictionaryMapper.selectList(null);
- redisService.set(key, JSON.toJSONString(dictList), LiveTimeMillisecond.s86400.time);
+ redisService.set(key.concat("all"), JSON.toJSONString(dictList), LiveTimeMillisecond.s86400.time);
return dictList;
}
List<DatabaseDictionary> list = JSONArray.parseArray(result, DatabaseDictionary.class);
diff --git a/ycl-common/src/main/java/com/ycl/service/platform/region/ISccgRegionService.java b/ycl-common/src/main/java/com/ycl/service/platform/region/ISccgRegionService.java
new file mode 100644
index 0000000..0296019
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/service/platform/region/ISccgRegionService.java
@@ -0,0 +1,22 @@
+package com.ycl.service.platform.region;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.entity.platform.region.SccgRegion;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 閬傛槍琛屾斂鍖哄煙 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-16
+ */
+public interface ISccgRegionService extends IService<SccgRegion> {
+ /**
+ * 鏍戠粨鏋�
+ * @return
+ */
+ List<SccgRegion> getTree();
+}
diff --git a/ycl-common/src/main/java/com/ycl/service/platform/region/impl/SccgRegionServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/platform/region/impl/SccgRegionServiceImpl.java
new file mode 100644
index 0000000..0da890f
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/service/platform/region/impl/SccgRegionServiceImpl.java
@@ -0,0 +1,87 @@
+package com.ycl.service.platform.region.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.entity.platform.depart.UmsDepart;
+import com.ycl.entity.platform.region.SccgRegion;
+import com.ycl.mapper.platform.region.SccgRegionMapper;
+import com.ycl.service.platform.region.ISccgRegionService;
+import com.ycl.service.redis.RedisService;
+import com.ycl.utils.common.LiveTimeMillisecond;
+import com.ycl.utils.redis.RedisKey;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 閬傛槍琛屾斂鍖哄煙 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-16
+ */
+@Service
+public class SccgRegionServiceImpl extends ServiceImpl<SccgRegionMapper, SccgRegion> implements ISccgRegionService {
+
+ @Resource
+ private SccgRegionMapper sccgRegionMapper;
+ @Resource
+ private RedisService redisService;
+
+ @Override
+ public List<SccgRegion> getTree() {
+ String result = (String) redisService.get(RedisKey.SCCG_REGION);
+ if (StringUtils.isBlank(result)) {
+ // 1.鏌ュ嚭鎵�鏈夌綉鏍�
+ List<SccgRegion> list = this.list();
+
+ // 2.缁勮鎴愮埗瀛愮殑鏍戝瀷缁撴瀯
+ // 2.1銆佹壘鍒版墍鏈夌殑涓�绾х綉鏍�:浣跨敤jdk8鐨剆tream娴佽繘琛岃繃婊�
+ List<SccgRegion> collect = list.stream().filter(griddingEntity -> {
+ //鍒嗙被鐖秈d涓�0灏辫〃绀鸿缃戞牸涓� 涓�绾х綉鏍�
+ return griddingEntity.getParentId() == 0;
+ }).map(item -> {
+ // 鎵惧埌瀛愮綉鏍� set杩沜hildren灞炴�т腑
+ item.setChildren(getChildrens(item, list));
+ return item;
+ }).collect(Collectors.toList());
+ List<SccgRegion> treeData = getTreeData(collect);
+ redisService.set(RedisKey.SCCG_REGION, JSON.toJSONString(treeData), LiveTimeMillisecond.s5184000.time);
+ return treeData;
+ }
+ return JSON.parseArray(result, SccgRegion.class);
+ }
+
+
+ public List<SccgRegion> getChildrens(SccgRegion root, List<SccgRegion> all) {
+ List<SccgRegion> collect = all.stream().filter(e -> {
+ return e.getParentId().equals(root.getId());
+ }).map(item -> {
+ item.setChildren(getChildrens(item, all));
+ return item;
+ }).collect(Collectors.toList());
+ return collect;
+ }
+
+ /**
+ * 鍒╃敤閫掑綊灏嗘渶鍚庝竴绾х┖闆嗗悎鍙樹负null锛屽墠绔仈绾ч�夋嫨鍣ㄦ渶鍚庢墠涓嶄細鍑虹幇 鏆傛棤鏁版嵁鐨刡ug
+ *
+ * @return
+ */
+ public List<SccgRegion> getTreeData(List<SccgRegion> e) {
+ for (int i = 0; i < e.size(); i++) {
+ //濡傛灉Children鐨剆ize灏忎簬1灏辫鏄庝负绌猴紝璁剧疆涓簄ull
+ if (e.get(i).getChildren().size() < 1) {
+ e.get(i).setChildren(null);
+ } else {
+ //瀛愮綉鏍兼湁鏁版嵁灏遍�掑綊
+ getTreeData(e.get(i).getChildren());
+ }
+ }
+ return e;
+ }
+}
diff --git a/ycl-common/src/main/java/com/ycl/utils/redis/RedisKey.java b/ycl-common/src/main/java/com/ycl/utils/redis/RedisKey.java
index 0935a93..57686db 100644
--- a/ycl-common/src/main/java/com/ycl/utils/redis/RedisKey.java
+++ b/ycl-common/src/main/java/com/ycl/utils/redis/RedisKey.java
@@ -15,5 +15,10 @@
/**
* 瀛楀吀key
*/
- public static final String DICT_LIST_ALL = "dict-list-all";
+ public static final String DICT = "dict:";
+
+ /**
+ * 閬傛槍琛屾斂鍖哄煙
+ */
+ public static final String SCCG_REGION = "sccg-region";
}
diff --git a/ycl-common/src/main/resources/mapper/platform/region/SccgRegionMapper.xml b/ycl-common/src/main/resources/mapper/platform/region/SccgRegionMapper.xml
new file mode 100644
index 0000000..c39f2ec
--- /dev/null
+++ b/ycl-common/src/main/resources/mapper/platform/region/SccgRegionMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.platform.region.SccgRegionMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.entity.platform.region.SccgRegion">
+ <id column="id" property="id"/>
+ <result column="region_name" property="regionName"/>
+ <result column="parent_id" property="parentId"/>
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, region_name, parent_id
+ </sql>
+
+</mapper>
diff --git a/ycl-platform/src/main/java/com/ycl/controller/region/SccgRegionController.java b/ycl-platform/src/main/java/com/ycl/controller/region/SccgRegionController.java
new file mode 100644
index 0000000..6df1ce5
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/controller/region/SccgRegionController.java
@@ -0,0 +1,39 @@
+package com.ycl.controller.region;
+
+
+import com.ycl.api.CommonResult;
+import com.ycl.controller.BaseController;
+import com.ycl.entity.platform.region.SccgRegion;
+import com.ycl.service.platform.region.ISccgRegionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 閬傛槍琛屾斂鍖哄煙 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-16
+ */
+@RestController
+@RequestMapping("/sccg-region")
+@Api(tags = "琛屾斂鍖哄煙")
+public class SccgRegionController extends BaseController {
+
+ @Resource
+ private ISccgRegionService iSccgRegionService;
+
+ @ApiOperation("鏍戠粨鏋�")
+ @GetMapping("/getTree")
+ public CommonResult<List<SccgRegion>> getTree() {
+ List<SccgRegion> treeList = iSccgRegionService.getTree();
+ return CommonResult.success(treeList);
+ }
+}
diff --git a/ycl-platform/src/main/resources/application.yml b/ycl-platform/src/main/resources/application.yml
index 8b3a186..433e57c 100644
--- a/ycl-platform/src/main/resources/application.yml
+++ b/ycl-platform/src/main/resources/application.yml
@@ -84,3 +84,4 @@
- /**/admin/info
- /**/admin/logout
- /dict/**
+ - /sccg-region/**
--
Gitblit v1.8.0