Commit 00d8b44b authored by xiaoguang.xu's avatar xiaoguang.xu

user_detail hash 支持

parent 7e76d22d
......@@ -4,7 +4,6 @@ import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.entity.UserHashMapping;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.repository.IUserDetailRepository;
import cn.quantgroup.xyqb.repository.IUserHashMappingRepository;
import cn.quantgroup.xyqb.util.encrypt.MD5Util;
import com.google.common.base.Stopwatch;
import lombok.extern.slf4j.Slf4j;
......@@ -27,18 +26,13 @@ import java.util.stream.Collectors;
@RequestMapping("/ex/sync_hash")
public class SyncHashController {
private Boolean isContinue = false;
private ExecutorService executorService = Executors.newSingleThreadExecutor();
@Autowired
private IUserHashMappingRepository userHashMappingRepository;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private IUserDetailRepository userDetailRepository;
......@@ -83,14 +77,15 @@ public class SyncHashController {
userHashMappings.forEach(userHashMapping -> sbSql.append(" WHEN ").append(userHashMapping.getUserId()).append(" THEN '").append(userHashMapping.getIdNoMd5()).append("'"));
sbSql.append(" END, `id_no_md5_short` = CASE `user_id` ");
userHashMappings.forEach(userHashMapping -> sbSql.append(" WHEN ").append(userHashMapping.getUserId()).append(" THEN ").append(userHashMapping.getIdNoMd5Short()));
sbSql.append(" END ");
sbSql.append("WHERE `user_id` IN ( ");
sbSql.append(" END WHERE `user_id` IN ( ");
List<Long> userIds = userHashMappings.stream().map(UserHashMapping::getUserId).collect(Collectors.toList());
sbSql.append(StringUtils.collectionToCommaDelimitedString(userIds));
sbSql.append(") and `id_no_md5` is null ");
jdbcTemplate.execute(sbSql.toString());
// StringUtils.trimWhitespace()
log.info("batchUpdate需要的时间 : {}ms", started.elapsed(TimeUnit.MILLISECONDS));
log.info("来一波,start:{},end:{}", startPosition, endPosition);
......
......@@ -144,9 +144,6 @@ public class InnerController implements IBaseController {
@ApiOperation(httpMethod = "GET", value = "根据md5(手机号)或md5(身份证号)查询用户信息")
public JsonResult findByUuid(@RequestParam String md5Value,
@RequestParam(defaultValue = "1") Integer type) {
if (type != 1) {
return JsonResult.buildErrorStateResult("尚未开放身份证号md5", null);
}
if (md5Value == null) {
return JsonResult.buildErrorStateResult("参数错误", null);
}
......@@ -154,7 +151,7 @@ public class InnerController implements IBaseController {
return JsonResult.buildErrorStateResult("参数长度有误", null);
}
User user = userService.findByPhoneMd5(md5Value);
User user = userService.findByMd5(type, md5Value);
if (user == null) {
return JsonResult.buildSuccessResult("", null);
}
......
......@@ -7,6 +7,8 @@ public interface IUserHashMappingRepository extends JpaRepository<UserHashMappin
UserHashMapping findByPhoneNoMd5ShortAndPhoneNoMd5(Long phoneNoMd5Short, String phoneNoMd5);
UserHashMapping findByIdNoMd5ShortAndIdNoMd5(Long idNoMd5Short, String idNoMd5);
UserHashMapping findByUserId(Long userId);
}
......@@ -25,6 +25,7 @@ public interface IUserService {
/**
* 根据手机号或身份证号查询用户UUID
*
* @param phoneNo - 手机号
* @param idNo - 身份证号
* @return user表的uuid
......@@ -50,5 +51,5 @@ public interface IUserService {
List<UserInfo> findUserInfosByPhones(List<String> phones);
User findByPhoneMd5(String md5Value);
User findByMd5(Integer type, String md5Value);
}
......@@ -73,11 +73,11 @@ public class UserServiceImpl implements IUserService {
@Override
public String findUuid(String phoneNo, String idNo) {
// 优先按手机号查
if(ValidationUtil.validatePhoneNo(phoneNo)){
if (ValidationUtil.validatePhoneNo(phoneNo)) {
return userRepository.findUuidByPhoneNo(phoneNo);
}
// 按身份证号查
if(StringUtils.isNotBlank(idNo)){
if (StringUtils.isNotBlank(idNo)) {
return userRepository.findUuidByIdNo(idNo);
}
return null;
......@@ -185,10 +185,15 @@ public class UserServiceImpl implements IUserService {
}
@Override
public User findByPhoneMd5(String md5Value) {
public User findByMd5(Integer type, String md5Value) {
md5Value = md5Value.toLowerCase();
long value = HashUtil.crc32(md5Value);
UserHashMapping userHashMapping = userHashMappingRepository.findByPhoneNoMd5ShortAndPhoneNoMd5(value, md5Value);
UserHashMapping userHashMapping;
if (type == 1) {
userHashMapping = userHashMappingRepository.findByPhoneNoMd5ShortAndPhoneNoMd5(value, md5Value);
} else {
userHashMapping = userHashMappingRepository.findByIdNoMd5ShortAndIdNoMd5(value, md5Value);
}
if (userHashMapping == null) {
return null;
}
......
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