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

View File

@ -1,6 +1,7 @@
package com.yfd.platform.system.domain; package com.yfd.platform.system.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@ -63,4 +64,10 @@ public class SmsVerifyCode implements Serializable {
* 0-未使用 1-已使用 * 0-未使用 1-已使用
*/ */
private Integer status; 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-找回密码 * @param type 1-注册 2-找回密码
* @return 验证码 * @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-找回密码 * @param type 类型 1-注册 2-找回密码
* @return 是否验证通过 * @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); boolean sendAuditNotify(String phone, String auditStatus, String reason);
void batchSendContent(List<String> phoneList, String content); 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 手机号 *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 @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String sendVerifyCode(String phone, Integer type) { public String sendVerifyCode(String phone, Integer type,String tenantId) {
String code = generateCode(); String code = generateCode();
LambdaQueryWrapper<SmsVerifyCode> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SmsVerifyCode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SmsVerifyCode::getPhone, phone) queryWrapper.eq(SmsVerifyCode::getPhone, phone)
.eq(SmsVerifyCode::getType, type) .eq(SmsVerifyCode::getType, type)
.gt(SmsVerifyCode::getTenantId, tenantId)
.eq(SmsVerifyCode::getStatus, SmsVerifyCode.STATUS_UNUSED); .eq(SmsVerifyCode::getStatus, SmsVerifyCode.STATUS_UNUSED);
this.remove(queryWrapper); this.remove(queryWrapper);
SmsVerifyCode verifyCode = new SmsVerifyCode(); SmsVerifyCode verifyCode = new SmsVerifyCode();
@ -58,6 +60,7 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
verifyCode.setType(type); verifyCode.setType(type);
verifyCode.setStatus(SmsVerifyCode.STATUS_UNUSED); verifyCode.setStatus(SmsVerifyCode.STATUS_UNUSED);
verifyCode.setCreateTime(new Date()); verifyCode.setCreateTime(new Date());
verifyCode.setTenantId(tenantId);
Date expireTime = new Date(System.currentTimeMillis() + CODE_VALID_MINUTES * 60 * 1000L); Date expireTime = new Date(System.currentTimeMillis() + CODE_VALID_MINUTES * 60 * 1000L);
verifyCode.setExpireTime(expireTime); verifyCode.setExpireTime(expireTime);
@ -75,11 +78,12 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
} }
@Override @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<>(); LambdaQueryWrapper<SmsVerifyCode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SmsVerifyCode::getPhone, phone) queryWrapper.eq(SmsVerifyCode::getPhone, phone)
.eq(SmsVerifyCode::getCode, code) .eq(SmsVerifyCode::getCode, code)
.eq(SmsVerifyCode::getType, type) .eq(SmsVerifyCode::getType, type)
.eq(SmsVerifyCode::getTenantId, tenantId)
.eq(SmsVerifyCode::getStatus, SmsVerifyCode.STATUS_UNUSED) .eq(SmsVerifyCode::getStatus, SmsVerifyCode.STATUS_UNUSED)
.gt(SmsVerifyCode::getExpireTime, new Date()); .gt(SmsVerifyCode::getExpireTime, new Date());
@ -150,14 +154,14 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
@Override @Override
public int urgeByUserIds(List<String> userIds, String content) { public int urgeByUserIds(String tenantId,List<String> userIds, String content) {
if (userIds == null || userIds.isEmpty()) { if (userIds == null || userIds.isEmpty()) {
log.warn("催促短信发送失败用户ID列表为空"); log.warn("催促短信发送失败用户ID列表为空");
return 0; return 0;
} }
List<String> ids = userIds.stream().distinct().toList(); List<String> ids = userIds.stream().distinct().toList();
List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getId, ids) 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()) { if (sysUsers.isEmpty()) {
log.warn("催促短信发送失败未找到有效的手机号userIds: {}", ids); log.warn("催促短信发送失败未找到有效的手机号userIds: {}", ids);

View File

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