|
@@ -55,209 +55,210 @@ import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* 用户信息
|
|
|
+ *
|
|
|
* @author LGH
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping("/user")
|
|
|
-@Api(tags="用户注册相关接口")
|
|
|
+@Api(tags = "用户注册相关接口")
|
|
|
@AllArgsConstructor
|
|
|
public class UserRegisterController {
|
|
|
|
|
|
- private final UserService userService;
|
|
|
-
|
|
|
- private final SmsLogService smsLogService;
|
|
|
-
|
|
|
- private final AppConnectService appConnectService;
|
|
|
-
|
|
|
- private final LoginAuthSuccessHandler loginAuthSuccessHandler;
|
|
|
-
|
|
|
- private final WxConfig wxConfig;
|
|
|
-
|
|
|
- private final YamiUserDetailsService yamiUserDetailsService;
|
|
|
-
|
|
|
- private final PasswordEncoder passwordEncoder;
|
|
|
-
|
|
|
-
|
|
|
- public static final String CHECK_REGISTER_SMS_FLAG = "checkRegisterSmsFlag";
|
|
|
-
|
|
|
- public static final String CHECK_UPDATE_PWD_SMS_FLAG = "updatePwdSmsFlag";
|
|
|
-
|
|
|
- @PutMapping("/sendRegisterSms")
|
|
|
- @ApiOperation(value="发送注册验证码", notes="发送注册验证码")
|
|
|
- public ResponseEntity<Void> register(@Valid @RequestBody SendSmsParam sendSmsParam) {
|
|
|
- if (userService.count(new LambdaQueryWrapper<User>().eq(User::getUserMobile, sendSmsParam.getMobile())) > 0) {
|
|
|
- throw new GlobalException("该手机号已注册,无法重新注册");
|
|
|
- }
|
|
|
- // 每个手机号每分钟只能发十个注册的验证码,免得接口被利用
|
|
|
- smsLogService.sendSms(SmsType.REGISTER, sendSmsParam.getMobile(), sendSmsParam.getMobile(), Maps.newHashMap());
|
|
|
- return ResponseEntity.ok().build();
|
|
|
- }
|
|
|
-
|
|
|
- @PutMapping("/checkRegisterSms")
|
|
|
- @ApiOperation(value="校验验证码", notes="校验验证码返回校验成功的标识")
|
|
|
- public ResponseEntity<String> register(@Valid @RequestBody CheckRegisterSmsParam checkRegisterSmsParam) {
|
|
|
- // 每个ip每分钟只能发十个注册的验证码,免得接口被利用
|
|
|
- if (!smsLogService.checkValidCode(checkRegisterSmsParam.getMobile(), checkRegisterSmsParam.getValidCode(), SmsType.REGISTER)){
|
|
|
- throw new GlobalException("验证码有误或已过期");
|
|
|
- }
|
|
|
- String checkRegisterSmsFlag = IdUtil.simpleUUID();
|
|
|
- RedisUtil.set(CHECK_REGISTER_SMS_FLAG + checkRegisterSmsFlag, checkRegisterSmsParam.getMobile(), 600);
|
|
|
- return ResponseEntity.ok(checkRegisterSmsFlag);
|
|
|
- }
|
|
|
-
|
|
|
- @PutMapping("/sendBindSms")
|
|
|
- @ApiOperation(value="发送绑定验证码", notes="发送绑定验证码")
|
|
|
- public ResponseEntity<Void> bindSms(@Valid @RequestBody SendSmsParam sendSmsParam) {
|
|
|
- // 每个手机号每分钟只能发十个注册的验证码,免得接口被利用
|
|
|
- smsLogService.sendSms(SmsType.VALID, sendSmsParam.getMobile(), sendSmsParam.getMobile(), Maps.newHashMap());
|
|
|
- return ResponseEntity.ok().build();
|
|
|
- }
|
|
|
-
|
|
|
- @PutMapping("/registerOrBindUser")
|
|
|
- @ApiOperation(value="注册或绑定手机号", notes="用户注册或绑定手机号接口")
|
|
|
- public ResponseEntity<Void> register(HttpServletRequest request, HttpServletResponse response, @Valid @RequestBody UserRegisterParam userRegisterParam) {
|
|
|
-
|
|
|
- String mobile = userRegisterParam.getMobile();
|
|
|
- AppConnect appConnect = null;
|
|
|
- User user = null;
|
|
|
- String bizUserId = null;
|
|
|
-
|
|
|
-
|
|
|
- // 正在进行注册,通过验证码校验
|
|
|
- if (Objects.equals(userRegisterParam.getRegisterOrBind(), 1)) {
|
|
|
-
|
|
|
- // 看看有没有校验验证码成功的标识
|
|
|
- userService.validate(userRegisterParam, CHECK_REGISTER_SMS_FLAG + userRegisterParam.getCheckRegisterSmsFlag());
|
|
|
- // 正在进行申请注册
|
|
|
- if (userService.count(new LambdaQueryWrapper<User>().eq(User::getUserMobile,userRegisterParam.getMobile())) > 0) {
|
|
|
- throw new GlobalException("手机号已存在,无法注册");
|
|
|
- }
|
|
|
- }
|
|
|
- // 小程序注册/绑定手机号
|
|
|
- else {
|
|
|
- YamiUser yamiUser = SecurityUtils.getUser();
|
|
|
- appConnect = appConnectService.getByBizUserId(yamiUser.getBizUserId(), yamiUser.getAppType());
|
|
|
- bizUserId = yamiUser.getBizUserId();
|
|
|
- // 通过微信手机号校验
|
|
|
- if (Objects.equals(2, userRegisterParam.getValidateType())) {
|
|
|
- try {
|
|
|
- WxMaPhoneNumberInfo wxMaPhoneNumberInfo = wxConfig.getWxMaService().getUserService().getPhoneNoInfo(yamiUser.getSessionKey(), userRegisterParam.getEncryptedData(), userRegisterParam.getIvStr());
|
|
|
- mobile = wxMaPhoneNumberInfo.getPhoneNumber();
|
|
|
-
|
|
|
- } catch (Exception e) {
|
|
|
- throw new GlobalException("授权失败,请重新授权");
|
|
|
- }
|
|
|
- if (StrUtil.isBlank(mobile)) {
|
|
|
- throw new GlobalException("无法获取用户手机号信息");
|
|
|
- }
|
|
|
- user = yamiUserDetailsService.loadUserByMobileOrUserName(mobile, 0);
|
|
|
- }
|
|
|
- // 通过账号密码校验
|
|
|
- else if (Objects.equals(3, userRegisterParam.getValidateType())) {
|
|
|
- user = yamiUserDetailsService.loadUserByMobileOrUserName(mobile, 0);
|
|
|
- if (user == null) {
|
|
|
- throw new GlobalException("账号或密码不正确");
|
|
|
- }
|
|
|
- String encodedPassword = user.getLoginPassword();
|
|
|
- String rawPassword = userRegisterParam.getPassword();
|
|
|
- // 密码不正确
|
|
|
- if (StrUtil.isBlank(encodedPassword) || !passwordEncoder.matches(rawPassword,encodedPassword)){
|
|
|
- throw new GlobalException("账号或密码不正确");
|
|
|
- }
|
|
|
- }
|
|
|
- // 通过验证码校验
|
|
|
- else {
|
|
|
- if (!smsLogService.checkValidCode(userRegisterParam.getMobile(), userRegisterParam.getValidCode(), SmsType.VALID)){
|
|
|
- throw new GlobalException("验证码有误或已过期");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- Date now = new Date();
|
|
|
-
|
|
|
- // 尝试用手机号获取用户信息
|
|
|
- if (user == null && StrUtil.isNotBlank(mobile)) {
|
|
|
- user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile,mobile));
|
|
|
- }
|
|
|
-
|
|
|
- // 新建用户
|
|
|
- if (user == null) {
|
|
|
- user = new User();
|
|
|
- if (StrUtil.isBlank(userRegisterParam.getUserName())) {
|
|
|
- userRegisterParam.setUserName(mobile);
|
|
|
- }
|
|
|
-
|
|
|
- // 如果有用户名,就判断用户名格式是否正确
|
|
|
- if (!PrincipalUtil.isUserName(userRegisterParam.getUserName())) {
|
|
|
- throw new GlobalException("用户名应由4-16位数字字母下划线组成");
|
|
|
- }
|
|
|
-
|
|
|
- user.setModifyTime(now);
|
|
|
- user.setUserRegtime(now);
|
|
|
- user.setUserRegip(IPHelper.getIpAddr());
|
|
|
- user.setStatus(1);
|
|
|
-
|
|
|
- user.setPic(userRegisterParam.getImg());
|
|
|
- user.setUserMobile(mobile);
|
|
|
- user.setUserName(userRegisterParam.getUserName());
|
|
|
- if (StrUtil.isNotBlank(userRegisterParam.getPassword())) {
|
|
|
- user.setLoginPassword(passwordEncoder.encode(userRegisterParam.getPassword()));
|
|
|
- }
|
|
|
- // 用户名就是默认的昵称
|
|
|
- user.setNickName(StrUtil.isBlank(userRegisterParam.getNickName())? userRegisterParam.getUserName(): userRegisterParam.getNickName());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- appConnectService.registerOrBindUser(user, appConnect, userRegisterParam.getAppType());
|
|
|
-
|
|
|
-
|
|
|
- //进行授权登录
|
|
|
- UserDetails userDetails = yamiUserDetailsService.getYamiUser(userRegisterParam.getAppType(),user, bizUserId);
|
|
|
- AuthenticationToken authenticationToken = new AuthenticationToken();
|
|
|
- authenticationToken.setPrincipal(user.getUserMobile());
|
|
|
- authenticationToken.setCredentials(user.getLoginPassword());
|
|
|
- authenticationToken.setPrincipal(userDetails.getUsername());
|
|
|
- authenticationToken.setDetails(userDetails);
|
|
|
- authenticationToken.setAuthenticated(true);
|
|
|
- loginAuthSuccessHandler.onAuthenticationSuccess(request,response,authenticationToken);
|
|
|
-
|
|
|
- return ResponseEntity.ok().build();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @PutMapping("/checkUpdatePwdSms")
|
|
|
- @ApiOperation(value="修改密码校验验证码", notes="校验验证码返回校验成功的标识")
|
|
|
- public ResponseEntity<String> checkUpdatePwdSms(@Valid @RequestBody CheckRegisterSmsParam checkRegisterSmsParam) {
|
|
|
- User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile, checkRegisterSmsParam.getMobile()));
|
|
|
- if (user == null) {
|
|
|
- throw new GlobalException("无法获取用户信息");
|
|
|
- }
|
|
|
- if (!smsLogService.checkValidCode(user.getUserMobile(), checkRegisterSmsParam.getValidCode(), SmsType.UPDATE_PASSWORD)){
|
|
|
- throw new GlobalException("验证码有误或已过期");
|
|
|
- }
|
|
|
- String checkRegisterSmsFlag = IdUtil.simpleUUID();
|
|
|
- RedisUtil.set(CHECK_UPDATE_PWD_SMS_FLAG + checkRegisterSmsFlag, checkRegisterSmsParam.getMobile(), 600);
|
|
|
- return ResponseEntity.ok(checkRegisterSmsFlag);
|
|
|
- }
|
|
|
-
|
|
|
- @PutMapping("/updatePwd")
|
|
|
- @ApiOperation(value="修改密码", notes="修改密码")
|
|
|
- public ResponseEntity<Void> updatePwd(@Valid @RequestBody UserRegisterParam userRegisterParam) {
|
|
|
- User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile, userRegisterParam.getMobile()));
|
|
|
- if (user == null) {
|
|
|
- throw new GlobalException("无法获取用户信息");
|
|
|
- }
|
|
|
- // 看看有没有校验验证码成功的标识
|
|
|
- userService.validate(userRegisterParam, CHECK_UPDATE_PWD_SMS_FLAG + userRegisterParam.getCheckRegisterSmsFlag());
|
|
|
- if (StrUtil.isBlank(userRegisterParam.getPassword())) {
|
|
|
- throw new GlobalException("新密码不能为空");
|
|
|
- }
|
|
|
- if (StrUtil.equals(passwordEncoder.encode(userRegisterParam.getPassword()),user.getLoginPassword())) {
|
|
|
- throw new GlobalException("新密码不能与原密码相同!");
|
|
|
- }
|
|
|
- user.setModifyTime(new Date());
|
|
|
- user.setLoginPassword(passwordEncoder.encode(userRegisterParam.getPassword()));
|
|
|
- userService.updateById(user);
|
|
|
- return ResponseEntity.ok().build();
|
|
|
- }
|
|
|
+ private final UserService userService;
|
|
|
+
|
|
|
+ private final SmsLogService smsLogService;
|
|
|
+
|
|
|
+ private final AppConnectService appConnectService;
|
|
|
+
|
|
|
+ private final LoginAuthSuccessHandler loginAuthSuccessHandler;
|
|
|
+
|
|
|
+ private final WxConfig wxConfig;
|
|
|
+
|
|
|
+ private final YamiUserDetailsService yamiUserDetailsService;
|
|
|
+
|
|
|
+ private final PasswordEncoder passwordEncoder;
|
|
|
+
|
|
|
+
|
|
|
+ public static final String CHECK_REGISTER_SMS_FLAG = "checkRegisterSmsFlag";
|
|
|
+
|
|
|
+ public static final String CHECK_UPDATE_PWD_SMS_FLAG = "updatePwdSmsFlag";
|
|
|
+
|
|
|
+ @PutMapping("/sendRegisterSms")
|
|
|
+ @ApiOperation(value = "发送注册验证码", notes = "发送注册验证码")
|
|
|
+ public ResponseEntity<Void> register(@Valid @RequestBody SendSmsParam sendSmsParam) {
|
|
|
+ if (userService.count(new LambdaQueryWrapper<User>().eq(User::getUserMobile, sendSmsParam.getMobile())) > 0) {
|
|
|
+ throw new GlobalException("该手机号已注册,无法重新注册");
|
|
|
+ }
|
|
|
+ // 每个手机号每分钟只能发十个注册的验证码,免得接口被利用
|
|
|
+ smsLogService.sendSms(SmsType.REGISTER, sendSmsParam.getMobile(), sendSmsParam.getMobile(), Maps.newHashMap());
|
|
|
+ return ResponseEntity.ok().build();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PutMapping("/checkRegisterSms")
|
|
|
+ @ApiOperation(value = "校验验证码", notes = "校验验证码返回校验成功的标识")
|
|
|
+ public ResponseEntity<String> register(@Valid @RequestBody CheckRegisterSmsParam checkRegisterSmsParam) {
|
|
|
+ // 每个ip每分钟只能发十个注册的验证码,免得接口被利用
|
|
|
+ if (!smsLogService.checkValidCode(checkRegisterSmsParam.getMobile(), checkRegisterSmsParam.getValidCode(), SmsType.REGISTER)) {
|
|
|
+ throw new GlobalException("验证码有误或已过期");
|
|
|
+ }
|
|
|
+ String checkRegisterSmsFlag = IdUtil.simpleUUID();
|
|
|
+ RedisUtil.set(CHECK_REGISTER_SMS_FLAG + checkRegisterSmsFlag, checkRegisterSmsParam.getMobile(), 600);
|
|
|
+ return ResponseEntity.ok(checkRegisterSmsFlag);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PutMapping("/sendBindSms")
|
|
|
+ @ApiOperation(value = "发送绑定验证码", notes = "发送绑定验证码")
|
|
|
+ public ResponseEntity<Void> bindSms(@Valid @RequestBody SendSmsParam sendSmsParam) {
|
|
|
+ // 每个手机号每分钟只能发十个注册的验证码,免得接口被利用
|
|
|
+ smsLogService.sendSms(SmsType.VALID, sendSmsParam.getMobile(), sendSmsParam.getMobile(), Maps.newHashMap());
|
|
|
+ return ResponseEntity.ok().build();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PutMapping("/registerOrBindUser")
|
|
|
+ @ApiOperation(value = "注册或绑定手机号", notes = "用户注册或绑定手机号接口")
|
|
|
+ public ResponseEntity<Void> register(HttpServletRequest request, HttpServletResponse response, @Valid @RequestBody UserRegisterParam userRegisterParam) {
|
|
|
+
|
|
|
+ String mobile = userRegisterParam.getMobile();
|
|
|
+ AppConnect appConnect = null;
|
|
|
+ User user = null;
|
|
|
+ String bizUserId = null;
|
|
|
+
|
|
|
+
|
|
|
+ // 正在进行注册,通过验证码校验
|
|
|
+ if (Objects.equals(userRegisterParam.getRegisterOrBind(), 1)) {
|
|
|
+
|
|
|
+ // 看看有没有校验验证码成功的标识
|
|
|
+ userService.validate(userRegisterParam, CHECK_REGISTER_SMS_FLAG + userRegisterParam.getCheckRegisterSmsFlag());
|
|
|
+ // 正在进行申请注册
|
|
|
+ if (userService.count(new LambdaQueryWrapper<User>().eq(User::getUserMobile, userRegisterParam.getMobile())) > 0) {
|
|
|
+ throw new GlobalException("手机号已存在,无法注册");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 小程序注册/绑定手机号
|
|
|
+ else {
|
|
|
+ // 检查用户是否已经认证,只有在认证状态下才获取用户信息
|
|
|
+ YamiUser yamiUser = SecurityUtils.getUser();
|
|
|
+ appConnect = appConnectService.getByBizUserId(yamiUser.getBizUserId(), yamiUser.getAppType());
|
|
|
+ bizUserId = yamiUser.getBizUserId();
|
|
|
+ // 通过微信手机号校验
|
|
|
+ if (Objects.equals(2, userRegisterParam.getValidateType())) {
|
|
|
+ try {
|
|
|
+ WxMaPhoneNumberInfo wxMaPhoneNumberInfo = wxConfig.getWxMaService().getUserService().getPhoneNoInfo(yamiUser.getSessionKey(), userRegisterParam.getEncryptedData(), userRegisterParam.getIvStr());
|
|
|
+ mobile = wxMaPhoneNumberInfo.getPhoneNumber();
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new GlobalException("授权失败,请重新授权");
|
|
|
+ }
|
|
|
+ if (StrUtil.isBlank(mobile)) {
|
|
|
+ throw new GlobalException("无法获取用户手机号信息");
|
|
|
+ }
|
|
|
+ user = yamiUserDetailsService.loadUserByMobileOrUserName(mobile, 0);
|
|
|
+ }
|
|
|
+ // 通过账号密码校验
|
|
|
+ else if (Objects.equals(3, userRegisterParam.getValidateType())) {
|
|
|
+ user = yamiUserDetailsService.loadUserByMobileOrUserName(mobile, 0);
|
|
|
+ if (user == null) {
|
|
|
+ throw new GlobalException("账号或密码不正确");
|
|
|
+ }
|
|
|
+ String encodedPassword = user.getLoginPassword();
|
|
|
+ String rawPassword = userRegisterParam.getPassword();
|
|
|
+ // 密码不正确
|
|
|
+ if (StrUtil.isBlank(encodedPassword) || !passwordEncoder.matches(rawPassword, encodedPassword)) {
|
|
|
+ throw new GlobalException("账号或密码不正确");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 通过验证码校验
|
|
|
+ else {
|
|
|
+ if (!smsLogService.checkValidCode(userRegisterParam.getMobile(), userRegisterParam.getValidCode(), SmsType.VALID)) {
|
|
|
+ throw new GlobalException("验证码有误或已过期");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Date now = new Date();
|
|
|
+ if (user == null && StrUtil.isNotBlank(mobile)) {
|
|
|
+ user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile, mobile).eq(User::getPlatform, userRegisterParam.getPlatform()));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新建用户
|
|
|
+ if (user == null) {
|
|
|
+ user = new User();
|
|
|
+ if (StrUtil.isBlank(userRegisterParam.getUserName())) {
|
|
|
+ userRegisterParam.setUserName(mobile);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果有用户名,就判断用户名格式是否正确
|
|
|
+ if (!PrincipalUtil.isUserName(userRegisterParam.getUserName())) {
|
|
|
+ throw new GlobalException("用户名应由4-16位数字字母下划线组成");
|
|
|
+ }
|
|
|
+
|
|
|
+ user.setModifyTime(now);
|
|
|
+ user.setUserRegtime(now);
|
|
|
+ user.setUserRegip(IPHelper.getIpAddr());
|
|
|
+ user.setStatus(1);
|
|
|
+ user.setPlatform(userRegisterParam.getPlatform());
|
|
|
+ user.setPic(userRegisterParam.getImg());
|
|
|
+ user.setUserMobile(mobile);
|
|
|
+ user.setUserName(userRegisterParam.getUserName());
|
|
|
+ if (StrUtil.isNotBlank(userRegisterParam.getPassword())) {
|
|
|
+ user.setLoginPassword(passwordEncoder.encode(userRegisterParam.getPassword()));
|
|
|
+ }
|
|
|
+ // 用户名就是默认的昵称
|
|
|
+ user.setNickName(StrUtil.isBlank(userRegisterParam.getNickName()) ? userRegisterParam.getUserName() : userRegisterParam.getNickName());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ appConnectService.registerOrBindUser(user, appConnect, userRegisterParam.getAppType());
|
|
|
+
|
|
|
+
|
|
|
+ //进行授权登录
|
|
|
+ UserDetails userDetails = yamiUserDetailsService.getYamiUser(userRegisterParam.getAppType(), user, bizUserId);
|
|
|
+ AuthenticationToken authenticationToken = new AuthenticationToken();
|
|
|
+ authenticationToken.setPrincipal(user.getUserMobile());
|
|
|
+ authenticationToken.setCredentials(user.getLoginPassword());
|
|
|
+ authenticationToken.setPrincipal(userDetails.getUsername());
|
|
|
+ authenticationToken.setDetails(userDetails);
|
|
|
+ authenticationToken.setAuthenticated(true);
|
|
|
+// authenticationToken.setPlatform(user.getPlatform());
|
|
|
+ loginAuthSuccessHandler.onAuthenticationSuccess(request, response, authenticationToken);
|
|
|
+
|
|
|
+ return ResponseEntity.ok().build();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PutMapping("/checkUpdatePwdSms")
|
|
|
+ @ApiOperation(value = "修改密码校验验证码", notes = "校验验证码返回校验成功的标识")
|
|
|
+ public ResponseEntity<String> checkUpdatePwdSms(@Valid @RequestBody CheckRegisterSmsParam checkRegisterSmsParam) {
|
|
|
+ User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile, checkRegisterSmsParam.getMobile()));
|
|
|
+ if (user == null) {
|
|
|
+ throw new GlobalException("无法获取用户信息");
|
|
|
+ }
|
|
|
+ if (!smsLogService.checkValidCode(user.getUserMobile(), checkRegisterSmsParam.getValidCode(), SmsType.UPDATE_PASSWORD)) {
|
|
|
+ throw new GlobalException("验证码有误或已过期");
|
|
|
+ }
|
|
|
+ String checkRegisterSmsFlag = IdUtil.simpleUUID();
|
|
|
+ RedisUtil.set(CHECK_UPDATE_PWD_SMS_FLAG + checkRegisterSmsFlag, checkRegisterSmsParam.getMobile(), 600);
|
|
|
+ return ResponseEntity.ok(checkRegisterSmsFlag);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PutMapping("/updatePwd")
|
|
|
+ @ApiOperation(value = "修改密码", notes = "修改密码")
|
|
|
+ public ResponseEntity<Void> updatePwd(@Valid @RequestBody UserRegisterParam userRegisterParam) {
|
|
|
+ User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUserMobile, userRegisterParam.getMobile()));
|
|
|
+ if (user == null) {
|
|
|
+ throw new GlobalException("无法获取用户信息");
|
|
|
+ }
|
|
|
+ // 看看有没有校验验证码成功的标识
|
|
|
+ userService.validate(userRegisterParam, CHECK_UPDATE_PWD_SMS_FLAG + userRegisterParam.getCheckRegisterSmsFlag());
|
|
|
+ if (StrUtil.isBlank(userRegisterParam.getPassword())) {
|
|
|
+ throw new GlobalException("新密码不能为空");
|
|
|
+ }
|
|
|
+ if (StrUtil.equals(passwordEncoder.encode(userRegisterParam.getPassword()), user.getLoginPassword())) {
|
|
|
+ throw new GlobalException("新密码不能与原密码相同!");
|
|
|
+ }
|
|
|
+ user.setModifyTime(new Date());
|
|
|
+ user.setLoginPassword(passwordEncoder.encode(userRegisterParam.getPassword()));
|
|
|
+ userService.updateById(user);
|
|
|
+ return ResponseEntity.ok().build();
|
|
|
+ }
|
|
|
}
|