设备注册 短信跟邮箱验证
This commit is contained in:
@@ -46,6 +46,13 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
*/
|
||||
private static final String USER_NAME_PREFIX = "app_";
|
||||
|
||||
/**
|
||||
* 生成 APP 用户默认昵称,避免直接暴露手机号或邮箱。
|
||||
*/
|
||||
private static String defaultNickName() {
|
||||
return "user_" + System.currentTimeMillis();
|
||||
}
|
||||
|
||||
private final SysUserMapper userMapper;
|
||||
|
||||
/**
|
||||
@@ -138,11 +145,12 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
* <li>与后台 {@code sys_user} 的账号名冲突需其恰好命名为 {@code app_<雪花ID>},非自然产生。</li>
|
||||
* </ul>
|
||||
* 说明:APP 登录仅依赖 {@code phone_number}(见 {@code selectByPhone}),不依赖 {@code user_name};
|
||||
* 展示用昵称取 {@code nickName}(默认手机号),故 user_name 采用内部派生值不影响用户展示。
|
||||
* 展示用昵称取 {@code nickName}(未传时默认生成 {@code user_ + 当前时间戳}),故 user_name
|
||||
* 采用内部派生值不影响用户展示。
|
||||
*
|
||||
* @param phoneNumber 手机号
|
||||
* @param rawPassword 明文密码
|
||||
* @param nickName 昵称(为空时默认取手机号)
|
||||
* @param nickName 昵称(为空时默认生成 {@code user_ + 当前时间戳})
|
||||
* @return 新建用户主键
|
||||
*/
|
||||
@Override
|
||||
@@ -151,7 +159,7 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
SysUser user = new SysUser();
|
||||
user.setUserId(userId);
|
||||
user.setUserName(USER_NAME_PREFIX + userId);
|
||||
user.setNickName(StringUtils.isBlank(nickName) ? phoneNumber : nickName);
|
||||
user.setNickName(StringUtils.isBlank(nickName) ? defaultNickName() : nickName);
|
||||
user.setPhoneNumber(phoneNumber);
|
||||
user.setUserType(UserType.APP_USER.getUserType());
|
||||
user.setPassword(BCrypt.hashpw(rawPassword));
|
||||
@@ -210,6 +218,22 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
.exists();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新 APP 用户邮箱;调用方负责完成验证码和唯一性校验。
|
||||
* <p>仅写入邮箱字段,不改动昵称及其他用户资料。</p>
|
||||
*/
|
||||
@Override
|
||||
public boolean updateEmail(Long userId, String newEmail) {
|
||||
if (userId == null || StringUtils.isBlank(newEmail)) {
|
||||
return false;
|
||||
}
|
||||
return userMapper.lambda()
|
||||
.set(SysUser::getEmail, newEmail)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.eq(SysUser::getUserType, UserType.APP_USER.getUserType())
|
||||
.updateCount() > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 以邮箱注册一个 APP 用户。
|
||||
* <p>
|
||||
@@ -224,7 +248,7 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
*
|
||||
* @param email 邮箱地址(已归一化)
|
||||
* @param rawPassword 明文密码
|
||||
* @param nickName 昵称(为空时默认取邮箱)
|
||||
* @param nickName 昵称(为空时默认生成 {@code user_ + 当前时间戳})
|
||||
* @return 新建用户主键
|
||||
*/
|
||||
@Override
|
||||
@@ -233,7 +257,7 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
SysUser user = new SysUser();
|
||||
user.setUserId(userId);
|
||||
user.setUserName(USER_NAME_PREFIX + userId);
|
||||
user.setNickName(StringUtils.isBlank(nickName) ? email : nickName);
|
||||
user.setNickName(StringUtils.isBlank(nickName) ? defaultNickName() : nickName);
|
||||
user.setEmail(email);
|
||||
user.setUserType(UserType.APP_USER.getUserType());
|
||||
user.setPassword(BCrypt.hashpw(rawPassword));
|
||||
@@ -271,7 +295,7 @@ public class AppUserApiServiceImpl implements AppUserApiService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 换绑手机号。
|
||||
* 换绑手机号;仅写入手机号字段,不改动昵称及其他用户资料。
|
||||
*
|
||||
* @param userId 用户主键
|
||||
* @param newPhoneNumber 新手机号
|
||||
|
||||
Reference in New Issue
Block a user