web修改密码

上级 ac5c5ba4
package com.mmc.iuav.user.model.qo; package com.mmc.iuav.user.model.qo.webLogin;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
......
...@@ -26,6 +26,7 @@ public enum ResultEnum implements BaseErrorInfoInterface { ...@@ -26,6 +26,7 @@ public enum ResultEnum implements BaseErrorInfoInterface {
LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"), LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"),
LOGIN_PASSWORD_ERROR("5006", "密码错误"), LOGIN_PASSWORD_ERROR("5006", "密码错误"),
PWD_NOT_SAME_ERROR("5007", "新密码与旧密码相同"),
LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"), LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"),
REMOVE_COMPANY_BINDING_ERROR("5009", "删除失败,该单位有绑定账号"), REMOVE_COMPANY_BINDING_ERROR("5009", "删除失败,该单位有绑定账号"),
REMOVE_COMPANY_TASK_ERROR("5010", "删除失败,该单位有绑定服务"), REMOVE_COMPANY_TASK_ERROR("5010", "删除失败,该单位有绑定服务"),
......
...@@ -10,6 +10,11 @@ import java.security.NoSuchAlgorithmException; ...@@ -10,6 +10,11 @@ import java.security.NoSuchAlgorithmException;
* @explain 密码加密 * @explain 密码加密
*/ */
public class PwdUtil { public class PwdUtil {
/**
* @param passWord
* @return {@link String}
* @throws NoSuchAlgorithmException
*/
public static String securityPwd(String passWord) throws NoSuchAlgorithmException { public static String securityPwd(String passWord) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA"); MessageDigest md = MessageDigest.getInstance("SHA");
md.update(passWord.getBytes()); md.update(passWord.getBytes());
......
...@@ -4,9 +4,8 @@ import com.mmc.iuav.general.CodeUtil; ...@@ -4,9 +4,8 @@ import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.group.Insert; import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.dao.UserServiceDao; import com.mmc.iuav.user.dao.UserServiceDao;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.LoginUserQO; import com.mmc.iuav.user.model.qo.webLogin.LoginUserQO;
import com.mmc.iuav.user.model.vo.AppUserSucVO; import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.WebRegisterVO; import com.mmc.iuav.user.model.vo.WebRegisterVO;
import com.mmc.iuav.user.model.vo.WxLoginVO; import com.mmc.iuav.user.model.vo.WxLoginVO;
...@@ -85,7 +84,7 @@ public class AuthController { ...@@ -85,7 +84,7 @@ public class AuthController {
redisData.put("phoneNum", phoneNum); redisData.put("phoneNum", phoneNum);
redisData.put("verifyCode", verifyCode); redisData.put("verifyCode", verifyCode);
stringRedisTemplate.opsForHash().putAll(verifyCode + phoneNum, redisData); stringRedisTemplate.opsForHash().putAll(verifyCode + phoneNum, redisData);
stringRedisTemplate.expire(verifyCode + phoneNum, 120, TimeUnit.SECONDS); stringRedisTemplate.expire(verifyCode + phoneNum, 1000, TimeUnit.SECONDS);
return ResultBody.success(); return ResultBody.success();
} }
@ApiOperation(value = "web端注册") @ApiOperation(value = "web端注册")
...@@ -101,4 +100,11 @@ public class AuthController { ...@@ -101,4 +100,11 @@ public class AuthController {
@ApiParam(value = "账号登录QO", required = true) @Validated @RequestBody LoginUserQO param) { @ApiParam(value = "账号登录QO", required = true) @Validated @RequestBody LoginUserQO param) {
return authService.webLogin(param); return authService.webLogin(param);
} }
@ApiOperation(value = "web找回密码")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = LoginSuccessDTO.class)})
@PostMapping("findPassword")
public ResultBody updatePassword(@RequestBody WebRegisterVO webRegisterVO) {
return authService.updatePassword(webRegisterVO);
}
} }
package com.mmc.iuav.user.service; package com.mmc.iuav.user.service;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.LoginUserQO; import com.mmc.iuav.user.model.qo.webLogin.LoginUserQO;
import com.mmc.iuav.user.model.vo.WebRegisterVO; import com.mmc.iuav.user.model.vo.WebRegisterVO;
import com.mmc.iuav.user.model.vo.WxLoginVO; import com.mmc.iuav.user.model.vo.WxLoginVO;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
/** /**
* @author: zj * @author: zj
...@@ -61,4 +58,6 @@ public interface AuthService { ...@@ -61,4 +58,6 @@ public interface AuthService {
ResultBody webRegister(WebRegisterVO webRegisterVO); ResultBody webRegister(WebRegisterVO webRegisterVO);
ResultBody webLogin(LoginUserQO param); ResultBody webLogin(LoginUserQO param);
ResultBody updatePassword(WebRegisterVO webRegisterVO);
} }
...@@ -22,7 +22,7 @@ import com.mmc.iuav.user.entity.userpoints.UserPointsDO; ...@@ -22,7 +22,7 @@ import com.mmc.iuav.user.entity.userpoints.UserPointsDO;
import com.mmc.iuav.user.entity.userpoints.UserPointsDetails; import com.mmc.iuav.user.entity.userpoints.UserPointsDetails;
import com.mmc.iuav.user.enums.UserAccountStatus; import com.mmc.iuav.user.enums.UserAccountStatus;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.LoginUserQO; import com.mmc.iuav.user.model.qo.webLogin.LoginUserQO;
import com.mmc.iuav.user.model.vo.*; import com.mmc.iuav.user.model.vo.*;
import com.mmc.iuav.user.model.vo.userpoints.UserPointsVO; import com.mmc.iuav.user.model.vo.userpoints.UserPointsVO;
import com.mmc.iuav.user.service.*; import com.mmc.iuav.user.service.*;
...@@ -327,6 +327,43 @@ public class AuthServiceImpl implements AuthService { ...@@ -327,6 +327,43 @@ public class AuthServiceImpl implements AuthService {
return ResultBody.success(webUserSucVO); return ResultBody.success(webUserSucVO);
} }
@Override
public ResultBody updatePassword(WebRegisterVO webRegisterVO){
Map<Object, Object> redisData = stringRedisTemplate.opsForHash().entries(webRegisterVO.getCode() + webRegisterVO.getPhoneNum());
String code = redisData.get("verifyCode").toString();
String phoneNum = redisData.get("phoneNum").toString();
UserAccountVO user = userAccountService.getUserAccountInfoByPhoneNum(phoneNum);
String oldPassword = user.getPassword();
String newPassword = "";
UserAccountDO userAccountDO = userServiceDao.getUserByPhoneNum(phoneNum);
if(userAccountDO == null || oldPassword == null){
return ResultBody.error("未注册过,请先注册");
}
try {
newPassword = PwdUtil.securityPwd(webRegisterVO.getPassword());
}catch (NoSuchAlgorithmException e) {
return ResultBody.error(ResultEnum.PWD_CONPARED_ERROR);
}
if (redisData.isEmpty()) {
return ResultBody.error("验证码错误,请重新输入");
}
if(oldPassword.equals(newPassword)) {
return ResultBody.error(ResultEnum.PWD_NOT_SAME_ERROR);
}
// 验证码错误则修改失败,并提醒
if (!code.equals(webRegisterVO.getCode())) {
return ResultBody.error("验证码错误,请重新输入");
}
UserAccountDO updatePasswordDO = new UserAccountDO();
updatePasswordDO.setPassword(newPassword);
updatePasswordDO.setId(userAccountDO.getId());;
userServiceDao.update(updatePasswordDO) ;
return ResultBody.success();
}
private void extracted(Integer id) { private void extracted(Integer id) {
UserPointsVO userPointsVO = new UserPointsVO(id, NumberOfUserPoints.match(0).getMessage()); UserPointsVO userPointsVO = new UserPointsVO(id, NumberOfUserPoints.match(0).getMessage());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论