|
|
97c196b7c6
|
feat: PollingConfig DTO 和 Service 支持卡状态检查间隔
dto: 新增 CardStatusCheckInterval 字段(validate min=30,description 含枚举说明)
config_service.go: 创建/更新/响应映射均支持 CardStatusCheckInterval
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-15 12:22:09 +08:00 |
|
|
|
cb328f3ec2
|
feat: PollingConfig 和 IotCard 模型新增卡状态检查字段
polling.go: CardStatusCheckInterval *int(card_status_check_interval)
iot_card.go: LastCardStatusCheckAt *time.Time(last_card_status_check_at)
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-15 12:22:01 +08:00 |
|
|
|
9992e82a3c
|
feat: 新增卡状态轮询任务类型常量及 verbose_log 配置
constants.go: 新增 TaskTypePollingCardStatus = "polling:card_status"
config.go: 新增 PollingConfig struct 含 VerboseLog bool
config.yaml: polling.verbose_log 默认 false
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-15 12:21:43 +08:00 |
|
|
|
e2003eb9e3
|
feat: 新增卡状态检查轮询数据库迁移
tb_polling_config 新增 card_status_check_interval INT NULL
tb_iot_card 新增 last_card_status_check_at TIMESTAMPTZ NULL
含 IF NOT EXISTS 保证幂等,含完整回滚文件
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-15 12:21:21 +08:00 |
|
|
|
71048e31d4
|
更换新的上游域名
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m15s
|
2026-04-15 11:21:14 +08:00 |
|
|
|
4a1e44f9e1
|
提案
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
|
2026-04-15 11:17:23 +08:00 |
|
|
|
dd408fcdca
|
日志输出
|
2026-04-15 11:17:09 +08:00 |
|
|
|
516bb92a16
|
refactor: 删除 enterprise_device service 中无路由接入的死代码方法
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
ListDevicesForEnterprise、GetDeviceDetail、SuspendCard、ResumeCard、validateCardOperation 均无对应路由和 Handler 调用,且 SuspendCard/ResumeCard 仅修改本地 DB 未调 Gateway,存在错误实现风险。统一使用 iot_card stop_resume_service 处理停复机。
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-15 11:16:36 +08:00 |
|
|
|
023a4309eb
|
fix: 修正 realtime-status 路由文档描述,补充说明设备类型会实时调 Gateway
原描述误写为不调网关,实际 GetRealtimeStatus 对设备类型会调用 SyncDeviceInfo 接口。
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-15 11:16:01 +08:00 |
|
|
|
b972a776d9
|
重构充值订单模块:用 tb_recharge_order + tb_payment 替换 tb_asset_recharge_record
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m32s
- 新增 RechargeOrder 和 Payment 模型及对应 Store
- 新增 ClientRechargeOrderHandler 提供充值订单列表/详情接口
- 修改 client_wallet.go 使用新表读写充值数据
- 修改 callback/payment.go 将 CRCH 订单路由到 rechargeOrderService
- 修改 client_order/service.go 的强充流程使用新表
- 修改 auto_purchase.go 从 tb_recharge_order 读取 linked_package_ids
- 修改 order/service.go 的 WalletPay 使用 tb_payment 记录
- 修改 wechat_config_store.go 从 tb_recharge_order 统计待支付充值数
- 移除 AssetRechargeStore 和 AssetRechargeRecord 的注册引用
- 修复文档生成器缺失 ClientRechargeOrder handler
- 状态枚举改为 0-based: Pending=0, Paid=1, Closed=2, Refunded=3
|
2026-04-15 11:00:32 +08:00 |
|
|
|
d26010b29d
|
重构用的提案,现在不敢跑
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 49s
|
2026-04-14 17:38:36 +08:00 |
|
|
|
8706247436
|
fix: 资产解析接口 BoundCardInfo 添加运营商字段
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m18s
|
2026-04-14 17:10:28 +08:00 |
|
|
|
8154a61453
|
fix: 移除 standaloneListColumns 中已废弃的分佣字段
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m51s
迁移 000116 已从 tb_iot_card 删除 first_commission_paid 和 accumulated_recharge
两列,但 standaloneListColumns 未同步清理,导致 SELECT 查询报列不存在错误。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-14 12:40:04 +08:00 |
|
|
|
d9de704d73
|
归档
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 49s
|
2026-04-14 12:14:29 +08:00 |
|
|
|
4ea4a1e53f
|
docs: 更新 tech-debt-cleanup tasks.md 实际完成状态
|
2026-04-14 11:59:28 +08:00 |
|
|
|
041856dc8c
|
docs: 新增迁移说明文档,reset_db.sh 添加 000114 基线检查
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m13s
|
2026-04-14 11:56:50 +08:00 |
|
|
|
7cdb66cbe4
|
refactor: 统一状态名称映射为公共函数,清理废弃换卡/商户类型常量和模型
|
2026-04-14 11:51:58 +08:00 |
|
|
|
5410181e77
|
修复:C端资产信息接口 lan_ip 字段无值时不返回的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m17s
去掉 DeviceRealtimeInfo.LANIP 的 omitempty 标签,
确保 device_realtime.lan_ip 始终出现在响应中(无值时返回 null)
|
2026-04-14 11:49:17 +08:00 |
|
|
|
548ec0cd6b
|
feat: 补全 _name 字段公共映射函数,修正实名认证注释
|
2026-04-14 11:44:23 +08:00 |
|
|
|
5e9e41db21
|
feat: 归档旧迁移文件,创建初始化数据迁移和重置脚本
|
2026-04-14 11:24:35 +08:00 |
|
|
|
c35542f911
|
feat: 补全客户端订单和资产 DTO _name 字段,修复代码格式
|
2026-04-14 11:19:57 +08:00 |
|
|
|
42c5ec912f
|
feat: 技术债务清理(支付配置动态化、API文档补全、轮询常量提取、废弃代码清理)
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m13s
|
2026-04-14 11:11:15 +08:00 |
|
|
|
c0b64c9e30
|
fix: 登录时将主手机号写入 JWT,修复 bound_phone 返回空的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
|
2026-04-14 11:09:42 +08:00 |
|
|
|
37706bc7ce
|
feat: 资产信息接口返回当前登录用户绑定手机号
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m30s
|
2026-04-14 10:08:42 +08:00 |
|
|
|
7308afe801
|
归档
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m18s
|
2026-04-13 15:03:02 +08:00 |
|
|
|
c1456f3c54
|
docs: 补充轮询自动触发环境变量说明
|
2026-04-13 14:57:00 +08:00 |
|
|
|
640ea8ec99
|
feat: 更新依赖注入,传入 ManualTriggerService
|
2026-04-13 14:52:50 +08:00 |
|
|
|
8569873690
|
feat: ClientRealnameHandler 集成异步触发实名检查
|
2026-04-13 14:51:42 +08:00 |
|
|
|
5196472d7e
|
fix: 修复手动触发去重TTL和日限制次数,优化权限检查和错误日志
|
2026-04-13 14:50:14 +08:00 |
|
|
|
814a2956b3
|
feat: 新增轮询自动触发配置(EnableAutoTrigger、AutoTriggerSystemUserID)
|
2026-04-13 14:48:12 +08:00 |
|
|
|
4879d9bf07
|
fix: 修复公众号登录初始化失败(PowerWeChat 日志写入权限)
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m29s
NewOfficialAccountAppFromConfig 未设置 Log.Stdout=true,PowerWeChat SDK
默认尝试在工作目录创建 wechat/info.log 文件,容器环境无写权限导致
NewOfficialAccount 返回 permission denied,触发 1181 配置不可用错误。
支付配置已有此修复(NewPaymentAppFromConfig),公众号配置漏掉了。
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-13 14:39:54 +08:00 |
|
|
|
8d8d426e2e
|
feat: verify-asset 接口返回当前生效的公众号和小程序 AppID
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m51s
|
2026-04-11 17:22:21 +08:00 |
|
|
|
246ae5e123
|
docs: 新增 status-convention 主规范
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m20s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:21:07 +08:00 |
|
|
|
7e613a0d2b
|
归档: fix-status-convention-comments
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:21:02 +08:00 |
|
|
|
510a5bfb21
|
chore: 删除未使用的僵尸状态常量 DevCapabilityStatusEnabled/Disabled
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:20:56 +08:00 |
|
|
|
decb7a10ec
|
fix: 使用专用常量 ShelfStatusOn 替代 StatusEnabled 赋值 ShelfStatus
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:20:49 +08:00 |
|
|
|
5588c7c762
|
fix: 修正 DTO status 字段 description 和 validate 标签
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:20:43 +08:00 |
|
|
|
eebc7194d8
|
fix: 修正 model status 字段 GORM comment 为 0=禁用 1=启用
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:20:31 +08:00 |
|
|
|
e945a672ed
|
fix: 修正套餐系列状态注释格式
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m19s
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 12:00:01 +08:00 |
|
|
|
41d3667df2
|
feat: 设备卡列表新增运营商类型字段
在 DeviceCardItem DTO 和 GetDeviceCards Handler 中补充 carrier_type 字段,解决设备视角卡列表缺少运营商类型的问题
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 11:59:54 +08:00 |
|
|
|
8f66ca7bcb
|
文档提交
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m14s
|
2026-04-11 11:27:43 +08:00 |
|
|
|
e9ff14df0e
|
规范: 新增枚举与状态字段规范并修复代理充值状态描述错误
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
- 新增 docs/enum-status-standards.md:完整的枚举/状态规范,涵盖 int vs string 选择、起始值约定、description 格式统一、constants 唯一真相来源、Response DTO 必须提供 status_name
- 更新 dto-standards SKILL.md:加入枚举规范要点,AI 写 DTO 时自动触发
- 更新 AGENTS.md:常量管理章节和 Code Review 检查清单各加入枚举检查项
- 修复 agent_recharge_dto.go:description 从错误的 3 个状态改为正确的 5 个状态(原 3:已取消 实为 3:已完成)
- 修复 agent_recharge service:toResponse 补充 StatusName 中文字段,防止前端映射出错
|
2026-04-11 11:25:58 +08:00 |
|
|
|
c807b99a91
|
fix: 修复佣金明细列表多表 JOIN 时 shop_id 字段歧义问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m24s
ListByShopID 使用 tb_commission_record.shop_id 限定表名,
避免与 JOIN 的 tb_order/tb_iot_card/tb_device 表中同名字段冲突,
解决 SQLSTATE 42702 ambiguous column reference 错误。
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-11 11:06:13 +08:00 |
|
|
|
677d6239ce
|
fix: 统一佣金状态常量并修复佣金明细关联查询
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m33s
- 删除 model/commission.go 中与 constants 包冲突的旧常量(值=1/2)
- 所有服务层改用 constants.CommissionStatusReleased(值=3)写入和查询
- 数据库迁移:status 1→3(已发放),2→4(已失效)
- 修复佣金明细列表接口,通过 JOIN 关联返回 order_no、iccid、virtual_no、order_created_at
- 新增 seller_shop_id / seller_shop_name 销售来源字段
- 统计接口过滤条件从精确匹配改为排除无效(NOT IN 4,99)
- 更新 OpenAPI 文档及 commission-record-query spec
|
2026-04-11 10:42:37 +08:00 |
|
|
|
d0989c66bb
|
暂且不需要实名
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m19s
|
2026-04-10 18:31:40 +08:00 |
|
|
|
67f3286e09
|
fix: 修复店铺资金摘要接口username和phone字段为空的bug
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m17s
问题原因:GetPrimaryAccountsByShopIDs 在 Store 层重复应用了数据权限过滤,
导致当前用户无权限访问的店铺账号被错误过滤,accountMap 为 nil,
最终返回的 username 和 phone 为空字符串。
解决方案:移除 Store 层的 ApplyShopFilter 权限过滤,
因为调用方(Service 层)已经保证了 shopIDs 的合法性。
|
2026-04-10 17:21:27 +08:00 |
|
|
|
a8b52f8ae1
|
fix: 设备详情 RealNameStatus 取当前使用卡而非聚合最小值
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
|
2026-04-10 17:15:40 +08:00 |
|
|
|
5496cb58aa
|
feat: 订单创建时快照买家手机号/昵称和套餐类型
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
新增字段:
- tb_order: buyer_phone, buyer_nickname(个人客户下单时快照)
- tb_order_item: package_type(套餐类型快照)
后台订单列表支持按 buyer_phone 精确过滤查询。
OpenSpec: order-buyer-snapshot
|
2026-04-10 17:12:56 +08:00 |
|
|
|
3cb16804a4
|
fix: 设备资产详情返回 enable_polling 字段
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m19s
|
2026-04-10 15:54:47 +08:00 |
|
|
|
2a7ac3f86e
|
fix: 修复轮询系统缓存不一致和可观测性问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
- OnCardStatusChanged/Enabled/Disabled 添加 InvalidateCardCache,
解决 Refresh API 更新 DB 后 polling 缓存仍为旧值的 bug
- AssetResolveResponse 的 enable_polling/network_status 去掉
omitempty,解决 false/0 时字段从响应中消失的问题
- Scheduler/Initializer/PackageHandler 增加 INFO 级别日志,
可通过日志判断轮询是否工作、处理了哪些卡
|
2026-04-10 15:52:38 +08:00 |
|