处理mongo地区下级查询正则导致的报错问题
This commit is contained in:
parent
c83f6d7db9
commit
8b6f1bdbf1
@ -120,4 +120,14 @@ public class MongoAreaController extends DefaultBaseController {
|
|||||||
return mongoAreaService.listByCode(areaCode);
|
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<AreaDTO> listSubByCode(@PathVariable("areaCode") String areaCode) {
|
||||||
|
return mongoAreaService.listSubByCode(areaCode);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -103,10 +103,10 @@ public class MongoAreaServiceImpl extends DefaultBaseService implements IMongoAr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AreaDTO> listSubByCode(String areaCode) {
|
public List<AreaDTO> 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 query = new Query();
|
||||||
query.addCriteria(Criteria.where("areaCode").regex(pattern));
|
query.addCriteria(Criteria.where("areaCode").regex(pattern));
|
||||||
query.addCriteria(Criteria.where("areaCode").ne(areaCode));
|
|
||||||
return mongoTemplate.find(query, AreaDTO.class, MongoDictionaryCollectionEnum.AREA.getValue());
|
return mongoTemplate.find(query, AreaDTO.class, MongoDictionaryCollectionEnum.AREA.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user