diff --git a/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/controller/apis/MongoAreaController.java b/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/controller/apis/MongoAreaController.java index 1c060358..9bc8b11c 100644 --- a/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/controller/apis/MongoAreaController.java +++ b/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/controller/apis/MongoAreaController.java @@ -120,4 +120,14 @@ public class MongoAreaController extends DefaultBaseController { return mongoAreaService.listByCode(areaCode); } + @ApiOperation(value = "地区字典列表(通过地区字典编码)", notes = "地区字典列表(通过地区字典编码)接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "areaCode", value = "地区字典编码", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-sub/code/{areaCode}") + public List listSubByCode(@PathVariable("areaCode") String areaCode) { + return mongoAreaService.listSubByCode(areaCode); + } + } diff --git a/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/service/impl/MongoAreaServiceImpl.java b/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/service/impl/MongoAreaServiceImpl.java index 6f74f79c..a5dffa2e 100644 --- a/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/service/impl/MongoAreaServiceImpl.java +++ b/mongo-module-dictionary/src/main/java/ink/wgink/mongo/module/dictionary/service/impl/MongoAreaServiceImpl.java @@ -103,10 +103,10 @@ public class MongoAreaServiceImpl extends DefaultBaseService implements IMongoAr @Override public List listSubByCode(String areaCode) { - Pattern pattern = Pattern.compile("^" + WStringUtil.cutContinuityRepeatCharDesc(areaCode, '0') + ".*$", Pattern.CASE_INSENSITIVE); + String baseAreaCode = WStringUtil.cutContinuityRepeatCharDesc(areaCode, '0'); + Pattern pattern = Pattern.compile("^" + baseAreaCode + "((?!" + areaCode.replace(baseAreaCode, "") + ").)*$", Pattern.CASE_INSENSITIVE); Query query = new Query(); query.addCriteria(Criteria.where("areaCode").regex(pattern)); - query.addCriteria(Criteria.where("areaCode").ne(areaCode)); return mongoTemplate.find(query, AreaDTO.class, MongoDictionaryCollectionEnum.AREA.getValue()); }