OpenCode
|
8ec1ef7605
|
feat: SKU新增showStock字段 - 控制是否显示库存
- ProductGoodsSkuEntity: 新增showStock(0:否 1:是)
- 价格/库存均为可空: null=线下议价/无限量
|
2026-07-28 14:28:20 +08:00 |
|
OpenCode
|
4eb0a51569
|
feat: 属性新增fillOnPurchase字段 - 标识是否购买时填写
- ProductAttributeEntity: 新增fillOnPurchase(0:否 1:是)字段
- 区分三种属性角色: 规格属性(选择类型)/商家属性(非选择+非购买时填写)/购买时属性(fillOnPurchase=1)
|
2026-07-28 14:07:21 +08:00 |
|
OpenCode
|
fcc52c317b
|
feat: 新增SKU表 - ProductGoodsSkuEntity
- ProductGoodsSkuEntity: goodsId/skuCode/attrs(JSON)/price/stock/image/status
- ProductGoodsSkuMapper/Service/ServiceImpl: CRUD
- AdminProductGoodsSkuController: Admin端SKU接口(page/add/update/delete/info)
|
2026-07-28 13:48:35 +08:00 |
|
OpenCode
|
3c339f7f43
|
feat: 行为管理改为自动注册模式 - handler自带name/description
- ActionHandler: 新增getName()/getDescription()方法
- StockCheckHandler/DatePickHandler/DeliveryRouteHandler: 补全name和description
- AdminProductActionController: 改为list(自动从handler生成)+toggle(启用禁用)
- product_action表仅存被禁用的行为记录,启用状态为默认
- RestInterceptor: 声明api={list,toggle}放行
|
2026-07-28 13:10:11 +08:00 |
|
OpenCode
|
8e87c94053
|
feat: 行为管理改为注册模式 - handlers接口返回已注册handler列表
- AdminProductActionController: 新增 GET /handlers 返回后端已注册的ActionHandler列表
- ActionHandlerRegistry: 新增 getHandlers() 方法暴露所有handler
- 行为管理只能注册后端已有handler的行为,不可随意创建
|
2026-07-28 12:57:23 +08:00 |
|
OpenCode
|
85c9929b27
|
feat: 商品行为管理 + 属性编码 + ActionHandler机制
- ProductActionEntity: 行为管理实体(name/code/description/status)
- ProductAttributeEntity: 新增code(属性编码)和action(关联行为)字段
- ActionHandler接口: validate校验 + afterPurchase购买后处理
- StockCheckHandler: 库存校验+扣减
- DatePickHandler: 服务日期校验
- DeliveryRouteHandler: 发货方式校验
- ActionHandlerRegistry: 自动注册所有handler
|
2026-07-28 11:55:41 +08:00 |
|
OpenCode
|
24e18d9327
|
feat: 商品模块重构 - 区分实物/虚拟商品,新增属性管理
- ProductGoodsEntity: 删除price/unit/categoryId,新增type(商品类型)和extra(扩展属性JSON)
- ProductAttributeEntity: 新增属性管理实体(name/type/options/status)
- ProductAttributeMapper/Service/ServiceImpl: 属性CRUD
- AdminProductAttributeController: Admin端属性管理接口
- AppProductAttributeController: App端属性列表接口
|
2026-07-28 11:36:28 +08:00 |
|
OpenCode
|
7ab1c7590e
|
fix: 修复时间差8小时问题,JacksonConfig 设置 Asia/Shanghai 时区,Dockerfile 添加 TZ 环境变量
|
2026-07-28 10:04:06 +08:00 |
|
OpenCode
|
f51ebc99d1
|
feat: App端代理列表只显示启用代理+新增checkIpInWhitelist接口+停用联动
- 代理列表只返回status=1的代理,详情接口校验停用状态
- 新增 /app/agent/info/checkIpInWhitelist 接口,查询IP是否在SaySS白名单
- SayssService 新增 isIpInTrustedIps 方法
|
2026-07-27 22:46:24 +08:00 |
|
OpenCode
|
937d95ae74
|
feat: SaySS代理模块后端集成 - 登录token存库/白名单增删同步SaySS/添加者用户ID
- AgentInfoEntity 新增 sayssAuthData 字段存储 SaySS auth_data token
- AgentWhitelistEntity 新增 sayssTrustedIpId、addedByUserId 字段,addedByName 虚拟字段
- SayssService 实现 AES-CBC 加密中间件调用,支持 loginAndSave/checkTokenValid/addTrustedIp/deleteTrustedIp
- AdminAgentInfoController 新增 loginSayss、checkToken 接口
- AdminAgentWhitelistController 删除时先从 SaySS 删除成功后再删本地,分页关联查出 agentName 和 addedByName
- AppAgentInfoController addWhitelist 先调 SaySS 添加成功后保存本地,记录当前 App 用户 ID
- application.yml 新增 sayss 配置
|
2026-07-27 20:40:56 +08:00 |
|
OpenCode
|
bf7c79c87f
|
feat: 新增代理白名单模块 - AgentWhitelist实体/Controller/Service/Admin分页
|
2026-07-27 19:18:51 +08:00 |
|
OpenCode
|
28bbb285c2
|
fix: 代理App端白名单接口完善 - 添加@CoolRestController(api=list)修复路由注册,queryWrapper非空修复,新增addWhitelist/whitelist/currentIp接口
|
2026-07-27 19:18:16 +08:00 |
|
OpenCode
|
3dde0f2aa0
|
feat: 代理模块字段调整 - 删除phone/region/image,增加username/password/tokenStatus
|
2026-07-27 18:22:52 +08:00 |
|
OpenCode
|
a45704af72
|
feat: 模块注册自动创建Admin菜单 + Admin组织切换生成新JWT
- AppModuleServiceImpl: 模块注册时自动扫描Controller创建菜单树,回写menuIds
- AppOrgServiceImpl: Admin切换组织生成新JWT(含新tenantId);新增listForSwitch方法
- AdminAppOrgController: switchOrg返回token;新增/admin/org/listForSwitch端点
- AppOrgService: 接口增加listForSwitch声明
- AppOrgAuthFilter: proxy改为agent(moduleKey与包名一致)
|
2026-07-27 15:25:28 +08:00 |
|
OpenCode
|
d5992198d2
|
chore: 移除zoo动物管理模块(后端)
|
2026-07-27 11:16:05 +08:00 |
|
OpenCode
|
861d7cba46
|
feat: 组织模块授权支持排序
- AppOrgModuleEntity新增sortOrder字段
- authorizeModules按moduleKeys数组索引设置sortOrder
- getModuleKeysByOrgId按sortOrder升序查询
|
2026-07-26 23:07:36 +08:00 |
|
OpenCode
|
e7ed654abd
|
feat: 新增product商品模块 + agent代理模块(moduleKey:proxy)
- 后端:product模块CRUD(Entity/Mapper/Service/Controller)
- 后端:agent模块CRUD(Entity/Mapper/Service/Controller)
- AppOrgAuthFilter注册/app/product/和/app/agent/路径
- App:新增module-product和module-proxy页面
- pages.json/tabbar/router注册两个新模块
- tabbar移除Star tab,模块上限改为3个
- 修复product页面双标题栏(navigationStyle:custom)
|
2026-07-26 22:54:21 +08:00 |
|
OpenCode
|
c49925636e
|
feat: 组织列表增加成员数列,成员管理支持按组织名筛选和昵称跳转用户列表
- AppOrgEntity 添加 memberCount 虚拟字段(@Column(ignore))
- AdminAppOrgController page查询通过transformValue实时计算成员数
- AppOrgUserService/Impl 新增 getMemberList(orgId, orgName, page, size) 支持按组织名模糊筛选
- AdminAppOrgUserController memberList 接口新增 orgName 参数
|
2026-07-24 19:22:39 +08:00 |
|
OpenCode
|
5e8bfebfdc
|
feat: 组织模块授权、成员管理分页、角色创建修复
- AppOrgEntity: 添加 @JsonIgnoreProperties(ignoreUnknown=true) 支持moduleKeys参数
- AppOrgServiceImpl: modifyAfter钩子处理UPDATE时自动授权模块
- AppOrgServiceImpl: createOrg中设置role.userId修复NOT NULL约束
- AppOrgServiceImpl: updatePerms第三个参数null改为new Long[0]避免NPE
- AppOrgUserServiceImpl: getMemberList支持分页+可选orgId筛选+组织名称关联
- AdminAppOrgUserController: memberList接口支持page/size分页参数
- AppOrgUserController: App端同步更新getMemberList调用
|
2026-07-24 14:24:12 +08:00 |
|
OpenCode
|
b42b5750ac
|
fix: 修复组织Controller路由路径(cname→value)和菜单viewPath
|
2026-07-24 10:49:32 +08:00 |
|
OpenCode
|
a650a852c0
|
feat: 添加组织管理菜单初始化数据(menu_org.json)
|
2026-07-24 09:58:28 +08:00 |
|
OpenCode
|
87b743ae11
|
feat: 多组织功能 - 实体/Service/Controller/拦截器/租户隔离
|
2026-07-24 09:31:21 +08:00 |
|
OpenCode
|
80dc8a0c07
|
feat: 实现邮箱验证码功能(注册、修改密码、修改邮箱)
- UserInfoService 新增 sendEmailCodeForRegister、sendEmailCodeForUpdateEmail、checkEmailCode 方法
- 三种场景使用不同缓存前缀区分:
- 注册:email_code_register:{email}
- 修改密码:email_code:{userId}
- 修改邮箱:email_code_update_email:{userId}
- AppUserLoginController 新增 /sendEmailCodeForRegister 公开接口
- AppUserInfoController 新增 /sendEmailCodeForUpdateEmail 接口
- /bindEmail、/updateEmail、/updatePassword 增加验证码验证
|
2026-07-23 13:41:00 +08:00 |
|
OpenCode
|
1ecb285fd0
|
feat: 邮箱配置管理+邮箱验证码修改密码
- 新增 BaseSysEmailConfigEntity 邮箱配置实体及CRUD
- 新增 EmailSendService 邮件发送服务(动态SMTP)
- 新增 sendEmailCode/updatePasswordByEmail 接口
- App修改密码改用邮箱验证码(原短信验证码保留)
- 邮箱配置支持多条,仅一条可设为当前使用
- 新增测试邮件发送接口
- menu.json 新增邮箱配置菜单
- pom.xml 新增 spring-boot-starter-mail 依赖
|
2026-07-23 13:03:14 +08:00 |
|
OpenCode
|
ef9c06edf6
|
fix: 在requestParams上清除空字符串,修复phone唯一索引冲突
|
2026-07-22 22:54:57 +08:00 |
|
OpenCode
|
5024d53095
|
fix: 空字符串转null避免唯一索引冲突
|
2026-07-22 22:49:25 +08:00 |
|
OpenCode
|
9e6aede480
|
fix: 用户名为空时后端也禁止修改邮箱
|
2026-07-22 22:45:07 +08:00 |
|
OpenCode
|
4ce7801737
|
fix: 去除邮箱修改限制,邮箱始终可修改并校验唯一性
|
2026-07-22 22:42:49 +08:00 |
|
OpenCode
|
2a9453af15
|
feat: 编辑用户时用户名/邮箱按规则可修改,修改时校验唯一性
|
2026-07-22 22:31:45 +08:00 |
|
OpenCode
|
f42c2433d0
|
feat: 管理端重置用户密码,生成8位随机字符串并返回
|
2026-07-22 22:22:41 +08:00 |
|
OpenCode
|
f9fd0a42dd
|
refactor: 注销时用户名加时间戳后缀、邮箱加时间戳前缀
|
2026-07-22 21:50:43 +08:00 |
|
OpenCode
|
7fc636a020
|
feat: 新增验证码配置管理功能
- 新增 UserCaptchaConfigEntity 实体类,含 side(admin/app) 端标识
- 新增 Admin/App Controller、Service、Mapper
- BaseSysLoginServiceImpl 新增 isCaptchaEnabled() 查询数据库配置
- login/register 改用数据库配置替代 cool.captcha.enable 硬编码
- AdminBaseOpenController 新增 /captchaEnabled 接口
- menu.json 新增验证码管理菜单及权限
- base.json 新增 5 条预置数据(3条app+2条admin)
|
2026-07-22 20:11:34 +08:00 |
|
OpenCode
|
f5205ef0e9
|
feat: 用户管理增强 - username字段、注销释放唯一索引、禁用清除缓存
|
2026-07-22 18:22:16 +08:00 |
|
OpenCode
|
453514017c
|
feat: 登录注册配置CRUD及菜单数据
|
2026-07-22 15:42:51 +08:00 |
|
OpenCode
|
5de3b3e08c
|
feat: add email and username login for app user
|
2026-07-21 19:51:39 +08:00 |
|
OpenCode
|
a5aece156c
|
feat: 新增解锁接口
|
2026-07-21 13:17:25 +08:00 |
|
OpenCode
|
0b6ee96645
|
fix: 修正生产环境配置
- Dockerfile: JRE 17 → 21 匹配实际构建环境
- application-prod.yml: 修正 cool 缩进错误,修复 file.base-url 为相对路径
|
2026-07-20 19:49:28 +08:00 |
|
OpenCode
|
98d262a68c
|
fix: 循环依赖修复 - BaseSysUserServiceImpl PasswordEncoder加@Lazy
|
2026-07-20 09:49:26 +08:00 |
|
OpenCode
|
13a90c2573
|
fix: RBAC模型P3安全修复
P3-13: 密码改用BCrypt+MD5兼容模式
P3-14: 角色继承-增加parentId递归合并父角色权限
P3-15: 权限变更审计日志-新增base_sys_perms_audit_log表
|
2026-07-18 18:24:36 +08:00 |
|
OpenCode
|
37df40f5e4
|
fix: RBAC模型P2安全修复
P2-8: 删除实体时级联清理中间表
P2-9: BaseEntity添加delFlag逻辑删除字段
P2-10: adminLogout清理roleIds和perms缓存
P2-11: 启用EnableMethodSecurity,BaseController增加checkPermission钩子
P2-12: 移除eps/getModuleTree/createCode的TokenIgnore
|
2026-07-17 21:06:32 +08:00 |
|
OpenCode
|
e02c7a02dc
|
fix: RBAC模型P0+P1安全修复
P0-1: 中间表更新添加@Transactional事务保护
P0-2: 角色分配增加越权提权校验
P0-3: 未配置权限接口改为默认拒绝策略
P1-4: 实现relevance字段递归扩展子部门
P1-5: move/info接口增加部门权限校验
P1-6: 权限映射缓存变更时自动刷新
P1-7: 租户ID仅从JWT获取,角色/部门实体加租户隔离
|
2026-07-17 18:59:05 +08:00 |
|
OpenCode
|
17e74bb247
|
feat: 交易记录锁定功能 - 新增locked字段、lock接口、锁定后禁止修改
|
2026-07-17 17:20:42 +08:00 |
|
OpenCode
|
0591f2ae46
|
fix: 修改密码功能-验证旧密码,使用newPassword字段设置新密码
|
2026-07-16 20:31:21 +08:00 |
|
OpenCode
|
1d880951b1
|
refactor: 超管判断从硬编码admin用户名改为基于角色判断,支持多超管账号
|
2026-07-16 20:22:28 +08:00 |
|
OpenCode
|
791f006ce1
|
fix: 注册后不再自动登录,角色改为普通用户,部门改为待分配部门;修复编辑用户时密码被重复哈希的bug
|
2026-07-16 19:17:25 +08:00 |
|
OpenCode
|
4bd3c7ab40
|
feat: 大A记录模块后端 - 股票交易记录CRUD与数据隔离
- 新增StockRecord实体,含userId字段实现用户数据隔离
- Controller查询自动按userId过滤,归档/恢复增加用户校验
- Service新增时自动注入当前用户ID
- 支持归档/恢复操作
|
2026-07-16 17:29:54 +08:00 |
|
OpenCode
|
1379855230
|
fix: 修复青龙API JSONNull序列化问题和脚本名称字段映射
- AdminQinglongController: 用Jackson ObjectMapper替代hutool JSONObject序列化,解决JSONNull问题
- qlResult方法:提取青龙API的data字段直接返回,避免前端多层嵌套
- QinglongService: sanitize方法处理JSONNull转null
|
2026-07-11 12:11:51 +08:00 |
|
OpenCode
|
6233e119d4
|
refactor: 青龙隔离从按用户改为按部门
- 删除 QlUserConfigEntity/Mapper/Service,新增 QlDeptConfigEntity/Mapper/Service
- QinglongService: userId → deptIds,支持多部门合并展示(mergeDataFromDepts)
- AdminQinglongController: 通过用户departmentId获取部门青龙配置
- 新增 AdminQlDeptConfigController: 部门青龙App绑定/解绑/未绑定部门列表
- BaseSysLoginServiceImpl: 移除登录时自动创建青龙App的逻辑
|
2026-07-11 00:11:11 +08:00 |
|
OpenCode
|
754b7f4782
|
feat: 定时任务模块 - 青龙面板集成与任务分组
- 增强 TaskInfoEntity: 新增 groupId, qlScriptId, qlScriptName, lastDuration, lastRunTime, failCount 字段
- 增强 TaskLogEntity: 新增 duration 字段
- 新增 TaskGroupEntity/mapper/service/controller: 任务分组管理
- 新增 QlUserConfigEntity/mapper/service: 每用户青龙App凭证存储
- 新增 QinglongService: 青龙Open API代理,支持每用户独立token
- 新增 AdminQinglongController: 青龙脚本/定时/环境变量API代理
- 新增 AdminTaskGroupController: 任务分组CRUD
- 修改 TaskInfoServiceImpl: 支持青龙脚本类型(taskType=2)跳过Quartz
- 修改 AdminTaskInfoController: 增加groupId过滤和关键词搜索
- 修改 BaseSysLoginServiceImpl: 登录时自动为用户创建青龙App
- 更新 application.yml/application-prod.yml: 青龙面板配置
- 更新菜单和数据库种子数据
|
2026-07-10 20:40:25 +08:00 |
|
OpenCode
|
34e224c922
|
feat: 部门和角色添加启用/停用状态,停用角色不参与权限计算
|
2026-07-10 10:44:17 +08:00 |
|