@@ -35,6 +35,15 @@ public interface RegionCacheHelper { | |||||
RegionDTO getByCodeAndLevel(String code, int level); | RegionDTO getByCodeAndLevel(String code, int level); | ||||
/** | /** | ||||
* 获取区域名称 | |||||
* | |||||
* @param code 区域编码 | |||||
* @param level 区域层级 | |||||
* @return 名称 | |||||
*/ | |||||
String getRegionName(String code, int level); | |||||
/** | |||||
* 根据传入的地区code与level获取所有上层地区集合 | * 根据传入的地区code与level获取所有上层地区集合 | ||||
* 按照level升序排列 | * 按照level升序排列 | ||||
* | * | ||||
@@ -34,6 +34,11 @@ public class RegionsCacheHelperImpl extends AbstractRegionCacheHelper implements | |||||
} | } | ||||
@Override | @Override | ||||
public String getRegionName(String code, int level) { | |||||
return getByCodeAndLevel(code, level).getRegionName(); | |||||
} | |||||
@Override | |||||
public List<RegionDTO> all() { | public List<RegionDTO> all() { | ||||
return super.all(); | return super.all(); | ||||
} | } | ||||
@@ -101,12 +106,13 @@ public class RegionsCacheHelperImpl extends AbstractRegionCacheHelper implements | |||||
} | } | ||||
StringBuilder builder = new StringBuilder(); | StringBuilder builder = new StringBuilder(); | ||||
List<String> regionCodes = StrUtils.split(region.getRegionCodePath()); | List<String> regionCodes = StrUtils.split(region.getRegionCodePath()); | ||||
for (int i = regionCodes.size() - 1; i > 0; i--) { | |||||
for (int i = regionCodes.size() - 2; i > 0; i--) { | |||||
if (level <= sLevel) { | if (level <= sLevel) { | ||||
break; | break; | ||||
} | } | ||||
RegionDTO tmp = getByCodeAndLevel(regionCodes.get(i), --level); | RegionDTO tmp = getByCodeAndLevel(regionCodes.get(i), --level); | ||||
builder.append(tmp.getRegionName()).append(StrPool.SLASH); | |||||
builder.insert(0, StrPool.SLASH); | |||||
builder.insert(0, tmp.getRegionName()); | |||||
} | } | ||||
builder.append(region.getRegionName()); | builder.append(region.getRegionName()); | ||||
return builder.toString(); | return builder.toString(); | ||||
@@ -16,7 +16,6 @@ import java.util.Objects; | |||||
* @since 13:54 2023/3/1 | * @since 13:54 2023/3/1 | ||||
*/ | */ | ||||
@Data | @Data | ||||
@Builder | |||||
@AllArgsConstructor | @AllArgsConstructor | ||||
public class RegionMapKey { | public class RegionMapKey { | ||||
@@ -24,11 +23,6 @@ public class RegionMapKey { | |||||
return new RegionMapKey(regionCode, regionLevel); | return new RegionMapKey(regionCode, regionLevel); | ||||
} | } | ||||
@Tolerate | |||||
public RegionMapKey() { | |||||
} | |||||
/** | /** | ||||
* 区域码 | * 区域码 | ||||
*/ | */ | ||||
@@ -48,8 +42,8 @@ public class RegionMapKey { | |||||
return false; | return false; | ||||
} | } | ||||
RegionMapKey regionMapKey = (RegionMapKey) o; | RegionMapKey regionMapKey = (RegionMapKey) o; | ||||
return regionCode.equals(regionMapKey.getRegionCode()) && | |||||
regionLevel.equals(regionMapKey.getRegionLevel()); | |||||
return regionCode.equals(regionMapKey.getRegionCode()) | |||||
&& regionLevel.equals(regionMapKey.getRegionLevel()); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -1,11 +1,9 @@ | |||||
package com.ningdatech.pmapi.sys.service; | package com.ningdatech.pmapi.sys.service; | ||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import cn.hutool.core.io.FileUtil; | |||||
import cn.hutool.db.Db; | import cn.hutool.db.Db; | ||||
import cn.hutool.db.Entity; | import cn.hutool.db.Entity; | ||||
import cn.hutool.json.JSONObject; | import cn.hutool.json.JSONObject; | ||||
import cn.hutool.json.JSONUtil; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.pmapi.AppTests; | import com.ningdatech.pmapi.AppTests; | ||||
import com.ningdatech.pmapi.sys.model.entity.Menu; | import com.ningdatech.pmapi.sys.model.entity.Menu; | ||||
@@ -74,7 +72,7 @@ class IMenuServiceTest extends AppTests { | |||||
public void initMenu() { | public void initMenu() { | ||||
// menuService.remove(null); | // menuService.remove(null); | ||||
roleMenuService.remove(Wrappers.lambdaQuery(RoleMenu.class) | roleMenuService.remove(Wrappers.lambdaQuery(RoleMenu.class) | ||||
.eq(RoleMenu::getRoleId,1)); | |||||
.eq(RoleMenu::getRoleId, 1)); | |||||
// String str = FileUtil.readString("/Users/wendy/Desktop/long_text_2023-02-13-15-28-42.txt", "UTF-8"); | // String str = FileUtil.readString("/Users/wendy/Desktop/long_text_2023-02-13-15-28-42.txt", "UTF-8"); | ||||
// List<JSONObject> obj = JSONUtil.toList(str, JSONObject.class); | // List<JSONObject> obj = JSONUtil.toList(str, JSONObject.class); | ||||
// save(obj, 0); | // save(obj, 0); | ||||
@@ -5,9 +5,8 @@ import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.pmapi.AppTests; | import com.ningdatech.pmapi.AppTests; | ||||
import com.ningdatech.pmapi.common.helper.RegionCacheHelper; | import com.ningdatech.pmapi.common.helper.RegionCacheHelper; | ||||
import com.ningdatech.pmapi.sys.model.entity.Region; | import com.ningdatech.pmapi.sys.model.entity.Region; | ||||
import org.junit.Test; | |||||
import org.junit.jupiter.api.Test; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -22,13 +21,15 @@ import java.util.concurrent.atomic.AtomicLong; | |||||
* @author WendyYang | * @author WendyYang | ||||
* @since 16:57 2023/3/1 | * @since 16:57 2023/3/1 | ||||
*/ | */ | ||||
public class IRegionServiceTest extends AppTests { | |||||
class IRegionServiceTest extends AppTests { | |||||
@Autowired | @Autowired | ||||
private RegionCacheHelper regionCacheHelper; | |||||
@Autowired | |||||
private IRegionService regionService; | private IRegionService regionService; | ||||
@Test | @Test | ||||
public void init() { | |||||
public void test1() { | |||||
AtomicLong idIncr = new AtomicLong(1); | AtomicLong idIncr = new AtomicLong(1); | ||||
Map<Integer, List<Region>> map = CollUtils.group(regionService.list(), Region::getRegionLevel); | Map<Integer, List<Region>> map = CollUtils.group(regionService.list(), Region::getRegionLevel); | ||||
regionService.remove(null); | regionService.remove(null); | ||||
@@ -54,5 +55,10 @@ public class IRegionServiceTest extends AppTests { | |||||
}); | }); | ||||
} | } | ||||
@Test | |||||
public void test2() { | |||||
System.out.println(regionCacheHelper.getDisplayName("330100", 2)); | |||||
System.out.println(regionCacheHelper.getFullDisplayName("330102", 3)); | |||||
} | |||||
} | } |