diff --git a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java index 0c036bc5..2987c3e9 100644 --- a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java +++ b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java @@ -64,6 +64,14 @@ public interface IAreaService { */ AreaDTO get(String areaId); + /** + * 通过编码获取地区字典详情 + * + * @param areaCode + * @return + */ + AreaDTO getByCode(String areaCode); + /** * 通过上级ID获取地区字典列表 * @@ -99,8 +107,16 @@ public interface IAreaService { /** * 地区字典列表(通过地区字典编码) * - * @param areaCode + * @param areaCode 地区编码 * @return */ List listByCode(String areaCode); + + /** + * 地区字典子列表(不包含本级) + * + * @param areaCode 地区编码 + * @return + */ + List listSubByCode(String areaCode); } diff --git a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java index ae6b1fcd..e386ac54 100644 --- a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java +++ b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java @@ -11,6 +11,7 @@ import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.ZTreeDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.util.map.HashMapUtil; +import ink.wgink.util.string.WStringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -69,6 +70,13 @@ public class AreaServiceImpl extends DefaultBaseService implements IAreaService return areaDao.get(params); } + @Override + public AreaDTO getByCode(String areaCode) { + Map params = getHashMap(2); + params.put("areaCode", areaCode); + return areaDao.get(params); + } + @Override public List listByParentId(String areaParentId) { Map params = getHashMap(1); @@ -106,7 +114,15 @@ public class AreaServiceImpl extends DefaultBaseService implements IAreaService @Override public List listByCode(String areaCode) { Map params = getHashMap(1); - params.put("areaCode", areaCode); + params.put("areaCode", WStringUtil.cutContinuityRepeatCharDesc(areaCode, '0')); + return areaDao.list(params); + } + + @Override + public List listSubByCode(String areaCode) { + Map params = getHashMap(4); + params.put("areaCode", WStringUtil.cutContinuityRepeatCharDesc(areaCode, '0')); + params.put("excludeAreaCode", areaCode); return areaDao.list(params); } diff --git a/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml b/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml index bb674293..b125e75d 100644 --- a/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml +++ b/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml @@ -208,6 +208,10 @@ AND area_code LIKE CONCAT(#{areaCode}, '%') + + AND + area_code != #{excludeAreaCode} + AND area_id IN @@ -248,6 +252,10 @@ AND t1.area_id = #{areaId} + + AND + t1.area_code = #{areaCode} +