增加修改手机用户名功能
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.UpdatePasswordVO;
|
||||
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.vos.UpdateUserVO;
|
||||
import ink.wgink.service.user.service.IUserService;
|
||||
@ -148,6 +149,31 @@ public class UserAppController extends DefaultBaseController {
|
||||
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 = "忘记手机密码接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("forget-phone-password")
|
||||
|
@ -4,6 +4,7 @@ import ink.wgink.interfaces.user.IUserBaseService;
|
||||
import ink.wgink.interfaces.user.IUserCheckService;
|
||||
import ink.wgink.pojo.result.UploadExcelResultDTO;
|
||||
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.UserTypeEnum;
|
||||
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);
|
||||
|
||||
/**
|
||||
* 修改用户名
|
||||
*
|
||||
* @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.UploadExcelResultDTO;
|
||||
import ink.wgink.pojo.vos.UpdatePasswordVO;
|
||||
import ink.wgink.pojo.vos.UpdatePhoneUsernameVO;
|
||||
import ink.wgink.service.user.dao.IUserDao;
|
||||
import ink.wgink.service.user.enums.UserStateEnum;
|
||||
import ink.wgink.service.user.enums.UserTypeEnum;
|
||||
@ -259,13 +260,40 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService
|
||||
updateMongoLoginUser(userId);
|
||||
|
||||
if (updateAdjustment) {
|
||||
updateUsernameAdjustment(userId, oldUserDTO.getUserUsername(), updateUsernameVO);
|
||||
updateUsernameAdjustment(userId, oldUserDTO.getUserName(), oldUserDTO.getUserUsername(), updateUsernameVO);
|
||||
}
|
||||
if (userUpdateAfterHandler != null) {
|
||||
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
|
||||
public void updatePassword(UpdatePasswordVO updatePasswordVO) {
|
||||
updatePasswordByUserId(securityComponent.getCurrentUser().getUserId(), updatePasswordVO);
|
||||
@ -872,27 +900,15 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService
|
||||
* 更新用户名记录
|
||||
*
|
||||
* @param userId
|
||||
* @param userName
|
||||
* @param oldUsername
|
||||
* @param updateUsernameVO
|
||||
*/
|
||||
private void updateUsernameAdjustment(String userId, 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);
|
||||
|
||||
private void updateUsernameAdjustment(String userId, String userName, String oldUsername, UpdateUsernameVO updateUsernameVO) {
|
||||
// 日志
|
||||
UserAdjustmentBO userAdjustmentBO = new UserAdjustmentBO();
|
||||
userAdjustmentBO.setUserId(userId);
|
||||
userAdjustmentBO.setUserName(updateUserDTO.getUserName());
|
||||
userAdjustmentBO.setUserName(userName);
|
||||
userAdjustmentBO.setUpdateType(UserUpdateTypeEnum.USERNAME.getValue());
|
||||
userAdjustmentBO.setOldValue(oldUsername);
|
||||
userAdjustmentBO.setNewValue(updateUsernameVO.getUsername());
|
||||
|
Loading…
Reference in New Issue
Block a user