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