|
|
2581a77f09
|
feat(auth): 添加免登录切换租户功能
- 新增接口获取当前用户可切换的租户列表,支持手机号和邮箱聚合租户
- 实现免登录切换租户接口,需判断当前用户权限及目标租户状态
- 编写辅助方法查找可切换的用户账户
- 添加将用户信息转换为租户选项的工具方法
- 在切换成功后生成新的访问令牌并保存登录记录
|
2026-08-03 17:54:16 +08:00 |
|
|
|
a8896e4523
|
feat(auth): 新增短信验证码重置支付密码功能
- 新增 ResetPayPasswordParam 参数类,包含手机号、验证码和支付密码字段
- 实现短信验证码校验及支付密码重置接口,校验手机号格式和密码格式
- 增加支付密码重置接口权限控制和登录用户一致性校验,防止手机号绕过
- 重置成功后销毁已使用验证码,确保安全性
- 增加短信发送接口的发送频率和每日发送次数限制,防止滥用
- 短信发送成功后更新缓存中的发送频率和每日计数记录
|
2026-08-03 15:24:49 +08:00 |
|
|
|
5f6df3dc26
|
fix(system): 取消应用过期时间的判断逻辑
- 注释掉了基于版本和过期时间判断应用是否过期的代码
- 取消了过期返回失败的处理逻辑
- 保留了公司实体对象的其他字段设置逻辑
|
2026-07-29 00:01:46 +08:00 |
|
|
|
3bacfe8b8f
|
fix(auth): 注释非超级管理员登录限制逻辑
- 注释掉单租户登录时对非超级管理员账号的限制判断
- 避免非超级管理员登录时返回错误拦截
- 保持其他登录及账号状态判断逻辑不变
- 允许更多用户类型能正常登录系统
|
2026-07-27 11:46:28 +08:00 |
|
|
|
9fdc708bb8
|
fix(user): 修改查询条件支持超级管理员和管理员
- 将用户查询条件中超级管理员判断修改为超级管理员或管理员均可
- 修正了 is_super_admin 字段限制,新增对 is_admin 字段的支持
- 保证查询结果包含超级管理员和管理员用户数据
|
2026-07-27 11:08:57 +08:00 |
|
|
|
a02521e64b
|
fix(email): 优化邮箱验证码邮件标题
- 将邮件标题从“邮箱验证码 - WebSoft”修改为“邮箱验证码”
- 保留邮件内容不变,简化标题提升用户体验
- 确保验证码邮件发送功能正常运行
|
2026-07-24 20:55:15 +08:00 |
|
|
|
3ffd3255ee
|
fix(auth): 修复邮箱登录SQL别名错误并支持邮箱找回密码
- UserMapper.selectAccountsByEmail 修正 FROM 别名 a 与 WHERE 中 u.is_super_admin 不匹配导致的 BadSqlGrammarException
- 去掉邮箱查询的管理员限定(邮箱已全局唯一,邮箱登录不再限管理员)
- 重置密码接口支持邮箱+邮箱验证码找回方式
|
2026-07-24 20:28:31 +08:00 |
|
|
|
14f49e43dd
|
refactor(system): 优化通过手机号重置密码逻辑,改用UserMapper跨租户查询
- 引入UserMapper,替换原有UserService跨租户手机号查询方案
- 使用selectAccountsByPhone方法获取用户列表,更加明确忽略租户隔离
- 过滤冻结账号逻辑保持不变
- 更新密码时改为调用UserMapper的updateByUserId方法
- UserMapper.xml新增status和password字段的映射,提高数据完整性获取能力
|
2026-07-24 19:31:39 +08:00 |
|
|
|
73f0878fb2
|
feat(auth): 优化密码修改和重置逻辑
- 修改自己密码时新增多种输入校验,区分未设置密码用户免旧密码验证
- 重置密码接口支持两种模式:精确指定账号和通过手机号批量重置
- 忘记密码场景下手机号查询所有正常账号统一重置密码,排除冻结账号
- 精确定义用户和租户校验逻辑,确保数据匹配且安全
- 重置密码成功后,删除短信验证码缓存并记录登录日志
- 调整ResetPasswordParam参数注释,userId和tenantId支持非必填以适应场景
- User实体增加hasPassword字段,标记用户是否已设置密码
- UserServiceImpl中设置hasPassword字段以支持业务逻辑判断
|
2026-07-24 19:22:48 +08:00 |
|
|
|
34c6076068
|
feat(auth): 支持多租户超级管理员手机号登录及租户选择功能
- 修改登录接口,支持手机号关联多个超级管理员实现多租户场景
- 多租户登录时返回租户列表供前端选择,不返回 access_token
- 新增接口 loginBySelectTenant 选择租户后登录,生成并返回 access_token
- 新增 TenantOption 类,封装租户选项信息
- UserMapper 新增跨租户查询超级管理员方法,忽略租户隔离
- UserService 增加对应多租户查询方法并实现
- 调整 SecurityConfig,添加多租户选择登录接口白名单
- LoginResult 新增租户列表字段及构造方法,适配多租户登录返回结果
|
2026-07-24 18:49:08 +08:00 |
|
|
|
cb2f856ec7
|
fix(system): 修复支付密码更新逻辑及防止空更新异常
- 支付密码使用加密后存储,避免明文入库
- 仅当支付密码非空时才更新密码字段,避免清空原有密码
- 增加更新字段检测,防止无字段更新时报错
- 确保返回当前用户信息时包含支付密码字段状态
|
2026-07-24 18:31:19 +08:00 |
|
|
|
ac166e340d
|
fix(system): 修正用户查询SQL条件和限制返回条数
- 调整了查询条件缩进,提升可读性
- 增加对超级管理员或管理员身份的过滤条件
- 添加了返回结果限制,确保只返回一条记录
|
2026-07-23 16:51:05 +08:00 |
|
|
|
61d8c6317e
|
fix(security): 允许 sendSmsCaptchaByAdmin 接口免登录访问
- 在 SecurityConfig 的 permitAll 白名单中添加 `/api/sendSmsCaptchaByAdmin`
- 解决该接口因未登录被拦截导致返回 401 的问题
- 确保管理员手机号校验逻辑不受影响,接口可正常发送验证码
- 方便通过代理路径 `/api/_server/sendSmsCaptchaByAdmin` 访问接口
- 修复线上调用失败问题,保证服务正常可用
|
2026-07-23 16:39:58 +08:00 |
|
|
|
7217325756
|
删除条件: AND u.installed = 1
|
2026-07-23 08:46:08 +08:00 |
|
|
|
c60cf13dd0
|
fix(user): 修复设为开发者时角色替换和同步问题
- 替换用户角色为 developer,确保用户仅拥有该单一角色
- 在设为开发者后移除用户现有角色并绑定 developer 角色
- 角色替换失败时记录警告日志但不影响标记过程
- 保持通过MQ异步同步更新后的用户数据到 websopy
- 增加相关日志以便追踪操作流程
|
2026-07-23 01:43:17 +08:00 |
|
|
|
6bb36b1554
|
feat(user): 添加设为开发者功能接口和业务逻辑
- 在UserController中新增设为开发者的接口,支持审核通过时标记用户
- 在UserService接口中新增markAsDeveloper方法声明
- 在UserServiceImpl中实现markAsDeveloper方法,将用户标记为开发者状态
- 标记成功后通过消息队列异步同步用户数据到websopy系统
- 添加接口权限校验,操作日志记录及接口文档说明
|
2026-07-22 14:09:34 +08:00 |
|
|
|
dbe4f2962d
|
refactor(system): 优化租户超级管理员字段命名
- 将Tenant实体中的超级管理员用户ID字段名从superAdminUserId修改为ownerId
- 更新字段的Schema描述,将“超级管理员用户ID”改为“超级管理员UID”
- 修改TenantMapper.xml中关联查询SQL对应的字段别名为ownerId以保持一致
- 保持原有逻辑和功能不变,提升字段命名语义清晰度
|
2026-07-22 00:56:59 +08:00 |
|
|
|
eb9bfd167e
|
refactor(system): 优化租户超级管理员字段命名
- 将Tenant实体中的超级管理员用户ID字段名从superAdminUserId修改为ownerId
- 更新字段的Schema描述,将“超级管理员用户ID”改为“超级管理员UID”
- 修改TenantMapper.xml中关联查询SQL对应的字段别名为ownerId以保持一致
- 保持原有逻辑和功能不变,提升字段命名语义清晰度
|
2026-07-21 14:29:41 +08:00 |
|
|
|
18db0f7d44
|
feat(system): 新增租户超级管理员用户ID字段
- Tenant实体类中新增superAdminUserId字段,标记为非数据库字段
- 在TenantMapper.xml的关联查询SQL中添加超级管理员用户ID字段查询
- 用于前端或业务逻辑识别租户对应的超级管理员用户ID,便于权限管理
|
2026-07-21 14:28:10 +08:00 |
|
|
|
b2487572a6
|
feat(auth): 实现跨租户管理员手机号短信验证码发送功能
- 新增根据手机号查询跨租户管理员账号功能,支持超级管理员和普通管理员
- 新增后台管理员跨租户发送短信验证码接口,允许管理员身份验证后发送
- 将短信发送核心逻辑抽取到私有方法,支持传入租户ID读取对应配置
- 优化短信配置读取逻辑,兼容历史配置Key
- 移除MainController中硬编码的短信配置,改为通过配置和租户动态获取
- UserMapper及UserService相关接口和实现新增跨租户管理员查询方法
|
2026-07-20 23:30:35 +08:00 |
|
|
|
592345018e
|
feat(system): 实现手机号换绑双重短信验证码验证
- 用户换绑手机号时新增两步短信验证码校验流程
- 第一步:向原手机号(或无原手机号时的新号)发送验证码验证账户归属
- 第二步:向新手机号发送验证码验证新号归属,若账户无旧手机号则跳过
- 新手机号绑定时增加唯一性校验,防止被其他账户占用
- 更新User实体,新增smsCodeNew属性用于存储新手机号验证码
- 优化Redis验证码缓存和删除逻辑,防止验证码滥用
|
2026-07-20 23:22:53 +08:00 |
|
|
|
e20503269d
|
feat(auth): 实现邮箱验证码发送与校验功能
- 新增邮箱格式校验方法 isValidEmail
- 添加发送邮箱验证码的邮件模板方法 sendCaptchaEmail
- 在用户信息更新时添加邮箱验证码校验逻辑,确保邮箱变更安全
- 新增 API 接口 /sendEmailCaptcha 用于发送邮箱验证码
- 添加 EmailCaptchaParam 参数类支持邮箱验证码请求数据
- 增加邮箱验证码的 Redis 缓存及过期时间常量定义
- 更新安全配置,允许 /api/sendEmailCaptcha 免认证访问
- User实体新增 emailCode 和 smsCode 字段用于验证码校验
|
2026-07-20 22:38:23 +08:00 |
|
|
|
7f53b39c56
|
feat(security): 新增通过邮箱登录接口白名单
- 在安全配置中添加 "/api/loginByEmail" 路径到登录白名单
- 支持用户通过邮箱进行登录请求
- 保证邮箱登录接口免认证访问权限
|
2026-07-18 11:32:03 +08:00 |
|
|
|
89571c81a4
|
fix(user): 修复默认角色创建时租户不存在校验问题
- 增加根据邮箱查询账号的方法,忽略租户隔离
- 引入 TenantService 以校验租户是否存在
- 在创建默认“用户”角色时添加租户存在性校验
- 防止因租户缺失导致外键约束失败异常
|
2026-07-18 11:18:00 +08:00 |
|
|
|
aa287ba655
|
fix(system): 修复登录参数不能为空时返回信息不完整问题
- 修改登录接口中参数为空时的失败返回,增加了返回值的第二个参数null
- 确保调用fail方法时提供完整参数,避免可能的空指针异常
- 提升参数校验逻辑的稳定性和容错性
|
2026-07-18 11:01:02 +08:00 |
|
|
|
4220de534a
|
Merge remote-tracking branch 'origin/master'
|
2026-07-18 11:00:15 +08:00 |
|
|
|
5e9dc385f5
|
feat(auth): 支持邮箱登录及跨租户账号查询
- 在LoginParam中添加邮箱字段支持
- 新增邮箱登录接口,支持跨租户通过邮箱登录功能
- 实现根据邮箱查询所有账号接口,方便多账号选择
- 添加UserService方法支持根据邮箱查询账号
- 在UserMapper.xml中新增根据邮箱查询所有账号SQL语句
- 登录接口增加用户状态和密码校验逻辑
- 设置登录成功后Token生成及Redis缓存同步
- 处理同一邮箱多个租户账号时的租户选择逻辑
|
2026-07-18 11:00:07 +08:00 |
|
|
|
ba0e78d4c2
|
修复DictData的type字段无法保存的问题
|
2026-07-17 12:50:12 +08:00 |
|
|
|
aa7f3f7a6e
|
fix(api): 修复用户审核相关接口及查询逻辑
- 新增 GET /api/system/user/audit/{userId} 查询用户审核信息接口
- 修改前端 auditUser API 请求为 PUT,调整请求参数和字段映射
- UserMapper.xml 中增加 auditStatus 和 auditPending 查询条件支持
- UserParam.java 新增 auditStatus 字段及 auditPending 标记用于待处理审核用户查询
- 删除用户表新增审核字段的数据库脚本,避免重复添加
|
2026-07-12 00:57:39 +08:00 |
|
|
|
ce73d14d1c
|
feat(user): 添加查询用户审核信息接口
- 新增 `GET /api/system/user/audit/{userId}` 接口
- 实现根据用户ID查询用户审核状态和拒绝原因
- 接口仅允许拥有 'sys:auth:user' 权限的用户访问
- 当用户不存在时,返回相应失败提示
- 返回数据包含 userId、auditStatus 和 rejectReason 信息
|
2026-07-11 23:51:24 +08:00 |
|
|
|
c0c140fcdf
|
feat(user): 添加用户审核状态和店名字段支持
- 在数据库用户表中新增 audit_status 和 shop_name 字段
- 在用户实体类中添加 shopName 属性
- 登录参数类中新增 auditStatus 字段,支持前端传值控制审核流程
- 主控制器中增加对注册人姓名和店名的非空校验逻辑
- 注册用户时默认审核通过,支持 auditStatus=0 时进入审核流程
- 查询用户信息接口返回包含审核状态、驳回原因及地址完整性判断信息
- 用户服务实现中根据传入参数设置用户审核状态
|
2026-07-11 19:30:39 +08:00 |
|
|
|
54ee652584
|
feat(auth): 实现用户注册地址提交及审核状态管理
- 新增提交注册地址接口,支持录入及提交用户注册地址信息并标记待审核状态
- 新增获取当前用户审核状态接口,返回审核结果和驳回原因
- 用户实体新增审核状态和驳回原因字段,用于注册审核流程
- 管理端新增用户审核接口,支持通过或拒绝用户注册及填写驳回原因
- 下单流程中添加审核状态校验,未通过审核用户禁止下单
- 新增用户注册时审核状态字段,支持前端控制是否走审核流程
- 完善数据库表结构,新增审核状态及驳回原因字段,支持注册审核功能
|
2026-07-11 19:14:11 +08:00 |
|
|
|
f8595dd2d5
|
fix(system): 修复查询条件添加已安装标记过滤
- 在UserMapper的查询中新增过滤条件,确保只查询已安装用户
- 优化查询逻辑,避免结果包含未安装用户
- 保持排序顺序不变,优先根据最后登录时间排序
- 增强系统数据准确性和筛选能力
|
2026-07-03 10:58:18 +08:00 |
|
|
|
d49617a547
|
fix(system): 修复超级管理员标识设置和微信登录openid处理
- 在超级管理员用户创建时正确设置isSuperAdmin和isAdmin标识
- 修正超级管理员isAdmin属性设置顺序
- 微信登录接口中将openid和unionid设置到userParam,保证后续用户查找和注册使用
- 对已有用户补充openid和unionid信息,避免老用户缺少openid导致问题
- 更新用户信息后保存,确保数据一致性
|
2026-07-02 15:45:08 +08:00 |
|
|
|
4ba69b2ce2
|
fix(system): 修正管理员用户角色设置问题
- 给用户参数添加超级管理员标志
- 确保新创建租户的用户拥有超级管理员权限
- 改善用户权限初始化逻辑
|
2026-07-02 13:36:55 +08:00 |
|
|
|
b119a92d94
|
fix(system): 修正管理员用户角色设置问题
- 给用户参数添加超级管理员标志
- 确保新创建租户的用户拥有超级管理员权限
- 改善用户权限初始化逻辑
|
2026-07-02 00:02:27 +08:00 |
|
|
|
81ac636fb1
|
fix(system): 修复UserMapper分页查询重复记录问题
- 解决分页查询时因sys_company多条记录导致的数据重复问题
- 将LEFT JOIN sys_company改为按tenant_id分组的子查询
- 修改后子查询仅取每个tenant_id的第一条公司记录
- 保证分页查询返回的数据不再重复
- 同步更新了编译后的目标类文件
|
2026-06-29 16:45:15 +08:00 |
|
|
|
0aa65d0195
|
fix(system): 修复UserMapper分页查询重复记录问题
- 解决分页查询时因sys_company多条记录导致的数据重复问题
- 将LEFT JOIN sys_company改为按tenant_id分组的子查询
- 修改后子查询仅取每个tenant_id的第一条公司记录
- 保证分页查询返回的数据不再重复
- 同步更新了编译后的目标类文件
|
2026-06-29 15:30:26 +08:00 |
|
|
|
09ef6558ae
|
去除字典重复校验
|
2026-06-28 21:14:07 +08:00 |
|
|
|
bb34831208
|
Merge remote-tracking branch 'origin/master'
|
2026-06-28 13:07:35 +08:00 |
|
|
|
b8c147c641
|
fix(AliOssController): 根据文件类型修正缩略图和预览图逻辑
- 获取上传文件的 contentType 以判断文件类型
- 图片类型时生成带图片处理参数的缩略图和预览图
- 视频类型时生成视频截帧的缩略图,预览图使用原始 URL
- 其他类型文件直接使用原始文件 URL 作为缩略图和预览图
- 避免非图片文件拼接图片处理参数导致显示异常
|
2026-06-28 13:07:27 +08:00 |
|
|
|
fc98ee0509
|
密码登录新增手机号适配
|
2026-06-23 17:34:48 +08:00 |
|
|
|
a220b505e6
|
密码登录新增手机号适配
|
2026-06-23 17:13:35 +08:00 |
|
|
|
ab85f48a40
|
新增字典字段类型
|
2026-06-22 16:22:09 +08:00 |
|
|
|
13c48df4b3
|
fix(app_config): 修复小程序配置全局查询问题
- 调整 AppConfigMapper.xml,使用 bound_tenant_id 精确匹配绑定租户ID
- 修改 AppConfigService 去除 tenantId 为空直接返回的逻辑,支持全局查询
- 修改 WxLoginController,调用 getByCategory 时传入 null 以支持全局查询
- 新增实体字段 boundTenantId 用于区分绑定租户ID
- application-dev.yml 启用 SQL 日志和服务调试日志,便于问题排查
- 统一日志打印详细查询过程及结果,方便调试检查配置加载情况
|
2026-06-21 11:56:59 +08:00 |
|
|
|
6eb1c67516
|
fix(system): 调整小程序配置读取顺序
- 修改 getMpWxSetting 方法,优先读取 sys_setting(mp-weixin)
- 读取失败时回退到 db_websopy.app_config(category=wechat)
- 更新异常日志内容,明确读取失败顺序
- 适配业务需求调整配置优先级
- 影响所有调用 getMpWxSetting 的相关方法调用流程
|
2026-06-21 11:10:20 +08:00 |
|
|
|
03cefc9048
|
Merge remote-tracking branch 'origin/master'
|
2026-06-21 10:32:58 +08:00 |
|
|
|
f5f9e3a19d
|
fix(system): 调整小程序配置读取顺序
- 修改 getMpWxSetting 方法,优先读取 sys_setting(mp-weixin)
- 读取失败时回退到 db_websopy.app_config(category=wechat)
- 更新异常日志内容,明确读取失败顺序
- 适配业务需求调整配置优先级
- 影响所有调用 getMpWxSetting 的相关方法调用流程
|
2026-06-21 10:32:39 +08:00 |
|
|
|
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 |
|