增加修改手机用户名功能
This commit is contained in:
parent
8e445822bd
commit
cd4f1eaa1a
@ -0,0 +1,39 @@
|
|||||||
|
package ink.wgink.pojo.vos;
|
||||||
|
|
||||||
|
import ink.wgink.annotation.CheckEmptyAnnotation;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: UpdatePhoneUsernameVO
|
||||||
|
* @Description: 更改手机用户名
|
||||||
|
* @Author: wanggeng
|
||||||
|
* @Date: 2022/11/1 16:51
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@ApiModel
|
||||||
|
public class UpdatePhoneUsernameVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "newPhone", value = "新手机号")
|
||||||
|
@CheckEmptyAnnotation(name = "新手机号", verifyType = "newPhone")
|
||||||
|
private String newPhone;
|
||||||
|
@ApiModelProperty(name = "verificationCode", value = "verificationCode")
|
||||||
|
@CheckEmptyAnnotation(name = "验证码")
|
||||||
|
private String verificationCode;
|
||||||
|
|
||||||
|
public String getNewPhone() {
|
||||||
|
return newPhone == null ? "" : newPhone.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewPhone(String newPhone) {
|
||||||
|
this.newPhone = newPhone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVerificationCode() {
|
||||||
|
return verificationCode == null ? "" : verificationCode.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerificationCode(String verificationCode) {
|
||||||
|
this.verificationCode = verificationCode;
|
||||||
|
}
|
||||||
|
}
|
@ -15,6 +15,7 @@ import ink.wgink.pojo.result.SuccessResultData;
|
|||||||
import ink.wgink.pojo.vos.IdsVO;
|
import ink.wgink.pojo.vos.IdsVO;
|
||||||
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
||||||
import ink.wgink.pojo.vos.UpdatePhonePasswordVO;
|
import ink.wgink.pojo.vos.UpdatePhonePasswordVO;
|
||||||
|
import ink.wgink.pojo.vos.UpdatePhoneUsernameVO;
|
||||||
import ink.wgink.service.user.pojo.dtos.AppUserDTO;
|
import ink.wgink.service.user.pojo.dtos.AppUserDTO;
|
||||||
import ink.wgink.service.user.pojo.vos.UpdateUserVO;
|
import ink.wgink.service.user.pojo.vos.UpdateUserVO;
|
||||||
import ink.wgink.service.user.service.IUserService;
|
import ink.wgink.service.user.service.IUserService;
|
||||||
@ -148,6 +149,31 @@ public class UserAppController extends DefaultBaseController {
|
|||||||
return new SuccessResult();
|
return new SuccessResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "修改手机用户名", notes = "修改手机用户名接口")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
|
||||||
|
})
|
||||||
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
|
@PutMapping("update-phone-username/{phone}")
|
||||||
|
@CheckRequestBodyAnnotation
|
||||||
|
public SuccessResult updatePhoneUsername(@PathVariable("phone") String phone, @RequestBody UpdatePhoneUsernameVO updatePhoneUsernameVO) throws Exception {
|
||||||
|
if (smsBaseService == null) {
|
||||||
|
throw new DependencyException("短信依赖未引入");
|
||||||
|
}
|
||||||
|
String verifyCode = smsBaseService.getVerifyCode(updatePhoneUsernameVO.getNewPhone());
|
||||||
|
if (!RegexUtil.isPhone(phone)) {
|
||||||
|
throw new ParamsException("手机格式不正确");
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(verifyCode)) {
|
||||||
|
throw new ParamsException("验证码为空");
|
||||||
|
}
|
||||||
|
if (!StringUtils.equalsIgnoreCase(verifyCode, updatePhoneUsernameVO.getVerificationCode())) {
|
||||||
|
throw new ParamsException("验证码错误");
|
||||||
|
}
|
||||||
|
userService.updatePhoneUsername(phone, updatePhoneUsernameVO);
|
||||||
|
return new SuccessResult();
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "忘记手机密码", notes = "忘记手机密码接口")
|
@ApiOperation(value = "忘记手机密码", notes = "忘记手机密码接口")
|
||||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
@PutMapping("forget-phone-password")
|
@PutMapping("forget-phone-password")
|
||||||
|
@ -4,6 +4,7 @@ import ink.wgink.interfaces.user.IUserBaseService;
|
|||||||
import ink.wgink.interfaces.user.IUserCheckService;
|
import ink.wgink.interfaces.user.IUserCheckService;
|
||||||
import ink.wgink.pojo.result.UploadExcelResultDTO;
|
import ink.wgink.pojo.result.UploadExcelResultDTO;
|
||||||
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
||||||
|
import ink.wgink.pojo.vos.UpdatePhoneUsernameVO;
|
||||||
import ink.wgink.service.user.enums.UserStateEnum;
|
import ink.wgink.service.user.enums.UserStateEnum;
|
||||||
import ink.wgink.service.user.enums.UserTypeEnum;
|
import ink.wgink.service.user.enums.UserTypeEnum;
|
||||||
import ink.wgink.service.user.pojo.dtos.AppUserDTO;
|
import ink.wgink.service.user.pojo.dtos.AppUserDTO;
|
||||||
@ -154,6 +155,15 @@ public interface IUserService extends IUserBaseService, IUserCheckService {
|
|||||||
*/
|
*/
|
||||||
void updateUsername(String userId, UpdateUsernameVO updateUsernameVO, boolean updateAdjustment);
|
void updateUsername(String userId, UpdateUsernameVO updateUsernameVO, boolean updateAdjustment);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户名
|
||||||
|
*
|
||||||
|
* @param phone
|
||||||
|
* @param updatePhoneUsernameVO
|
||||||
|
*/
|
||||||
|
void updatePhoneUsername(String phone, UpdatePhoneUsernameVO updatePhoneUsernameVO);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改密码
|
* 修改密码
|
||||||
*
|
*
|
||||||
|
@ -26,6 +26,7 @@ import ink.wgink.pojo.result.SuccessResultData;
|
|||||||
import ink.wgink.pojo.result.SuccessResultList;
|
import ink.wgink.pojo.result.SuccessResultList;
|
||||||
import ink.wgink.pojo.result.UploadExcelResultDTO;
|
import ink.wgink.pojo.result.UploadExcelResultDTO;
|
||||||
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
||||||
|
import ink.wgink.pojo.vos.UpdatePhoneUsernameVO;
|
||||||
import ink.wgink.service.user.dao.IUserDao;
|
import ink.wgink.service.user.dao.IUserDao;
|
||||||
import ink.wgink.service.user.enums.UserStateEnum;
|
import ink.wgink.service.user.enums.UserStateEnum;
|
||||||
import ink.wgink.service.user.enums.UserTypeEnum;
|
import ink.wgink.service.user.enums.UserTypeEnum;
|
||||||
@ -259,13 +260,40 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService
|
|||||||
updateMongoLoginUser(userId);
|
updateMongoLoginUser(userId);
|
||||||
|
|
||||||
if (updateAdjustment) {
|
if (updateAdjustment) {
|
||||||
updateUsernameAdjustment(userId, oldUserDTO.getUserUsername(), updateUsernameVO);
|
updateUsernameAdjustment(userId, oldUserDTO.getUserName(), oldUserDTO.getUserUsername(), updateUsernameVO);
|
||||||
}
|
}
|
||||||
if (userUpdateAfterHandler != null) {
|
if (userUpdateAfterHandler != null) {
|
||||||
userUpdateAfterHandler.handle(userId);
|
userUpdateAfterHandler.handle(userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updatePhoneUsername(String phone, UpdatePhoneUsernameVO updatePhoneUsernameVO) {
|
||||||
|
UserPO userPO = getPOByUsername(phone);
|
||||||
|
if (userPO == null) {
|
||||||
|
throw new SearchException("用户名不存在");
|
||||||
|
}
|
||||||
|
UserPO newUserPO = getPOByUsername(updatePhoneUsernameVO.getNewPhone());
|
||||||
|
if (newUserPO != null && !StringUtils.equals(userPO.getUserId(), newUserPO.getUserId())) {
|
||||||
|
throw new SearchException("新用户名已经存在");
|
||||||
|
}
|
||||||
|
Map<String, Object> params = getHashMap(2);
|
||||||
|
params.put("userUsername", updatePhoneUsernameVO.getNewPhone());
|
||||||
|
params.put("userId", userPO.getUserId());
|
||||||
|
userDao.updateUsername(params);
|
||||||
|
|
||||||
|
updateMongoLoginUser(userPO.getUserId());
|
||||||
|
|
||||||
|
UpdateUsernameVO updateUsernameVO = new UpdateUsernameVO();
|
||||||
|
updateUsernameVO.setUsername(updatePhoneUsernameVO.getNewPhone());
|
||||||
|
updateUsernameVO.setUpdateReason("用户自行修改");
|
||||||
|
updateUsernameAdjustment(userPO.getUserId(), userPO.getUserName(), userPO.getUserUsername(), updateUsernameVO);
|
||||||
|
|
||||||
|
if (userUpdateAfterHandler != null) {
|
||||||
|
userUpdateAfterHandler.handle(userPO.getUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePassword(UpdatePasswordVO updatePasswordVO) {
|
public void updatePassword(UpdatePasswordVO updatePasswordVO) {
|
||||||
updatePasswordByUserId(securityComponent.getCurrentUser().getUserId(), updatePasswordVO);
|
updatePasswordByUserId(securityComponent.getCurrentUser().getUserId(), updatePasswordVO);
|
||||||
@ -872,27 +900,15 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService
|
|||||||
* 更新用户名记录
|
* 更新用户名记录
|
||||||
*
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
|
* @param userName
|
||||||
* @param oldUsername
|
* @param oldUsername
|
||||||
* @param updateUsernameVO
|
* @param updateUsernameVO
|
||||||
*/
|
*/
|
||||||
private void updateUsernameAdjustment(String userId, String oldUsername, UpdateUsernameVO updateUsernameVO) {
|
private void updateUsernameAdjustment(String userId, String userName, String oldUsername, UpdateUsernameVO updateUsernameVO) {
|
||||||
Map<String, Object> params = getHashMap(1);
|
|
||||||
UserDTO updateUserDTO = get(userId);
|
|
||||||
if (updateUserDTO == null) {
|
|
||||||
throw new SearchException("修改用户不存在");
|
|
||||||
}
|
|
||||||
UserDTO userDTO = getByUsername(updateUsernameVO.getUsername());
|
|
||||||
if (userDTO != null && !StringUtils.equals(userId, userDTO.getUserId())) {
|
|
||||||
throw new SearchException("新用户名已经存在");
|
|
||||||
}
|
|
||||||
params.put("userId", userId);
|
|
||||||
params.put("userUsername", updateUsernameVO.getUsername());
|
|
||||||
userDao.updateUsername(params);
|
|
||||||
|
|
||||||
// 日志
|
// 日志
|
||||||
UserAdjustmentBO userAdjustmentBO = new UserAdjustmentBO();
|
UserAdjustmentBO userAdjustmentBO = new UserAdjustmentBO();
|
||||||
userAdjustmentBO.setUserId(userId);
|
userAdjustmentBO.setUserId(userId);
|
||||||
userAdjustmentBO.setUserName(updateUserDTO.getUserName());
|
userAdjustmentBO.setUserName(userName);
|
||||||
userAdjustmentBO.setUpdateType(UserUpdateTypeEnum.USERNAME.getValue());
|
userAdjustmentBO.setUpdateType(UserUpdateTypeEnum.USERNAME.getValue());
|
||||||
userAdjustmentBO.setOldValue(oldUsername);
|
userAdjustmentBO.setOldValue(oldUsername);
|
||||||
userAdjustmentBO.setNewValue(updateUsernameVO.getUsername());
|
userAdjustmentBO.setNewValue(updateUsernameVO.getUsername());
|
||||||
|
Loading…
Reference in New Issue
Block a user