Commit 7f4ecacf authored by 技术部-任文超's avatar 技术部-任文超

入参调整为非必传;身份证号掩码与手机号掩码撞库时,最多返回前20条匹配结果,若撞不到则返回空

parent 5de6b024
......@@ -619,15 +619,16 @@ public class InnerController implements IBaseController {
*
* @param phoneNo - 手机号
* @param idNo - 身份证号
* @param userName - 用户姓名
* @return JsonResult<List < UserDetail>>
*/
@ApiOperation(httpMethod = "POST", value = "按照身份证号和手机号查询用户实名信息查询 - 模糊查询")
@RequestMapping("/user_detail/fuzzyQuery")
@TargetDataSource(type = DSType.SLAVE)
public JsonResult<List<UserDetail>> fuzzyQueryUserDetailList(@ApiParam(value = "手机号") @RequestParam(name = "phoneNo") String phoneNo,
@ApiParam(value = "身份证号") @RequestParam(name = "idNo") String idNo,
@ApiParam(value = "用户姓名") @RequestParam(name = "userName") String userName) {
log.info("fuzzyQueryUserDetailList, phone:{},idNo:{},ip:{}", phoneNo, idNo, getIp());
public JsonResult<List<UserDetail>> fuzzyQueryUserDetailList(@ApiParam(value = "手机号") String phoneNo,
@ApiParam(value = "身份证号") String idNo,
@ApiParam(value = "用户姓名") String userName) {
log.info("fuzzyQueryUserDetailList, phone:{},idNo:{},userName:{},ip:{}", phoneNo, idNo, userName, getIp());
if (StringUtils.isBlank(phoneNo) && StringUtils.isBlank(idNo)) {
return JsonResult.buildErrorStateResult("查询条件不能为空", null);
}
......@@ -638,23 +639,23 @@ public class InnerController implements IBaseController {
int idNoFullSize = 18;
boolean phoneNoValid = phoneNo.length() >= phoneNoMaskSize || ValidationUtil.validatePhoneNo(phoneNo);
boolean idNoValid = idNo.length() >= idNoMaskSize || Objects.equals(idNo.length(), idNoFullSize);
if (phoneNoValid && idNoValid) {
List<UserDetail> userDetailList = userDetailService.fuzzyQueryByPhoneNoAndIdNo(phoneNo, idNo);
if (StringUtils.isNotEmpty(userName)) {
userDetailList = userDetailList.stream().filter(userDetail -> userName.equals(userDetail.getName())).collect(Collectors.toList());
if (!phoneNoValid && !idNoValid) {
return JsonResult.buildErrorStateResult("查询条件不规范!", null);
}
return JsonResult.buildSuccessResult("success", userDetailList);
List<UserDetail> userDetailList = null;
if (phoneNoValid && idNoValid) {
userDetailList = userDetailService.fuzzyQueryByPhoneNoAndIdNo(phoneNo, idNo);
} else if (idNoValid) {
userDetailList = userDetailService.findByIdNoStartingWith(idNo);
} else {
userDetailList = userDetailService.findByPhoneNoStartingWith(phoneNo);
}
if (!phoneNoValid && idNoValid) {
List<UserDetail> userDetailList = userDetailService.findByIdNoStartingWith(idNo);
return JsonResult.buildSuccessResult("success", userDetailList);
// 如果传入姓名,则进行过滤
if (!CollectionUtils.isEmpty(userDetailList) && StringUtils.isNotEmpty(userName)) {
userDetailList = userDetailList.stream().filter(userDetail -> Objects.equals(userName, userDetail.getName())).collect(Collectors.toList());
}
if (phoneNoValid) {
List<UserDetail> userDetailList = userDetailService.findByPhoneNoStartingWith(phoneNo);
return JsonResult.buildSuccessResult("success", userDetailList);
}
return JsonResult.buildErrorStateResult("查询条件不规范!", null);
}
@RequestMapping("/user_ext_info/search/user_id")
@ApiOperation(httpMethod = "POST", value = "查询用户扩展信息")
......
......@@ -62,7 +62,7 @@ public interface IUserDetailRepository extends JpaRepository<UserDetail, Long>,
List<UserDetail> findByIdNoStartingWithLimit20(String idNo);
List<UserDetail> findByPhoneNoStartingWith(String phoneNo);
List<UserDetail> findByPhoneNoStartingWithLimit20(String phoneNo);
List<UserDetail> findByIdBetween(Long id, Long endId);
......
......@@ -127,7 +127,7 @@ public class UserDetailServiceImpl implements IUserDetailService {
@Override
public List<UserDetail> findByPhoneNoStartingWith(String phoneNo) {
return userDetailRepository.findByPhoneNoStartingWith(phoneNo);
return userDetailRepository.findByPhoneNoStartingWithLimit20(phoneNo);
}
private Specification<UserDetail> getSpecification(String name, String phoneNo, String idNo) {
......
......@@ -2,6 +2,7 @@ package common;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import cn.quantgroup.xyqb.Constants;
......@@ -39,4 +40,10 @@ public class TestJdk8 {
log.info("50963791:{}", content);
}
@Test
public void uuid() {
String uuid = UUID.randomUUID().toString();
log.info("uuid:{}", uuid);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment