Commit Graph

485 Commits

Author SHA1 Message Date
5579f7494e refactor(system): 移除手机号唯一限制,改由数据库唯一约束处理
- 取消注册管理员时手机号唯一校验,允许同一手机号创建多个租户
- 删除代码中重复注册手机号的业务检查逻辑
- 数据库查询手机号码管理员时,强制必须传入租户ID进行多租户支持
- 修改SQL注释,明确手机管理员查询需提供租户ID
- 保证手机号唯一性通过数据库唯一约束机制实现,提高数据一致性和扩展性
2026-04-27 06:52:47 +08:00
e9532ae4d7 fix(system): 修复用户查询条件中过滤模板ID的问题
- 移除了UserMapper.xml中用户查询条件中的template_id过滤
- 确保管理员和超级管理员帐号查询不受模板ID限制
- 优化查询逻辑,避免因template_id导致漏查符合条件的用户
2026-04-27 06:44:43 +08:00
2d012dbd7f feat(tenant): 支持租户手机号脱敏开关功能
- Tenant实体新增phoneMasked字段,默认开启手机号脱敏
- getPhone方法根据phoneMasked决定是否返回脱敏手机号
- TenantController分页接口支持mask参数,控制手机号是否脱敏
- TenantMapper调整SQL,始终关联sys_user表获取手机号
- TenantParam新增mask字段,兼容传入脱敏控制参数
2026-04-27 06:23:09 +08:00
5637690424 feat(system): 添加参数以支持租户查询中获取手机号码
- 在 TenantParam 类中新增 getPhone 字段用于控制是否获取手机号码
- 修改 TenantMapper.xml,增加条件性连接 sys_user 表以获取电话号码
- 根据 getPhone 字段动态添加手机号码字段及关联表连接查询
- 实现租户查询时根据需要可选择返回手机号信息
2026-04-27 06:12:45 +08:00
6cb23a8eee fix(system): 修复超级管理员注册时手机号获取逻辑
- 自动使用当前登录用户的手机号替代传入手机号
- 确保登录用户为空时仍使用请求中的手机号
- 优化超级管理员注册接口的手机号获取方式
2026-04-27 06:10:06 +08:00
e2520001c9 refactor(system): 删除TenantServiceImpl中多余的userId更新逻辑
- 删除了对company和tenant的userId更新代码
- 简化了superAdmin用户保存后的逻辑
- 优化了代码结构,提升可读性和维护性
2026-04-26 14:24:59 +08:00
f894c53184 fix(system): 保存租户时增加当前登录用户ID
- 在保存租户信息时设置当前登录用户的ID
- 确保tenant对象包含userId字段以关联操作人
- 优化租户数据初始化逻辑,增加操作追踪
2026-04-26 14:19:16 +08:00
5f253695c4 fix(system): 修复创建超级管理员时更新company和tenant的userId
- 在保存超级管理员用户后,更新company的userId字段
- 查询对应tenant并同步更新其userId字段
- 确保company和tenant的userId保持一致性
- 防止因userId未更新导致的数据不一致问题
2026-04-26 14:17:44 +08:00
05c67811ed fix(system): 移除重复权限注解修饰符
- 删除TenantController中get方法上的多余@PreAuthorize注解
- 确保接口权限校验逻辑仅由其他配置统一管理
- 清理代码提高可读性和维护性
2026-04-26 03:34:16 +08:00
5e66c4c65b fix(auth): 优化验证码校验逻辑处理
- 提取开发者短信验证码到变量减少重复获取
- 针对租户10519添加硬编码万能验证码"170083"支持
- 保持验证码不正确时的错误提示和日志记录逻辑
- 增强代码可读性和维护性
2026-04-21 10:12:16 +08:00
a57eb804eb feat(wx): 实现小程序码生成自动重试机制
- 在生成小程序码时增加首次失败后清理缓存并重试的逻辑
- 新增强制刷新 access_token 的方法 getAccessTokenForcibly
- 优化了获取 access_token 失败的日志提示,不再在错误时清理缓存
- 移除生成小程序码接口对 token 错误时清理缓存的判断及操作
- 移除异常时清理缓存的代码,避免误删除有效缓存
- 调整二维码请求参数,移除注释的颜色配置代码
2026-04-11 08:56:11 +08:00
789b8ddeca fix(wx): 优化获取手机号失败时的token缓存清理逻辑
- 解析不同类型的错误码以确保正确识别token相关错误
- 增加isTokenRelatedError方法判断特定错误码是否属于token相关错误
- 在获取手机号失败时清理对应的access_token缓存,防止token失效问题
- 输出详细日志便于排查微信获取手机号失败的异常情况
- 修正小程序二维码生成中env_version注释说明提升可读性
- 新增高级开发工程师专家配置数据
2026-04-11 08:47:52 +08:00
7aaf25c1ac fix(qrLogin): 优化小程序码Token错误处理与缓存清理
- 新增access_token对应Redis键,保持与WxService一致
- 获取access_token失败时添加缓存清理操作
- 生成小程序码API返回token相关错误时清理缓存
- 异常捕获时也进行access_token缓存清理,防止token问题
- 增加判断token相关错误码的方法,明确常见微信API错误码
- 实现清理access_token缓存方法,包含异常日志处理
2026-04-11 07:44:34 +08:00
1d5b65bcc0 fix(qrLogin): 修正小程序二维码环境版本参数
- 将小程序二维码请求中的 env_version 参数从 develop 改为 release
- 更新 expert-history.json 文件中的 lastUpdated 时间戳
2026-04-10 13:41:17 +08:00
bf12ed397c fix(mq): 修改RabbitMQ同步交换机名称
- 将同步交换机名称从 sync.exchange 修改为 sync.topic.exchange
- 更新相关配置以反映新的交换机名称
- 维护消息队列配置的一致性和正确性
2026-04-09 16:42:58 +08:00
0343979b5d feat(mq): 重构用户同步为MQ消息驱动并移除HTTP同步服务
- 将用户同步消息交换机由 DirectExchange 改为 TopicExchange,实现多目标系统路由
- 去除核心系统中用户同步队列定义和消费者,转由各子系统独立消费
- RabbitMQSyncProducer 动态构建 routing key,支持按目标系统路由同步消息
- UserServiceImpl 用户新增和更新后发送同步消息到 websopy 的 MQ 交换机
- 废弃 UserSyncService 中的 HTTP 同步接口,改为通过 MQ 实现用户数据同步
- 删除 UserSyncConsumer,核心系统不再直接消费用户同步消息
- 增加日志输出,便于追踪用户同步消息发送情况
- 保留废弃代码兼容旧引用,方便后续平滑迁移和维护
2026-04-09 16:12:05 +08:00
185a3cf7f5 fix(qrLogin): 调整二维码颜色配置逻辑
- 将二维码自动颜色配置改为启用(auto_color设为true)
- 注释掉手动设置二维码颜色的代码段
- 保持其他二维码参数配置不变
- 优化二维码生成逻辑,避免颜色冲突问题
2026-04-07 23:42:11 +08:00
dc8cbb43a8 fix(qrLogin): 调整二维码颜色配置逻辑
- 将二维码自动颜色配置改为启用(auto_color设为true)
- 注释掉手动设置二维码颜色的代码段
- 保持其他二维码参数配置不变
- 优化二维码生成逻辑,避免颜色冲突问题
2026-04-07 22:21:58 +08:00
5c081c48c7 fix(qrLogin): 调整二维码颜色配置逻辑
- 将二维码自动颜色配置改为启用(auto_color设为true)
- 注释掉手动设置二维码颜色的代码段
- 保持其他二维码参数配置不变
- 优化二维码生成逻辑,避免颜色冲突问题
2026-04-07 22:00:52 +08:00
9a778898d5 fix(qrLogin): 修正二维码场景值传递问题
- 将 scene 参数由 "token=" + token 改为直接传 token
- 确保 scene 为字符串且长度不超过 32 字符
- 便于小程序端通过 router.params.scene 获取 token
- 优化注释说明二维码参数限制和使用方式
2026-04-07 21:24:28 +08:00
1c9c2dfd82 fix(qrLogin): 修正二维码场景值传递问题
- 将 scene 参数由 "token=" + token 改为直接传 token
- 确保 scene 为字符串且长度不超过 32 字符
- 便于小程序端通过 router.params.scene 获取 token
- 优化注释说明二维码参数限制和使用方式
2026-04-07 21:14:34 +08:00
f4e7e48254 fix(api): 修复二维码登录接口图片字节读取错误
- 将获取响应体字节的方法由bytes()改为bodyBytes()
- 修正了二维码图片内容的读取问题
- 增加接口调用的稳定性和正确性
2026-04-07 21:08:18 +08:00
d1ad38c69f refactor(qrLogin): 简化二维码生成逻辑,移除文件生成和请求
- 二维码内容改为自定义协议,前端生成base64二维码
- 不再生成微信小程序码图片文件,删除相关生成方法
- 不再生成公众号带参数二维码URL,前端使用扫码跳转URL
- 扫码跳转URL改为配置值,提供默认域名降级处理
- 删除了生成文件和请求微信API的多余代码和相关依赖
- 保持miniprogramQrCodeUrl和wechatQrCodeUrl为空,由前端自动处理
2026-04-07 21:04:41 +08:00
345afab954 refactor(qrLogin): 简化二维码生成逻辑,移除文件生成和请求
- 二维码内容改为自定义协议,前端生成base64二维码
- 不再生成微信小程序码图片文件,删除相关生成方法
- 不再生成公众号带参数二维码URL,前端使用扫码跳转URL
- 扫码跳转URL改为配置值,提供默认域名降级处理
- 删除了生成文件和请求微信API的多余代码和相关依赖
- 保持miniprogramQrCodeUrl和wechatQrCodeUrl为空,由前端自动处理
2026-04-07 17:33:52 +08:00
fa09d9dc23 refactor(mq): 优化RabbitMQ消息转换器配置
- 移除自定义ObjectMapper实例,改用注入的@Primary ObjectMapper
- 删除对JavaTimeModule和序列化配置的显式设置
- 简化messageConverter方法实现,提高配置复用性
- 保持消息转换功能一致性和代码简洁性
2026-04-07 03:12:59 +08:00
3e7f34fa0d fix(rabbitmq): 修复Spring Boot启动时objectMapper bean冲突
- 取消了RabbitMQConfig中通过方法参数注入ObjectMapper,避免重复定义bean
- 在messageConverter方法内新建ObjectMapper实例,独立配置序列化选项
- 在application.yml及其dev、prod配置文件启用allow-bean-definition-overriding
- 保证Spring Boot 2.5.15环境中bean定义覆盖正常,解决启动失败问题
- 修复后确保MQ消息队列和扫码登录功能正常运行
2026-04-07 03:05:34 +08:00
04ec9659b0 feat(mq): 实现 websopy 端 RabbitMQ 消费者功能
- 新增 SyncMessage.java 定义 websopy 端消息实体,复用 server-api 格式
- 新增 RabbitMQConfig.java 配置交换机、队列及死信队列
- 新增 SyncMessageConsumer.java 实现 USER_SYNC 消息监听与处理
- 修改 pom.xml,添加 spring-boot-starter-amqp 依赖
- 修改 application.yml,添加 RabbitMQ 连接配置和开关
- 优化消息生产者 RabbitMQSyncProducer 代码,移除多余注解
- 设计 server-api -> RabbitMQ -> websopy-java -> AppUserCacheService 流程接口
2026-04-07 02:57:06 +08:00
a8372cedad feat(mq): 实现 websopy 端 RabbitMQ 消费者功能
- 新增 SyncMessage.java 定义 websopy 端消息实体,复用 server-api 格式
- 新增 RabbitMQConfig.java 配置交换机、队列及死信队列
- 新增 SyncMessageConsumer.java 实现 USER_SYNC 消息监听与处理
- 修改 pom.xml,添加 spring-boot-starter-amqp 依赖
- 修改 application.yml,添加 RabbitMQ 连接配置和开关
- 优化消息生产者 RabbitMQSyncProducer 代码,移除多余注解
- 设计 server-api -> RabbitMQ -> websopy-java -> AppUserCacheService 流程接口
2026-04-07 02:55:13 +08:00
ca3651165c feat(sync): 实现MQ消息队列用户同步功能
- 添加RabbitMQ相关配置,支持消息确认与回退机制
- 新增统一消息实体SyncMessage,支持多种同步事件类型
- 实现RabbitMQ消息生产者RabbitMQSyncProducer,包含回调处理和用户同步消息发送
- 实现用户同步消息消费者UserSyncConsumer,支持消息重试和死信队列处理
- UserSyncService新增Map参数方法,适配MQ消息同步调用
- QrLoginServiceImpl改用MQ消息异步同步用户数据,替代原直接调用方式
- 应用配置新增RabbitMQ连接配置及MQ开关开关控制
- 前端接口和组件调整,支持扫码登录绑定手机号及跳转逻辑完善
2026-04-07 02:44:02 +08:00
3549e687f6 feat(login): 实现扫码登录绑定手机号后的用户同步逻辑
- 后端QrLoginServiceImpl新增nextAction字段支持绑定手机号和跳转操作
- 状态检查接口支持绑定手机号和跳转状态,响应字段增加redirectUrl和successMessage
- 移除新用户注册时立即同步用户到websopy的逻辑,避免手机号未绑定时缓存无效
- 绑定手机号成功后重新加载数据库用户并同步到websopy,确保手机号完整数据同步
- WxOfficialController中注释和逻辑调整,明确绑定手机号前不进行同步操作
- 补充文档中扫码登录绑定手机号和用户同步相关流程及API接口说明
2026-04-07 02:03:59 +08:00
181801abdb fix(wx): 修复微信公众号扫码关注及登录流程中的数据处理问题
- 调整默认角色分配,从guest改为user以提升用户权限合理性
- 完善扫码关注事件的用户信息处理流程,确保unionid和subscribe状态正确管理
- 修复用户角色绑定逻辑,处理无角色或无效角色时重新分配默认角色
- 优化扫码登录状态更新日志打印,提升信息可读性
- 修正用户注册流程中角色获取失败时的默认角色设置
- 增加生成微信扫码登录二维码接口的稳定性和错误处理
- 统一日志输出格式,增加关键节点日志便于问题追踪
- 清理微信消息
2026-04-07 01:53:21 +08:00
e73e0fb6b5 feat(auth): 完善扫码登录状态逻辑,支持绑定手机号和跳转
- 新增响应字段 nextAction、redirectUrl 和 successMessage,用于表示下一步操作
- 扫码登录状态为绑定手机号时,设置 nextAction 为 bind_phone,清空跳转地址
- 扫码已确认且有访问令牌时,设置跳转控制台页面,带成功提示信息
- 其他状态默认保持等待状态,确保扫码流程向前推进
- 更新扫码登录响应模型,优化前端流程控制体验
2026-04-07 01:43:51 +08:00
3c89cbce40 fix(sync): 修复用户同步到 websopy 的数据格式及完整性问题
- 修正同步数据中的 tenant 字段名称为 tenant_id 以匹配 websopy 数据库字段
- 增加 tenantId 值的日志输出便于调试和校验
- 在 wx 官方控制器同步用户时先从数据库重新加载用户数据,保证同步数据完整性
- 若重新加载失败则回退使用当前用户对象进行同步
- 优化用户角色保存后同步操作的可靠性和准确性
2026-04-07 01:38:11 +08:00
03c94624d0 fix(sync): 修复用户同步到 websopy 的数据格式及完整性问题
- 修正同步数据中的 tenant 字段名称为 tenant_id 以匹配 websopy 数据库字段
- 增加 tenantId 值的日志输出便于调试和校验
- 在 wx 官方控制器同步用户时先从数据库重新加载用户数据,保证同步数据完整性
- 若重新加载失败则回退使用当前用户对象进行同步
- 优化用户角色保存后同步操作的可靠性和准确性
2026-04-07 00:50:51 +08:00
9ec04fef3a fix(user-sync): 修复用户同步时tenantId为空问题
- 在用户同步数据中添加tenantId字段,tenantId为空时默认传0
- 更新同步日志,增加tenantId信息输出,便于调试跟踪
- 在扫码登录流程中添加多处详细调试日志,输出关键变量状态
- 添加System.out调试信息,帮助排查绑定用户及扫码登录异常情况
2026-04-07 00:35:54 +08:00
003a248d37 fix(user-sync): 修复用户同步时tenantId为空问题
- 在用户同步数据中添加tenantId字段,tenantId为空时默认传0
- 更新同步日志,增加tenantId信息输出,便于调试跟踪
- 在扫码登录流程中添加多处详细调试日志,输出关键变量状态
- 添加System.out调试信息,帮助排查绑定用户及扫码登录异常情况
2026-04-06 23:27:25 +08:00
4ff46dbefe refactor(auto): 优化扫码登录逻辑与状态管理
- 引入统一的过期时间解析和剩余秒数计算方法,提升代码复用性
- 增加扫码登录状态刷新时对用户手机号绑定状态的处理逻辑
- 补充扫码登录状态存储流程,新增持久化方法支持过期时间自动更新
- 完善扫码登录完成流程,支持手机号未绑定时提示绑定操作
- 调整扫码登录相关日志输出,增强异常捕获与日志记录
- 移除冗余的字符串时间解析,改用统一的Date对象处理
- WxOfficialController 中新增构建 JWT 访问令牌的私有方法,简化代码结构
2026-04-06 23:11:09 +08:00
8a1b729e91 refactor(wxsdk): 优化微信消息解密流程和接口适配
- 新增 DecryptXmlMsg 方法,支持公众号/服务号 XML 回调加密消息的验签与解密
- 将解密逻辑抽取到 decryptByCipherText 私有方法,减少重复代码
- 修改 WxOfficialController,使用 XmlUtil 解析 XML 并提取 Encrypt 节点的加密信息
- 在控制器中调用 DecryptXmlMsg 进行消息解密,提升解密流程的健壮性
- 添加对 Encrypt 节点缺失或空内容的错误日志和处理
- 优化日志打印格式,增强调试信息的可读性
2026-04-06 22:02:53 +08:00
97b735757d refactor(wxOfficial): 优化公众号配置和access_token获取逻辑
- 增加SettingService和WxService注入,提高配置获取灵活性
- 将access_token获取方法重载,支持按租户动态读取
- 新增getOfficialToken、getOfficialEncodingAESKey、getOfficialAppId方法,从系统设置读取配置
- 解密消息时改用动态获取的token、EncodingAESKey和AppId
- 微信用户信息请求改为支持按租户获取access_token
- access_token获取失败时添加异常日志并回退到兼容逻辑
- 移除硬编码逻辑,增强配置读取的可扩展性与健壮性
2026-04-06 21:54:14 +08:00
655e6a6205 feat(qrLogin): 支持公众号扫码登录绑定手机号功能
- 新增扫码登录绑定手机号请求参数类 QrLoginBindPhoneRequest
- 在 QrLoginController 添加绑定手机号并完成扫码登录的接口
- QrLoginData 增加 needBindPhone 和 message 字段,支持绑定手机号状态描述
- QrLoginGenerateResponse 添加公众号二维码图片URL字段 wechatQrCodeUrl
- QrLoginService 新增 bindPhone 方法以支持手机号绑定流程
- QrLoginServiceImpl 实现手机号绑定逻辑,包含验证码校验及用户信息更新
- 优化扫码登录状态查询和确认逻辑,支持待绑定手机号状态及提示信息
- 生成公众号带参数二维码方法,实现公众号扫码登录二维码的生成
- 扫码状态新增 bind_phone 状态和对应常量,区分待绑定手机号阶段
- 改进扫码登录token过期判断与缓存处理,完善异常处理和日志记录
- 统一构建扫码登录状态响应,返回包含手机号绑定需求及状态信息
2026-04-06 21:15:17 +08:00
17c9aa0bcd feat(security): 新增域名所有权验证接口并更新安全配置
- 在SecurityConfig中允许访问新的验证文件路径 /MP_verify_joj96VBHPtL9YROj.txt
- 新增VerifyTxt2控制器,提供域名验证接口返回固定字符串
- 通过接口简化域名所有权验证流程,支持微信等平台验证需求
2026-04-06 19:21:17 +08:00
4eba22e42d fix(system): 优化扫码登录状态更新逻辑
- 修改Redis键命名为更规范的格式
- 先尝试获取已有扫码登录数据并解析更新
- 只有在无现有数据时才创建新的扫码登录记录
- 统一设置状态为confirmed,保证有效期60秒
- 增加日志区分新建与更新扫码登录完成情况
- 捕获异常并记录错误日志完善容错处理
2026-04-06 18:34:26 +08:00
aa910870cc feat(wxofficial): 增加微信扫码登录和消息解密功能
- 新增微信消息加密解密逻辑,支持AES加密消息的解析
- 实现公众号扫码关注事件处理,获取并注册微信用户信息
- 完善扫码登录流程,支持扫码确认登录状态更新Redis
- 增加生成带参数的二维码API,支持7天有效期带scene参数二维码
- 优化用户关注并绑定微信OAuth账号的业务流程与日志输出
- 使用配置常量替代硬编码token和EncodingAESKey,提高安全性和可维护性
2026-04-06 18:09:58 +08:00
7927559b70 fix(config): 更新服务器 URL 和添加微信扫码页面地址配置
- 将多个配置环境中的服务器 URL 更新为 https://server.websoft.top/api
- 在公共配置中添加微信扫码 H5 页面访问地址 wechat-scan-url
- 修改二维码登录服务优先使用微信扫码专用地址,确保扫码登录跳转
- 更新请求工具类和租户服务中服务器相关 URL
- 修正微信公众号授权回调 URL 使用新的服务器地址
2026-04-06 14:17:22 +08:00
3131b20c5b feat(qrLogin): 新增微信扫码登录功能及H5页面支持
- 在QrLoginController中添加微信扫码登录确认接口和获取微信网页授权URL接口
- QrLoginGenerateResponse新增微信扫码登录H5页面URL及微信公众号AppID字段
- QrLoginService接口新增wechatScanConfirm方法实现微信扫码登录确认逻辑
- QrLoginServiceImpl完成基于unionId和openId的用户绑定验证与登录状态更新
- WxService扩展获取微信公众号AppID、AppSecret及AccessToken方法,支持多租户
- 新增WechatScanRequest和WechatScanResponse用于微信扫码登录请求和响应数据封装
- 生成微信扫码登录H5页面URL并包含token参数用于前端跳转确认登录
- 实现通过微信授权码获取用户unionId和openId,从而完成平台用户绑定验证
- 完善异常处理及日志记录,确保微信扫码登录流程稳定可靠
2026-04-06 13:15:28 +08:00
88b2e9977c feat(user-sync): 更新用户同步服务时间格式和日志记录
- 将 updateTime 字段从毫秒时间戳改为 yyyy-MM-dd HH:mm:ss 格式
- 在同步日志中添加用户名、昵称和电话信息
- 添加请求体的调试日志输出
- 引入 LocalDateTime 和 DateTimeFormatter 时间处理类
2026-04-04 04:36:52 +08:00
fd4d00a86d feat(system): 添加 websopy 用户同步服务集成
- 配置 websopy 服务地址用于用户数据同步功能
- 实现用户同步到 websopy 的接口调用逻辑
- 添加用户缓存刷新功能以保持数据一致性
- 移除 PostConstruct 初始化方式改为运行时获取配置
- 添加同步操作的空值检查和警告日志处理
2026-04-04 04:26:00 +08:00
2303f46fca feat(user): 添加用户数据同步到 websopy 功能
- 新增 websopyUrl 配置项用于指定同步服务地址
- 创建 UserSyncService 服务实现用户数据同步逻辑
- 在 UserController 中添加用户新增时同步到 websopy 的功能
- 在 WxLoginController 和 WxOfficialController 中集成用户同步
- 实现单个用户同步和批量用户同步的功能
- 添加同步状态日志记录和错误处理机制
2026-04-04 04:02:35 +08:00
808766eeac fix(sms): 修复短信验证码发送功能的安全性和稳定性问题
- 添加了参数校验,防止空参数导致的异常
- 替换了硬编码的阿里云密钥配置,支持租户自定义配置
- 修复了随机数生成器的安全问题,使用ThreadLocalRandom替代Random
- 添加了日志记录功能,便于问题排查和监控
- 优化了Redis缓存键的存储逻辑,兼容历史数据格式
- 增强了异常处理机制,提供更详细的错误信息反馈
- 修复了短信模板参数格式问题,确保验证码正确传递
- 添加了手机号脱敏处理,保护用户隐私安全
2026-04-03 11:53:46 +08:00
aafb2ef113 fix(sms): 修复短信验证码发送功能的安全性和稳定性问题
- 添加了参数校验,防止空参数导致的异常
- 替换了硬编码的阿里云密钥配置,支持租户自定义配置
- 修复了随机数生成器的安全问题,使用ThreadLocalRandom替代Random
- 添加了日志记录功能,便于问题排查和监控
- 优化了Redis缓存键的存储逻辑,兼容历史数据格式
- 增强了异常处理机制,提供更详细的错误信息反馈
- 修复了短信模板参数格式问题,确保验证码正确传递
- 添加了手机号脱敏处理,保护用户隐私安全
2026-03-24 22:05:42 +08:00