web修改密码

上级 ac5c5ba4
package com.mmc.iuav.user.model.qo;
package com.mmc.iuav.user.model.qo.webLogin;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
......
......@@ -26,6 +26,7 @@ public enum ResultEnum implements BaseErrorInfoInterface {
LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"),
LOGIN_PASSWORD_ERROR("5006", "密码错误"),
PWD_NOT_SAME_ERROR("5007", "新密码与旧密码相同"),
LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"),
REMOVE_COMPANY_BINDING_ERROR("5009", "删除失败,该单位有绑定账号"),
REMOVE_COMPANY_TASK_ERROR("5010", "删除失败,该单位有绑定服务"),
......
......@@ -10,6 +10,11 @@ import java.security.NoSuchAlgorithmException;
* @explain 密码加密
*/
public class PwdUtil {
/**
* @param passWord
* @return {@link String}
* @throws NoSuchAlgorithmException
*/
public static String securityPwd(String passWord) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(passWord.getBytes());
......
......@@ -4,9 +4,8 @@ import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody;
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.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.WebRegisterVO;
import com.mmc.iuav.user.model.vo.WxLoginVO;
......@@ -85,7 +84,7 @@ public class AuthController {
redisData.put("phoneNum", phoneNum);
redisData.put("verifyCode", verifyCode);
stringRedisTemplate.opsForHash().putAll(verifyCode + phoneNum, redisData);
stringRedisTemplate.expire(verifyCode + phoneNum, 120, TimeUnit.SECONDS);
stringRedisTemplate.expire(verifyCode + phoneNum, 1000, TimeUnit.SECONDS);
return ResultBody.success();
}
@ApiOperation(value = "web端注册")
......@@ -101,4 +100,11 @@ public class AuthController {
@ApiParam(value = "账号登录QO", required = true) @Validated @RequestBody LoginUserQO 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;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody;
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.WxLoginVO;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author: zj
......@@ -61,4 +58,6 @@ public interface AuthService {
ResultBody webRegister(WebRegisterVO webRegisterVO);
ResultBody webLogin(LoginUserQO param);
ResultBody updatePassword(WebRegisterVO webRegisterVO);
}
......@@ -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.enums.UserAccountStatus;
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.userpoints.UserPointsVO;
import com.mmc.iuav.user.service.*;
......@@ -327,6 +327,43 @@ public class AuthServiceImpl implements AuthService {
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) {
UserPointsVO userPointsVO = new UserPointsVO(id, NumberOfUserPoints.match(0).getMessage());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论