From cd9729d4c11cb2ba53cb6959c0fdf2a91824237b Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Thu, 30 Nov 2023 13:38:45 +0800 Subject: [PATCH] =?UTF-8?q?1.system=20=E5=A2=9E=E5=8A=A0=20=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/RegionController.java | 12 ++++ .../system/service/IRegionService.java | 3 + .../service/impl/RegionServiceImpl.java | 56 +++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java index 660ee5fa..ee6aa3e5 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java @@ -45,6 +45,7 @@ import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -130,6 +131,17 @@ public class RegionController extends BladeController { return R.data(RegionWrapper.build().listNodeLazyVO(list)); } + + @GetMapping("/selectAllStr") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "全部地区格式列表", notes = "") + public R selectAllStr() { + String str = regionService.selectAllStr(); + Map map = new HashMap<>(); + map.put("jsonStr",str); + return R.data(map); + } + /** * 新增 行政区划表 */ diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java index 9c60ad21..e15f630f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java @@ -89,4 +89,7 @@ public interface IRegionService extends IService { * @return */ List lazyListAll(); + + String selectAllStr(); + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java index 87fcc244..cfd1a2ab 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java @@ -16,13 +16,17 @@ */ package org.springblade.system.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javafx.scene.effect.SepiaTone; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; @@ -33,6 +37,7 @@ import org.springblade.system.mapper.RegionMapper; import org.springblade.system.service.IRegionService; import org.springblade.system.vo.RegionAllVO; import org.springblade.system.vo.RegionVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; @@ -49,6 +54,9 @@ import static org.springblade.system.cache.RegionCache.*; @Service public class RegionServiceImpl extends ServiceImpl implements IRegionService { + @Autowired + private BladeRedis bladeRedis; + @Override public boolean submit(Region region) { // 设置市级编号格式 @@ -194,6 +202,54 @@ public class RegionServiceImpl extends ServiceImpl impleme return list; } + @Override + public String selectAllStr() { + String key = "REGION:ALL:ROW:DATA"; + String str = bladeRedis.get(key); + if(StringUtil.isBlank(str)){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("parent_code","00"); + List regions = baseMapper.selectList(queryWrapper); + JSONArray jsonArray = new JSONArray(); + for (Region region : regions) { + String code = region.getCode(); + JSONObject provinceObject = new JSONObject(); + provinceObject.put("value",code); + provinceObject.put("label",region.getName()); + queryWrapper.eq("parent_code",code); + List cityRegions = baseMapper.selectList(queryWrapper); + JSONArray cityArray = new JSONArray(); + for (Region cityRegion : cityRegions) { + String cityCode = cityRegion.getCode(); + JSONObject cityObject = new JSONObject(); + cityObject.put("value",cityCode); + cityObject.put("label",cityRegion.getName()); + queryWrapper.eq("parent_code",cityCode); + List areaRegions = baseMapper.selectList(queryWrapper); + JSONArray areaArray = new JSONArray(); + for (Region areaRegion : areaRegions){ + String areaCode = areaRegion.getCode(); + String areaName = areaRegion.getName(); + JSONObject areaObject = new JSONObject(); + cityObject.put("value",areaCode); + cityObject.put("label",areaName); + areaArray.add(cityObject); + } + if(areaArray.size() > 0){ + cityObject.put("children",areaArray); + } + cityArray.add(cityObject); + } + if(cityArray.size() > 0){ + provinceObject.put("children",cityArray); + } + jsonArray.add(provinceObject); + } + str = jsonArray.toJSONString(); + } + return str; + } + @Override public List lazyTree(String parentCode, Map param) { return baseMapper.lazyTree(parentCode, param);