From 673e974e9357b915a87b19249bc06b65deae9b87 Mon Sep 17 00:00:00 2001 From: tangwei Date: Wed, 8 Jul 2026 16:07:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B3=A8=E5=86=8C=E7=AD=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=A2=9E=E5=8A=A0=E9=97=A8=E6=88=B7id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SmsVerifyCodeController.java | 40 +++++++++---------- .../platform/system/domain/SmsVerifyCode.java | 7 ++++ .../system/service/ISmsVerifyCodeService.java | 6 +-- .../platform/system/service/IUserService.java | 2 +- .../impl/SmsVerifyCodeServiceImpl.java | 12 ++++-- .../system/service/impl/UserServiceImpl.java | 3 +- 6 files changed, 41 insertions(+), 29 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java index d777842d..8854e2fb 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java @@ -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 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 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 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("该手机号未注册"); } diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SmsVerifyCode.java b/backend/src/main/java/com/yfd/platform/system/domain/SmsVerifyCode.java index 988e35a7..839a58b2 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SmsVerifyCode.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SmsVerifyCode.java @@ -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; } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/system/service/ISmsVerifyCodeService.java b/backend/src/main/java/com/yfd/platform/system/service/ISmsVerifyCodeService.java index 909a6ae4..e2cd39c5 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/ISmsVerifyCodeService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/ISmsVerifyCodeService.java @@ -18,7 +18,7 @@ public interface ISmsVerifyCodeService extends IService { * @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 { * @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 { boolean sendAuditNotify(String phone, String auditStatus, String reason); void batchSendContent(List phoneList, String content); - int urgeByUserIds(List userIds, String content); + int urgeByUserIds(String tenantId,List userIds, String content); } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/system/service/IUserService.java b/backend/src/main/java/com/yfd/platform/system/service/IUserService.java index 4e9cdd62..d9f12b89 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/IUserService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/IUserService.java @@ -155,7 +155,7 @@ public interface IUserService extends IService { *phone 手机号 * 返回值说明: 用户对象 ************************************/ - SysUser getUserByPhone(String phone); + SysUser getUserByPhone(String phone,String tenantId); /*********************************** * 用途说明:根据手机号修改密码 diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java index de1c5d31..4331f80a 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/SmsVerifyCodeServiceImpl.java @@ -42,13 +42,15 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl 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 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 userIds, String content) { + public int urgeByUserIds(String tenantId,List userIds, String content) { if (userIds == null || userIds.isEmpty()) { log.warn("催促短信发送失败:用户ID列表为空"); return 0; } List ids = userIds.stream().distinct().toList(); List sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper().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); diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java index 5f11a266..73b12b45 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java @@ -648,9 +648,10 @@ public class UserServiceImpl extends ServiceImpl impleme } @Override - public SysUser getUserByPhone(String phone) { + public SysUser getUserByPhone(String phone,String tenantId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysUser::getPhone, phone); + queryWrapper.eq(SysUser::getTenantId, tenantId); return this.getOne(queryWrapper); }