From 3b09eb084576dd6be9a7b342edf345293bcc6459 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 25 七月 2023 09:57:27 +0800
Subject: [PATCH] bug
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java | 75 ++++++++++++++++++++++++++++++++++++-
1 files changed, 72 insertions(+), 3 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java
index e5e9bb5..4e85a30 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java
@@ -39,10 +39,10 @@
* @date 2023/6/12 15:18
*/
@Override
- public List<RegionVo> listRegionVo() {
- if (redisService.hasKey(SecurityConstant.REGION_LIST)) {
+ public List<RegionVo> listCityVo() {
+ if (redisService.hasKey(SecurityConstant.CITY_LIST)) {
// 如果存在,则直接从缓存中获取并返回
- List<RegionVo> result = redisService.getCacheList(SecurityConstant.REGION_LIST);
+ List<RegionVo> result = redisService.getCacheList(SecurityConstant.CITY_LIST);
return result;
} else {
// 如果不存在,则从数据库中查询并进行处理
@@ -75,6 +75,75 @@
}
}
// 将处理后的地区列表存入缓存中
+ redisService.setCacheList(SecurityConstant.CITY_LIST, regionVoList1);
+ // 返回处理后的地区列表
+ return regionVoList1;
+ }
+ }
+
+ /**
+ * @param
+ * @return List<RegionVo>
+ * @description
+ * @author jqs
+ * @date 2023/6/12 15:18
+ */
+ @Override
+ public List<RegionVo> listRegionVo() {
+ if (redisService.hasKey(SecurityConstant.REGION_LIST)) {
+ // 如果存在,则直接从缓存中获取并返回
+ List<RegionVo> result = redisService.getCacheList(SecurityConstant.REGION_LIST);
+ return result;
+ } else {
+ // 如果不存在,则从数据库中查询并进行处理
+ List<RegionVo> regionVoList = regionMapper.listRegionVo();
+ List<RegionVo> regionVoList1 = new ArrayList<>();
+ List<RegionVo> regionVoList2 = new ArrayList<>();
+ List<RegionVo> regionVoList3 = new ArrayList<>();
+ // 将地区按照级别分别存放到不同的列表中
+ for (RegionVo regionVo : regionVoList) {
+ if (regionVo.getLevel() == 1) {
+ regionVoList1.add(regionVo);
+ }
+ if (regionVo.getLevel() == 2) {
+ regionVoList2.add(regionVo);
+ }
+ if (regionVo.getLevel() == 3) {
+ regionVoList3.add(regionVo);
+ }
+ }
+ Iterator<RegionVo> regionVoIterator3;
+ RegionVo children;
+ // 将第三级地区挂到第二级地区下面
+ for (RegionVo regionVo : regionVoList2) {
+ if (null == regionVo.getChildren()) {
+ regionVo.setChildren(new ArrayList<>());
+ }
+ regionVoIterator3 = regionVoList3.iterator();
+ while (regionVoIterator3.hasNext()) {
+ children = regionVoIterator3.next();
+ if (regionVo.getId().equals(children.getParentId())) {
+ regionVo.getChildren().add(children);
+ regionVoIterator3.remove();
+ }
+ }
+ }
+ Iterator<RegionVo> regionVoIterator2;
+ // 将第二级地区挂到第一级地区下面
+ for (RegionVo regionVo : regionVoList1) {
+ if (null == regionVo.getChildren()) {
+ regionVo.setChildren(new ArrayList<>());
+ }
+ regionVoIterator2 = regionVoList2.iterator();
+ while (regionVoIterator2.hasNext()) {
+ children = regionVoIterator2.next();
+ if (regionVo.getId().equals(children.getParentId())) {
+ regionVo.getChildren().add(children);
+ regionVoIterator2.remove();
+ }
+ }
+ }
+ // 将处理后的地区列表存入缓存中
redisService.setCacheList(SecurityConstant.REGION_LIST, regionVoList1);
// 返回处理后的地区列表
return regionVoList1;
--
Gitblit v1.7.1