记得上下班打卡 | git大法好,push需谨慎

Commit 5d7b999f authored by 姜秀龙's avatar 姜秀龙

修改随机6位密码;手机号修改 未验证版本

parent 2255e3e2
......@@ -7,8 +7,7 @@ import com.liquidnet.common.cache.redis.util.AbstractRedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
......@@ -27,17 +26,23 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Pattern;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;
/**
......@@ -53,6 +58,8 @@ public class AdamController {
@Value("${liquidnet.reviewer.limit.enters:10}")
private int reviewLimitEnters;
@Value("${liquidnet.secret.passwd-salt}")
private String passwdSalt;
@Autowired
private AdamUserMapper adamUserMapper;
......@@ -194,6 +201,99 @@ public class AdamController {
return ResponseDto.success();
}
@ApiOperation(value = "修改随机6位密码(未验证版本)")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"),
})
@PostMapping(value = {"A005"})
public ResponseDto<String> A005(
@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile
) {
String uid = (String) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.IDENTITY_MOBILE.concat(mobile));
if (org.apache.commons.lang3.StringUtils.isEmpty(uid)) {
return ResponseDto.failure(ErrorMapping.get("10003"));
}
String rk = AdamRedisConst.INFO_USER.concat(uid);
AdamUserInfoVo vo = (AdamUserInfoVo) redisDataSourceUtil.getRedisAdamUtil().get(rk);
if (null == vo) {
return ResponseDto.failure(ErrorMapping.get("10024"));
}
String password = RandomStringUtils.randomNumeric(6);
String passwdMd5 = DigestUtils.md5DigestAsHex(
password.toLowerCase().concat(passwdSalt).getBytes(StandardCharsets.UTF_8)
);
vo.setPasswd(passwdMd5);
redisDataSourceUtil.getRedisAdamUtil().set(rk, vo);
return ResponseDto.success(password);
}
@ApiOperation(value = "手机号修改(未验证版本)", notes = "手机号修改会刷新TOKEN,刷新后的TOKEN对应响应参数中[`data`]")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "新手机号"),
})
@PostMapping(value = {"A006"})
public ResponseDto<String> A006(
@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile
) {
String rkMobile = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
String uid = (String) redisDataSourceUtil.getRedisAdamUtil().get(rkMobile);
if (!uid.isEmpty()) {
return ResponseDto.failure(ErrorMapping.get("10009"));
}
LocalDateTime now = LocalDateTime.now();
String rkUid = AdamRedisConst.INFO_USER.concat(uid);
AdamUserInfoVo beforeUserInfoVo = (AdamUserInfoVo) redisDataSourceUtil.getRedisAdamUtil().get(rkUid);
redisDataSourceUtil.getRedisAdamUtil().del(rkMobile);
redisDataSourceUtil.getRedisAdamUtil().set(rkMobile, uid);
beforeUserInfoVo.setMobile(mobile);
beforeUserInfoVo.setUpdatedAt(now);
redisDataSourceUtil.getRedisAdamUtil().set(rkUid, beforeUserInfoVo);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> updateUserInfoObjs = CollectionUtil.linkedListObjectArr(),
updateUserMobileLocateObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("adam_user.edit.mobile"));
updateUserInfoObjs.add(new Object[]{mobile, now, uid});
String locateInfo = (String) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.LIB_DICT_LOCATE_MOBILE.concat(mobile.substring(0, 7)));
String[] mobileLocateArr = StringUtils.isEmpty(locateInfo) ? null : locateInfo.split("\\|");
toMqSqls.add(SqlMapping.get("adam_user_mobile_locate.modify_mobile"));
updateUserMobileLocateObjs.add(new Object[]{
mobile,
ArrayUtils.isEmpty(mobileLocateArr) ? null : mobileLocateArr[2],
now, uid
});
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.gets(toMqSqls, updateUserInfoObjs, updateUserMobileLocateObjs)
);
Map<String, Object> claimsMap = CollectionUtil.mapStringObject();
claimsMap.put(CurrentUtil.TOKEN_SUB, beforeUserInfoVo.getUid());
claimsMap.put(CurrentUtil.TOKEN_MOBILE, beforeUserInfoVo.getMobile());
claimsMap.put(CurrentUtil.TOKEN_NICKNAME, beforeUserInfoVo.getNickname());
claimsMap.put(CurrentUtil.TOKEN_TYPE, CurrentUtil.TOKEN_TYPE_VAL_USER);
claimsMap.put(CurrentUtil.TOKEN_UCREATED, DateUtil.Formatter.yyyyMMddHHmmssTrim.format(beforeUserInfoVo.getCreateAt()));
String token = jwtValidator.create(claimsMap);
redisDataSourceUtil.getRedisAdamUtil().set(
jwtValidator.getSsoRedisKey().concat(beforeUserInfoVo.getUid()),
DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)),
jwtValidator.getExpireTtl() * 60
);
return ResponseDto.success(token);
}
/**
* 身份证实名处理
*
......
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