feat: 添加变更邮箱接口
This commit is contained in:
parent
785eb1b9e4
commit
b6a0c52313
|
|
@ -135,27 +135,27 @@ public class AdminUserController extends ControllerBase {
|
||||||
@ApiMark(moduleName = "账号管理", apiName = "更新账号")
|
@ApiMark(moduleName = "账号管理", apiName = "更新账号")
|
||||||
public ApiResult<Void> updateAccount(@Valid @RequestBody AccountUpdateRequest request) throws MessagingException {
|
public ApiResult<Void> updateAccount(@Valid @RequestBody AccountUpdateRequest request) throws MessagingException {
|
||||||
AdminUser user=adminUserService.getById(request.getId());
|
AdminUser user=adminUserService.getById(request.getId());
|
||||||
if (!StrUtil.equals(user.getLoginName(),request.getLoginName())){
|
// if (!StrUtil.equals(user.getLoginName(),request.getLoginName())){
|
||||||
VUtils.trueThrowBusinessError(adminUserService.lambdaQuery()
|
// VUtils.trueThrowBusinessError(adminUserService.lambdaQuery()
|
||||||
.eq(AdminUser::getLoginName, request.getLoginName())
|
// .eq(AdminUser::getLoginName, request.getLoginName())
|
||||||
.ne(AdminUser::getId, request.getId())
|
// .ne(AdminUser::getId, request.getId())
|
||||||
.exists())
|
// .exists())
|
||||||
.throwMessage("已存在相同的登录名");
|
// .throwMessage("已存在相同的登录名");
|
||||||
user.setState(UserState.ToBeActivated.getState());
|
// user.setState(UserState.ToBeActivated.getState());
|
||||||
String code= RandomUtil.randomString(6);
|
// String code= RandomUtil.randomString(6);
|
||||||
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getLoginName(), code, Duration.ofHours(72));
|
// redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getLoginName(), code, Duration.ofHours(72));
|
||||||
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getLoginName(), Duration.ofHours(72));
|
// redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getLoginName(), Duration.ofHours(72));
|
||||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
// String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
// String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
||||||
.replace("${email}", user.getLoginName())
|
// .replace("${email}", user.getLoginName())
|
||||||
.replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
// .replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
||||||
.replace("${password}", code);
|
// .replace("${password}", code);
|
||||||
emailService.sendEmail(request.getLoginName(), subject, content);
|
// emailService.sendEmail(request.getLoginName(), subject, content);
|
||||||
} else {
|
// } else {
|
||||||
if (Objects.nonNull(request.getEnable())) {
|
// if (Objects.nonNull(request.getEnable())) {
|
||||||
user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
// user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
user.setUserCode(request.getUserCode())
|
user.setUserCode(request.getUserCode())
|
||||||
.setUserName(request.getUserName())
|
.setUserName(request.getUserName())
|
||||||
.setAvatar(request.getAvatar())
|
.setAvatar(request.getAvatar())
|
||||||
|
|
@ -164,6 +164,9 @@ public class AdminUserController extends ControllerBase {
|
||||||
.setTitleId(request.getTitleId())
|
.setTitleId(request.getTitleId())
|
||||||
.setUpdateBy(AdminUserUtil.getUserId())
|
.setUpdateBy(AdminUserUtil.getUserId())
|
||||||
.setUpdateTime(LocalDateTime.now());
|
.setUpdateTime(LocalDateTime.now());
|
||||||
|
if (!Objects.equals(user.getState(), UserState.ToBeActivated.getState()) && Objects.nonNull(request.getEnable())) {
|
||||||
|
user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
||||||
|
}
|
||||||
adminUserService.updateById(user);
|
adminUserService.updateById(user);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
@ -347,4 +350,29 @@ public class AdminUserController extends ControllerBase {
|
||||||
adminUserService.deleteAccount(request.getId());
|
adminUserService.deleteAccount(request.getId());
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更改邮箱
|
||||||
|
* @param request 请求参数
|
||||||
|
**/
|
||||||
|
@PostMapping("changeEmail")
|
||||||
|
@ApiMark(moduleName = "账号管理", apiName = "更改邮箱")
|
||||||
|
public ApiResult<Void> changeEmail(@Valid @RequestBody EmailChangeRequest request) throws MessagingException {
|
||||||
|
AdminUser user=adminUserService.getById(request.getUserId());
|
||||||
|
VUtils.trueThrowBusinessError(adminUserService.lambdaQuery()
|
||||||
|
.eq(AdminUser::getLoginName, request.getEmail())
|
||||||
|
.ne(AdminUser::getId, request.getUserId())
|
||||||
|
.exists())
|
||||||
|
.throwMessage("已存在相同的登录名");
|
||||||
|
String code= RandomUtil.randomString(6);
|
||||||
|
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getLoginName(), code, Duration.ofHours(72));
|
||||||
|
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getEmail(), Duration.ofHours(72));
|
||||||
|
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
|
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
||||||
|
.replace("${email}", user.getLoginName())
|
||||||
|
.replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
||||||
|
.replace("${password}", code);
|
||||||
|
emailService.sendEmail(request.getEmail(), subject, content);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -140,33 +140,40 @@ public class AppUserController extends ControllerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateAppUser(AppUser user,AppUserUpdateRequest request) throws MessagingException {
|
public void updateAppUser(AppUser user,AppUserUpdateRequest request) throws MessagingException {
|
||||||
if (!StrUtil.equals(user.getLoginName(), request.getLoginName())){
|
// if (!StrUtil.equals(user.getLoginName(), request.getLoginName())){
|
||||||
VUtils.trueThrowBusinessError(appUserService.lambdaQuery()
|
// VUtils.trueThrowBusinessError(appUserService.lambdaQuery()
|
||||||
.eq(AppUser::getLoginName, request.getLoginName())
|
// .eq(AppUser::getLoginName, request.getLoginName())
|
||||||
.ne(AppUser::getId, request.getId())
|
// .ne(AppUser::getId, request.getId())
|
||||||
.exists())
|
// .exists())
|
||||||
.throwMessage("登录名已存在");
|
// .throwMessage("登录名已存在");
|
||||||
user.setState(UserState.ToBeActivated.getState());
|
// user.setState(UserState.ToBeActivated.getState());
|
||||||
String code= RandomUtil.randomString(6);
|
// String code= RandomUtil.randomString(6);
|
||||||
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getId(), code, Duration.ofHours(72));
|
// redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getId(), code, Duration.ofHours(72));
|
||||||
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getLoginName(), Duration.ofHours(72));
|
// redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getLoginName(), Duration.ofHours(72));
|
||||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
// String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
// String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
||||||
.replace("${email}", user.getLoginName())
|
// .replace("${email}", user.getLoginName())
|
||||||
.replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
// .replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
||||||
.replace("${password}", code);
|
// .replace("${password}", code);
|
||||||
emailService.sendEmail(request.getLoginName(), subject, content);
|
// emailService.sendEmail(request.getLoginName(), subject, content);
|
||||||
}else {
|
// }else {
|
||||||
if (Objects.nonNull(request.getEnable())) {
|
// if (Objects.nonNull(request.getEnable())) {
|
||||||
user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
// user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
user.setName(request.getUserName())
|
user.setName(request.getUserName())
|
||||||
.setPhone(request.getPhone())
|
.setPhone(request.getPhone())
|
||||||
|
.setAvatar(request.getAvatar())
|
||||||
|
.setSalesUserName(request.getSalesUserName())
|
||||||
|
.setPhone(request.getPhone())
|
||||||
|
.setLanguageCode(request.getLanguageCode())
|
||||||
.setAreaId(request.getAreaId())
|
.setAreaId(request.getAreaId())
|
||||||
.setTitleId(request.getTitleId())
|
.setTitleId(request.getTitleId())
|
||||||
.setCompanyId(StrUtil.join(",", request.getCompanyIds()))
|
.setCompanyId(StrUtil.join(",", request.getCompanyIds()))
|
||||||
.setUpdateTime(LocalDateTime.now());
|
.setUpdateTime(LocalDateTime.now());
|
||||||
|
if (!Objects.equals(user.getState(), UserState.ToBeActivated.getState()) && Objects.nonNull(request.getEnable())) {
|
||||||
|
user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
||||||
|
}
|
||||||
appUserService.updateById(user);
|
appUserService.updateById(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -189,33 +196,40 @@ public class AppUserController extends ControllerBase {
|
||||||
.throwMessage("以下公司已设置主账号:" + StrUtil.join(",", customerService.listByIds(cIds).stream()
|
.throwMessage("以下公司已设置主账号:" + StrUtil.join(",", customerService.listByIds(cIds).stream()
|
||||||
.map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())));
|
.map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())));
|
||||||
}
|
}
|
||||||
if (!StrUtil.equals(user.getLoginName(), request.getLoginName())){
|
// if (!StrUtil.equals(user.getLoginName(), request.getLoginName())){
|
||||||
VUtils.trueThrowBusinessError(appUserService.lambdaQuery()
|
// VUtils.trueThrowBusinessError(appUserService.lambdaQuery()
|
||||||
.eq(AppUser::getLoginName, request.getLoginName())
|
// .eq(AppUser::getLoginName, request.getLoginName())
|
||||||
.ne(AppUser::getId, request.getId())
|
// .ne(AppUser::getId, request.getId())
|
||||||
.exists())
|
// .exists())
|
||||||
.throwMessage("登录名已存在");
|
// .throwMessage("登录名已存在");
|
||||||
user.setState(UserState.ToBeActivated.getState());
|
// user.setState(UserState.ToBeActivated.getState());
|
||||||
String code= RandomUtil.randomString(6);
|
// String code= RandomUtil.randomString(6);
|
||||||
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getLoginName(), code, Duration.ofHours(72));
|
// redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getLoginName(), code, Duration.ofHours(72));
|
||||||
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getLoginName(), Duration.ofHours(72));
|
// redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getLoginName(), Duration.ofHours(72));
|
||||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
// String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
// String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
||||||
.replace("${email}", user.getLoginName())
|
// .replace("${email}", user.getLoginName())
|
||||||
.replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
// .replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
||||||
.replace("${password}", code);
|
// .replace("${password}", code);
|
||||||
emailService.sendEmail(request.getLoginName(), subject, content);
|
// emailService.sendEmail(request.getLoginName(), subject, content);
|
||||||
}else {
|
// }else {
|
||||||
if (Objects.nonNull(request.getEnable())) {
|
// if (Objects.nonNull(request.getEnable())) {
|
||||||
user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
// user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
user.setName(request.getUserName())
|
user.setName(request.getUserName())
|
||||||
.setPhone(request.getPhone())
|
.setPhone(request.getPhone())
|
||||||
|
.setAvatar(request.getAvatar())
|
||||||
|
.setSalesUserName(request.getSalesUserName())
|
||||||
|
.setPhone(request.getPhone())
|
||||||
|
.setLanguageCode(request.getLanguageCode())
|
||||||
.setAreaId(request.getAreaId())
|
.setAreaId(request.getAreaId())
|
||||||
.setTitleId(request.getTitleId())
|
.setTitleId(request.getTitleId())
|
||||||
.setCompanyId(StrUtil.join(",", request.getCompanyIds()))
|
.setCompanyId(StrUtil.join(",", request.getCompanyIds()))
|
||||||
.setUpdateTime(LocalDateTime.now());
|
.setUpdateTime(LocalDateTime.now());
|
||||||
|
if (!Objects.equals(user.getState(), UserState.ToBeActivated.getState()) && Objects.nonNull(request.getEnable())) {
|
||||||
|
user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState());
|
||||||
|
}
|
||||||
appUserService.updateById(user);
|
appUserService.updateById(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -366,4 +380,29 @@ public class AppUserController extends ControllerBase {
|
||||||
appUserService.deleteAppUser(request.getId());
|
appUserService.deleteAppUser(request.getId());
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更改邮箱
|
||||||
|
* @param request 请求参数
|
||||||
|
**/
|
||||||
|
@PostMapping("changeEmail")
|
||||||
|
@ApiMark(moduleName = "账号管理", apiName = "更改邮箱")
|
||||||
|
public ApiResult<Void> changeEmail(@Valid @RequestBody EmailChangeRequest request) throws MessagingException {
|
||||||
|
AppUser user=appUserService.getById(request.getUserId());
|
||||||
|
VUtils.trueThrowBusinessError(appUserService.lambdaQuery()
|
||||||
|
.eq(AppUser::getLoginName, request.getEmail())
|
||||||
|
.ne(AppUser::getId, request.getUserId())
|
||||||
|
.exists())
|
||||||
|
.throwMessage("已存在相同的登录名");
|
||||||
|
String code= RandomUtil.randomString(6);
|
||||||
|
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + user.getLoginName(), code, Duration.ofHours(72));
|
||||||
|
redisTemplate.opsForValue().set(Constant.REDIS_KEY_CHANGE_EMAIL_CODE + code, request.getEmail(), Duration.ofHours(72));
|
||||||
|
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE);
|
||||||
|
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_CHANGE_EMAIL, Constant.DEFAULT_LANGUAGE_CODE)
|
||||||
|
.replace("${email}", user.getLoginName())
|
||||||
|
.replace("${url}", activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString((user.getLoginName()+"|1").getBytes()))
|
||||||
|
.replace("${password}", code);
|
||||||
|
emailService.sendEmail(request.getEmail(), subject, content);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class EmailChangeRequest {
|
||||||
|
|
||||||
|
// 用户ID
|
||||||
|
private Integer userId;
|
||||||
|
|
||||||
|
// 新邮箱
|
||||||
|
private String email;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue