fix: 注册等功能增加门户id

This commit is contained in:
tangwei 2026-07-08 16:07:39 +08:00
parent 1090ab6ddb
commit 673e974e93
6 changed files with 41 additions and 29 deletions

View File

@ -78,7 +78,7 @@ public class SmsVerifyCodeController {
*/
@PostMapping("/sendCode")
@Operation(summary = "发送验证码")
public ResponseResult sendVerifyCode(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult sendVerifyCode(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
String phone = smsVerifyCodeRequest.getPhone();
Integer type = smsVerifyCodeRequest.getType();
@ -91,21 +91,21 @@ public class SmsVerifyCodeController {
// 1. 注册验证码校验
if (type.equals(SmsVerifyCode.TYPE_REGISTER)) {
SysUser existUser = userService.getUserByPhone(phone);
SysUser existUser = userService.getUserByPhone(phone,tenantId);
if (existUser != null) {
return ResponseResult.error("该手机号已注册");
}
}
// 2. 找回密码验证码校验
else if (type.equals(SmsVerifyCode.TYPE_FIND_PASSWORD)) {
SysUser existUser = userService.getUserByPhone(phone);
SysUser existUser = userService.getUserByPhone(phone,tenantId);
if (existUser == null) {
return ResponseResult.error("该手机号未注册");
}
}
// 3. 登录验证码校验新增
else if (type.equals(SmsVerifyCode.TYPE_LOGIN)) {
SysUser existUser = userService.getUserByPhone(phone);
SysUser existUser = userService.getUserByPhone(phone,tenantId);
if (existUser == null) {
return ResponseResult.error("该手机号未注册,请先注册");
}
@ -118,7 +118,7 @@ public class SmsVerifyCodeController {
return ResponseResult.error("类型错误1-注册 2-找回密码 3-登录");
}
String code = smsVerifyCodeService.sendVerifyCode(phone, type);
String code = smsVerifyCodeService.sendVerifyCode(phone, type,tenantId);
if (code == null) {
return ResponseResult.error("验证码发送失败,请稍后重试");
}
@ -132,7 +132,7 @@ public class SmsVerifyCodeController {
*/
@PostMapping("/batchSendContent")
@Operation(summary = "批量发送短信")
public ResponseResult batchSendContent(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult batchSendContent(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
List<String> phoneList = smsVerifyCodeRequest.getPhoneList();
if(phoneList==null){
@ -148,7 +148,7 @@ public class SmsVerifyCodeController {
*/
@PostMapping("/batchUrgeContent")
@Operation(summary = "催促")
public ResponseResult batchUrgeContent(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult batchUrgeContent(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
List<String> userIds = smsVerifyCodeRequest.getUserIds();
String content = smsVerifyCodeRequest.getContent();
@ -161,7 +161,7 @@ public class SmsVerifyCodeController {
}
try {
int successCount = smsVerifyCodeService.urgeByUserIds(userIds, content);
int successCount = smsVerifyCodeService.urgeByUserIds(tenantId,userIds, content);
Map<String, Object> result = new HashMap<>();
// result.put("successCount", successCount);
result.put("totalCount", userIds.size());
@ -180,7 +180,7 @@ public class SmsVerifyCodeController {
@PostMapping("/register")
@Operation(summary = "注册用户")
@Transactional
public ResponseResult register(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult register(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
String code = smsVerifyCodeRequest.getCode();
if (smsVerifyCodeRequest.getPhone() == null || smsVerifyCodeRequest.getPhone().isEmpty()) {
return ResponseResult.error("手机号不能为空");
@ -195,12 +195,12 @@ public class SmsVerifyCodeController {
return ResponseResult.error("验证码不能为空");
}
boolean verified = smsVerifyCodeService.verifyCode(smsVerifyCodeRequest.getPhone(), code, SmsVerifyCode.TYPE_REGISTER);
boolean verified = smsVerifyCodeService.verifyCode(smsVerifyCodeRequest.getPhone(), code, SmsVerifyCode.TYPE_REGISTER,tenantId);
if (!verified) {
return ResponseResult.error("验证码错误或已过期");
}
SysUser existUser = userService.getUserByPhone(smsVerifyCodeRequest.getPhone());
SysUser existUser = userService.getUserByPhone(smsVerifyCodeRequest.getPhone(),tenantId);
if (existUser != null) {
return ResponseResult.error("该手机号已注册");
}
@ -225,7 +225,7 @@ public class SmsVerifyCodeController {
user.setCompanyCode(smsVerifyCodeRequest.getCompanyCode());
boolean success = userService.save(user);
// 给注册用户加上默认权限
SysUser savedUser = userService.getUserByPhone(smsVerifyCodeRequest.getPhone());
SysUser savedUser = userService.getUserByPhone(smsVerifyCodeRequest.getPhone(),tenantId);
if (savedUser != null) {
this.addDefaultRole(savedUser.getId(), smsVerifyCodeRequest);
}
@ -338,7 +338,7 @@ public class SmsVerifyCodeController {
*/
@PostMapping("/resetPassword")
@Operation(summary = "找回密码")
public ResponseResult resetPassword(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult resetPassword(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
String password = smsVerifyCodeRequest.getPassword();
String phone = smsVerifyCodeRequest.getPhone();
String code = smsVerifyCodeRequest.getCode();
@ -352,12 +352,12 @@ public class SmsVerifyCodeController {
return ResponseResult.error("新密码不能为空");
}
boolean verified = smsVerifyCodeService.verifyCode(phone, code, SmsVerifyCode.TYPE_FIND_PASSWORD);
boolean verified = smsVerifyCodeService.verifyCode(phone, code, SmsVerifyCode.TYPE_FIND_PASSWORD,tenantId);
if (!verified) {
return ResponseResult.error("验证码错误或已过期");
}
SysUser existUser = userService.getUserByPhone(phone);
SysUser existUser = userService.getUserByPhone(phone,tenantId);
if (existUser == null) {
return ResponseResult.error("该手机号未注册");
}
@ -382,11 +382,11 @@ public class SmsVerifyCodeController {
*/
@PostMapping("/verifyCode")
@Operation(summary = "验证验证码")
public ResponseResult verifyCode(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult verifyCode(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
String phone = smsVerifyCodeRequest.getPhone();
String code = smsVerifyCodeRequest.getCode();
Integer type = smsVerifyCodeRequest.getType();
boolean valid = smsVerifyCodeService.verifyCode(phone, code, type);
boolean valid = smsVerifyCodeService.verifyCode(phone, code, type,tenantId);
if (valid) {
return ResponseResult.success();
} else {
@ -399,7 +399,7 @@ public class SmsVerifyCodeController {
*/
@PostMapping("/login")
@Operation(summary = "短信验证码登录")
public ResponseResult smsLogin(@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
public ResponseResult smsLogin(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
String phone = smsVerifyCodeRequest.getPhone();
String code = smsVerifyCodeRequest.getCode();
if (phone == null || phone.isEmpty()) {
@ -409,12 +409,12 @@ public class SmsVerifyCodeController {
return ResponseResult.error("验证码不能为空");
}
boolean verified = smsVerifyCodeService.verifyCode(phone, code, SmsVerifyCode.TYPE_LOGIN);
boolean verified = smsVerifyCodeService.verifyCode(phone, code, SmsVerifyCode.TYPE_LOGIN,tenantId);
if (!verified) {
return ResponseResult.error("验证码错误或已过期");
}
SysUser user = userService.getUserByPhone(phone);
SysUser user = userService.getUserByPhone(phone,tenantId);
if (user == null) {
return ResponseResult.error("该手机号未注册");
}

View File

@ -1,6 +1,7 @@
package com.yfd.platform.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -63,4 +64,10 @@ public class SmsVerifyCode implements Serializable {
* 0-未使用 1-已使用
*/
private Integer status;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
}

View File

@ -18,7 +18,7 @@ public interface ISmsVerifyCodeService extends IService<SmsVerifyCode> {
* @param type 1-注册 2-找回密码
* @return 验证码
*/
String sendVerifyCode(String phone, Integer type);
String sendVerifyCode(String phone, Integer type,String tenantId);
/**
* 验证验证码
@ -27,7 +27,7 @@ public interface ISmsVerifyCodeService extends IService<SmsVerifyCode> {
* @param type 类型 1-注册 2-找回密码
* @return 是否验证通过
*/
boolean verifyCode(String phone, String code, Integer type);
boolean verifyCode(String phone, String code, Integer type,String tenantId);
/**
* 标记验证码已使用
@ -50,5 +50,5 @@ public interface ISmsVerifyCodeService extends IService<SmsVerifyCode> {
boolean sendAuditNotify(String phone, String auditStatus, String reason);
void batchSendContent(List<String> phoneList, String content);
int urgeByUserIds(List<String> userIds, String content);
int urgeByUserIds(String tenantId,List<String> userIds, String content);
}

View File

@ -155,7 +155,7 @@ public interface IUserService extends IService<SysUser> {
*phone 手机号
* 返回值说明: 用户对象
************************************/
SysUser getUserByPhone(String phone);
SysUser getUserByPhone(String phone,String tenantId);
/***********************************
* 用途说明根据手机号修改密码

View File

@ -42,13 +42,15 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
@Override
@Transactional(rollbackFor = Exception.class)
public String sendVerifyCode(String phone, Integer type) {
public String sendVerifyCode(String phone, Integer type,String tenantId) {
String code = generateCode();
LambdaQueryWrapper<SmsVerifyCode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SmsVerifyCode::getPhone, phone)
.eq(SmsVerifyCode::getType, type)
.gt(SmsVerifyCode::getTenantId, tenantId)
.eq(SmsVerifyCode::getStatus, SmsVerifyCode.STATUS_UNUSED);
this.remove(queryWrapper);
SmsVerifyCode verifyCode = new SmsVerifyCode();
@ -58,6 +60,7 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
verifyCode.setType(type);
verifyCode.setStatus(SmsVerifyCode.STATUS_UNUSED);
verifyCode.setCreateTime(new Date());
verifyCode.setTenantId(tenantId);
Date expireTime = new Date(System.currentTimeMillis() + CODE_VALID_MINUTES * 60 * 1000L);
verifyCode.setExpireTime(expireTime);
@ -75,11 +78,12 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
}
@Override
public boolean verifyCode(String phone, String code, Integer type) {
public boolean verifyCode(String phone, String code, Integer type,String tenantId) {
LambdaQueryWrapper<SmsVerifyCode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SmsVerifyCode::getPhone, phone)
.eq(SmsVerifyCode::getCode, code)
.eq(SmsVerifyCode::getType, type)
.eq(SmsVerifyCode::getTenantId, tenantId)
.eq(SmsVerifyCode::getStatus, SmsVerifyCode.STATUS_UNUSED)
.gt(SmsVerifyCode::getExpireTime, new Date());
@ -150,14 +154,14 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
@Override
public int urgeByUserIds(List<String> userIds, String content) {
public int urgeByUserIds(String tenantId,List<String> userIds, String content) {
if (userIds == null || userIds.isEmpty()) {
log.warn("催促短信发送失败用户ID列表为空");
return 0;
}
List<String> ids = userIds.stream().distinct().toList();
List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getId, ids)
.eq(SysUser::getRegStatus, "APPROVED").eq(SysUser::getStatus,1).select(SysUser::getPhone));
.eq(SysUser::getRegStatus, "APPROVED").eq(SysUser::getTenantId, tenantId).eq(SysUser::getStatus,1).select(SysUser::getPhone));
if (sysUsers.isEmpty()) {
log.warn("催促短信发送失败未找到有效的手机号userIds: {}", ids);

View File

@ -648,9 +648,10 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
}
@Override
public SysUser getUserByPhone(String phone) {
public SysUser getUserByPhone(String phone,String tenantId) {
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUser::getPhone, phone);
queryWrapper.eq(SysUser::getTenantId, tenantId);
return this.getOne(queryWrapper);
}