512 Commits

Author SHA1 Message Date
7f341c2399 Merge remote-tracking branch 'origin/master' 2026-06-20 22:03:11 +08:00
2982818a0c 10198添加手机添加下级逻辑 2026-06-20 22:03:07 +08:00
307c209565 fix(appconfig): 修复跨表查询以确保产品有效性
- selectByCategory SQL 增加 INNER JOIN app_product,确保只返回该租户下有效产品配置
- 加入关联条件 ap.product_id = ac.app_id 和 ap.tenant_id = #{tenantId}
- 保证查询结果中 app_config 的 app_id 必须对应有效且属于当前租户的产品
- 维护原有租户过滤和配置类型过滤逻辑,增强数据准确性
- 该改动对 Service 和 Controller 层无影响,无需修改调用逻辑
2026-06-18 17:17:45 +08:00
bae1f75533 Merge remote-tracking branch 'origin/master' 2026-06-18 16:32:00 +08:00
797a140f11 refactor(wxlogin): 改造微信配置读取优先从 app_config 获取
- 新增 AppConfig 实体及跨库 Mapper、XML 实现 db_websopy.app_config 查询
- 增加 AppConfigService 提供带缓存的配置读取接口,缓存两小时
- WxLoginController 注入 AppConfigService,新增私有方法 getMpWxSetting()
- getMpWxSetting() 优先读取 app_config(category=wechat),失败回退 sys_setting.mp-weixin
- 替换微信小程序配置获取调用点,统一通过 getMpWxSetting() 获取配置
- 避免跨库 TenantLineInterceptor 干扰,Mapper 方法加 @InterceptorIgnore 标注
- 修正 StringRedisTemplate 注入避免 Bean 名冲突
- 新增读取失败或无配置时的降级和异常处理逻辑
- 日志补充便于排查配置读取过程及缓存情况
2026-06-18 16:31:04 +08:00
fb75156a03 支付方式新增子商户id、子应用字段 2026-06-10 12:39:58 +08:00
779f90e813 feat(user): 新增开发者筛选条件
- 在UserParam中添加isDeveloper字段及其注解说明
- 在UserMapper.xml中添加isDeveloper的查询条件判断
- 支持根据开发者身份进行用户筛选查询
2026-06-05 17:19:31 +08:00
2a880df691 feat(auth): 新增开发者短信验证码登录功能
- 增加根据手机号查询最近登录开发者账号接口,忽略租户隔离
- 实现开发者登录时手机号无注册时的错误提示
- 在登录流程中支持场景参数,区分开发者登录逻辑
- 新增开发者短信验证码登录API及相关校验逻辑
- 将开发者短信登录接口加入安全配置免验证路径
- 在User实体中添加isDeveloper字段标识开发者账号
- 记录登录操作日志,包含成功与失败原因
- 支持token有效期配置优先取缓存中的注册配置
2026-05-31 11:30:07 +08:00
ec3bededa4 feat(auth): 新增超级管理员手机号短信验证码登录功能
- 在登录接口中增加对superAdminLogin场景的手机号校验
- 提供超级管理员短信验证码登录接口,支持验证码校验和超级管理员身份验证
- 超级管理员登录成功后生成访问token并缓存
- 在UserMapper中添加根据手机号查询最近登录超级管理员账号的方法
- 在UserService及其实现中增加对应的查询接口
- 更新SecurityConfig,放行超级管理员短信登录接口的权限验证
- 增强登录记录保存逻辑,包含错误和成功的登录记录保存
2026-05-31 10:52:33 +08:00
e2c84b94b9 fix(UserBalanceLog): 优化 SQL 参数空值校验
- 在多个 SQL 查询条件中添加参数非空且非空字符串判断
- 防止空字符串导致的错误匹配或异常
- 统一调整语句格式,保持代码规范和可读性
- 优化关联查询时参数过滤逻辑,提升查询准确性
2026-05-27 08:22:05 +08:00
f7e3cad931 feat(system): 支持分页查询租户时根据all参数控制范围
- 新增TenantParam中的all字段用于控制是否查询全部租户
- page接口根据all参数判断是否自动设置当前登录用户userId作为过滤条件
- 保持mask参数逻辑不变,支持脱敏控制
- 改进分页查询功能,增强查询灵活性和权限控制
2026-04-27 09:32:36 +08:00
6a48299e12 fix(system): 修复超级管理员用户名设置错误
- 将超级管理员用户名从随机UUID改为固定的"superAdmin"
- 确保超级管理员账户标识一致性
- 便于后续权限管理和系统维护
2026-04-27 09:25:36 +08:00
ed9d500e5d fix(system): 修正超级管理员标识及关联查询逻辑
- 将 TenantMapper.xml 中用户表连接更新为使用 gxwebsoft_core.sys_user
- 修改关联查询条件,使用 is_super_admin 替代 is_admin 标识
- 调整 User 实体中 isSuperAdmin 字段,移除@TableField注解以确保正确映射
2026-04-27 09:07:16 +08:00
64e9674d0e refactor(database): 优化租户相关SQL查询逻辑
- 移除嵌套子查询,改用子查询中取最小user_id方式关联管理员用户
- 简化管理员用户相关字段的查询逻辑,提升SQL可读性
- 直接关联sys_user表替代以前复杂多层嵌套结构
- 保持查询结果字段一致,避免影响现有功能使用
2026-04-27 07:26:47 +08:00
6804a0a824 refactor(database): 优化租户相关SQL查询逻辑
- 移除嵌套子查询,改用子查询中取最小user_id方式关联管理员用户
- 简化管理员用户相关字段的查询逻辑,提升SQL可读性
- 直接关联sys_user表替代以前复杂多层嵌套结构
- 保持查询结果字段一致,避免影响现有功能使用
2026-04-27 07:20:52 +08:00
a3c4b74d33 refactor(tenant): 优化租户管理员用户查询逻辑
- 修改TenantMapper中sys_user的关联查询方式
- 使用ROW_NUMBER窗口函数获取每个租户的第一个管理员用户
- 过滤出is_admin为1且未删除的用户,提高查询准确性
- 避免直接按照user_id关联带来的潜在数据错误
- 保持查询结果结构不变,确保兼容现有业务逻辑
2026-04-27 07:17:10 +08:00
c3bd90f234 fix(tenant): 修复租户初始化和关联查询问题
- tenantService.initialization()返回新增Company对象并使用其tenantId赋值
- userParam及userParam1新增tenantId字段,使用新创建租户ID
- Tenant实体新增username字段,支持用户名信息存储
- TenantMapper查询语句增加c.username字段关联查询
- TenantServiceImpl中超级管理员username设为随机UUID字符串,避免固定用户名冲突
2026-04-27 07:04:54 +08:00
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
7d562db19c fix(auth): 优化验证码校验逻辑处理
- 提取开发者短信验证码到变量减少重复获取
- 针对租户10519添加硬编码万能验证码"170083"支持
- 保持验证码不正确时的错误提示和日志记录逻辑
- 增强代码可读性和维护性
2026-04-21 10:12:21 +08:00
5e66c4c65b fix(auth): 优化验证码校验逻辑处理
- 提取开发者短信验证码到变量减少重复获取
- 针对租户10519添加硬编码万能验证码"170083"支持
- 保持验证码不正确时的错误提示和日志记录逻辑
- 增强代码可读性和维护性
2026-04-21 10:12:16 +08:00
5b3363d1ae feat(wx): 实现小程序码生成自动重试机制
- 在生成小程序码时增加首次失败后清理缓存并重试的逻辑
- 新增强制刷新 access_token 的方法 getAccessTokenForcibly
- 优化了获取 access_token 失败的日志提示,不再在错误时清理缓存
- 移除生成小程序码接口对 token 错误时清理缓存的判断及操作
- 移除异常时清理缓存的代码,避免误删除有效缓存
- 调整二维码请求参数,移除注释的颜色配置代码
2026-04-11 09:02:20 +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
f382df7976 fix(mq): 修改RabbitMQ同步交换机名称
- 将同步交换机名称从 sync.exchange 修改为 sync.topic.exchange
- 更新相关配置以反映新的交换机名称
- 维护消息队列配置的一致性和正确性
2026-04-09 17:11:03 +08:00
9353fb6b85 fix(mq): 修改RabbitMQ同步交换机名称
- 将同步交换机名称从 sync.exchange 修改为 sync.topic.exchange
- 更新相关配置以反映新的交换机名称
- 维护消息队列配置的一致性和正确性
2026-04-09 16:44:01 +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
ed9c59dae6 fix(qrLogin): 修正二维码场景值传递问题
- 将 scene 参数由 "token=" + token 改为直接传 token
- 确保 scene 为字符串且长度不超过 32 字符
- 便于小程序端通过 router.params.scene 获取 token
- 优化注释说明二维码参数限制和使用方式
2026-04-07 21:14:44 +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