|
|
c64f3d8b80
|
全局审计完成
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m31s
|
2026-08-07 11:02:52 +08:00 |
|
|
|
88cc5e96ec
|
暂存
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m32s
|
2026-08-06 09:35:00 +08:00 |
|
|
|
5e552d99bc
|
收口审计治理与套餐任务进展
Constraint: 在线热修前必须保存当前迭代分支全部有效代码进展
Confidence: medium
Scope-risk: broad
Directive: 后续修改需保持审计事件与业务事务边界一致
Tested: git diff --cached --check
Not-tested: 未运行全量测试,提交用于切换分支前保存既有工作
|
2026-08-05 14:30:54 +08:00 |
|
|
|
b3499adfca
|
固化七月迭代审计治理进展以隔离线上热修
Constraint: 切换 main 前必须保存当前七月分支全部项目进展,套餐生效提案仅属于 Iteration/7-11。
Rejected: 将七月套餐修复直接移植到 main | 两个分支的可靠投递架构不同。
Confidence: medium
Scope-risk: broad
Directive: 不得将本提交整体 cherry-pick 到 main;main 套餐热修必须基于其纯 Asynq 代码独立实施。
Tested: git diff --check;openspec validate fix-package-activation-starvation --strict。
Not-tested: 按用户要求未运行自动化测试;go build ./... 因当前审计改造中的 Enterprise 模型字面量和 role.recordFailure 参数类型错误未通过。
|
2026-08-03 09:47:22 +08:00 |
|
|
|
178cc45bc2
|
批量收回功能
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m1s
|
2026-07-28 10:53:15 +08:00 |
|
|
|
73f5125d3d
|
七月迭代短暂完结,还有很多后端的关键东西没有弄,这是一版赶时间做的东西
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m26s
|
2026-07-25 17:06:58 +08:00 |
|
|
|
5c4d17e9fc
|
收口七月卡状态回调与系列授权兼容契约
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
完成运营商实名回调、业务事件观测序列与受控配置装配,同时恢复 UR43 已交付的 packages[].remove 字段及旧响应兼容,统一更新 OpenSpec、OpenAPI 和交付文档。
Constraint: 七月测试环境里程碑不新增或运行自动化测试
Rejected: 以必填 operation_type 替换 packages[].remove | 会破坏已交付前端契约
Confidence: high
Scope-risk: broad
Directive: 后续修改系列套餐管理接口必须保持 packages[].remove 和 ShopSeriesGrantResponse 兼容
Tested: go run ./cmd/gendocs;go build -buildvcs=false ./...;openspec validate complete-july-iteration-test-release --strict;git diff --check
Not-tested: 按本 Change 约定未运行 go test,真实运营商与 Gateway 联调延期
|
2026-07-24 19:59:24 +08:00 |
|
|
|
a18ed8bc8d
|
暂存一下,防止丢失
|
2026-07-24 16:07:18 +08:00 |
|
|
|
992757c056
|
修复套餐快照集成测试与自动购包幂等
|
2026-07-23 12:23:52 +09:00 |
|
|
|
d5a35f6360
|
新增测试代码规范、修复响应体断言缺失与魔法数字
- AGENTS.md 新增测试代码专项规范:常量、fixture、触发器、HTTP断言、层边界说明
- TestUpdateAllocationExpiryBaseHTTP 补全 PATCH 响应体字段断言
- 四个集成测试文件以 testIDMask 局部常量替换 0x7fffffff 魔法数字
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-07-23 11:35:38 +09:00 |
|
|
|
8dde55ea6d
|
修复 code review 问题:提取重复函数、补全缺失测试用例
- 提取 ResolveTermsFromTx 到 service/package,消除 order 和 auto_purchase 中的重复实现
- 补全 domain 测试:新增 from_activation 覆盖用例,现覆盖两种覆盖值
- 补全激活集成测试:新增 from_purchase 立即激活场景、历史记录兼容回退计数器验证
- 补全自动购包集成测试:新增购买后修改套餐配置不影响已有快照的验证
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-07-23 11:18:38 +09:00 |
|
|
|
147f3eb775
|
修复 UR#55 代码审查问题:事务隔离、错误包装、重复辅助函数
- resolvePackageTerms 接受 tx 参数并使用事务绑定的 Store,确保快照与写入同库
- auto_purchase.go 错误包装改用 pkgerrors.Wrap 而非标准库 errors
- shop_package_batch_allocation 去除 fmt 依赖改用 strconv 拼接
- shop_series_grant 提取 effectiveBase 局部变量避免重复调用
- 测试辅助函数统一迁移至 testutil.StringPointer,删除各文件本地重复定义
- 新增 testutil.NewRedisClient 和 testutil.StringPointer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-07-23 11:09:08 +09:00 |
|
|
|
f7e0f07692
|
修复 code review 问题:DTO 内部字段、错误消息、重复代码与测试覆盖
- 删除 ExpiryBaseOverrideSet 字段的 description 标签(json:"-" 内部字段不进文档)
- ValidateExpiryBaseOverride 两处 CodeInvalidParam 补充中文错误消息
- 提取 initPackageExpiryBaseFields 消除 toResponse/toResponseWithAllocation 中的重复初始化
- 删除 order/service.go 中"行业卡永远直接激活"过时注释
- 补充 T01 系列授权 HTTP 集成测试(Create + ManagePackages 两个入口)
- 补充 T03 C 端购买和平台代购(无分配)快照集成测试
- 补充 T04 from_purchase 默认值、卡未实名仍立即激活的自动购包测试
- 新增 testutil.NewRedisClient 供激活接续测试使用
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-07-23 10:56:46 +09:00 |
|
|
|
9818537239
|
实现套餐生效条件覆盖与购买快照
|
2026-07-22 21:07:08 +09:00 |
|
|
|
44fb21eb6a
|
修复导入重试的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m53s
|
2026-07-02 15:13:22 +09:00 |
|
|
|
8f738ffbe8
|
导入的问题修复
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m51s
|
2026-07-02 13:04:36 +09:00 |
|
|
|
5c2ef97c24
|
相关问题优化以及新功能开发
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m57s
迁移 155- 157
|
2026-06-22 17:21:13 +09:00 |
|
|
|
3f21f7a7d6
|
让超时时间设置成60秒
|
2026-06-21 17:06:40 +08:00 |
|
Break
|
7ec84fbc0f
|
导出系统
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m50s
|
2026-06-15 15:28:29 +08:00 |
|
Break
|
c437593a8c
|
修复错误购买报错的问题,修复接口返回虚流量启动错误的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m48s
|
2026-06-11 14:51:26 +08:00 |
|
Break
|
5c779cb6e0
|
不允许购买第二个主套餐
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m50s
|
2026-06-10 15:24:26 +08:00 |
|
Break
|
6a70713b30
|
加分布式锁
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m0s
|
2026-06-09 10:54:13 +08:00 |
|
Break
|
944526d9ef
|
修复订单金额落库不对的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m17s
|
2026-06-01 11:21:29 +08:00 |
|
Break
|
6a3fffc46c
|
错误的套餐购买限制
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m48s
|
2026-05-29 09:44:48 +08:00 |
|
Break
|
0d96a94e5f
|
关于上游流量同步覆盖修复,以及新增redis同步迁移
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m25s
|
2026-05-27 10:59:19 +08:00 |
|
Break
|
bcbc290bad
|
卡新增imei字段
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m10s
|
2026-05-26 16:30:12 +08:00 |
|
|
|
af5a21ed1e
|
新增三个同步时间字段
|
2026-05-18 10:47:07 +08:00 |
|
|
|
d597a25c69
|
机卡分离复机接口
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m1s
|
2026-05-14 09:50:48 +08:00 |
|
|
|
8f3a68a673
|
新增上游的停机原因
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m5s
|
2026-05-12 11:13:04 +08:00 |
|
|
|
b7369a9c71
|
修复并发,暂时的,不够完整,后续还是需要重新设计,这个太乱了,傻逼AI
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m22s
|
2026-05-11 17:19:40 +08:00 |
|
|
|
98ff88d5c3
|
开放接口,修复上游同步不对的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
|
2026-05-11 11:20:48 +08:00 |
|
|
|
a9eaf1d697
|
修复缓存没有更新的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m13s
|
2026-05-11 10:38:52 +08:00 |
|
|
|
21b73a750d
|
c端当前套餐开始时间过期时间,以及excel导入字段
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
|
2026-05-06 09:57:58 +08:00 |
|
|
|
8a3c45c577
|
设备导入卡槽不对的问题
|
2026-04-30 11:56:09 +08:00 |
|
|
|
66e12e9629
|
订单相关以及佣金相关修复
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m57s
|
2026-04-30 09:52:39 +08:00 |
|
|
|
37b4483183
|
赠送套餐逻辑
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
|
2026-04-28 17:40:06 +08:00 |
|
|
|
fe4c545308
|
修正数据
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
|
2026-04-27 18:10:08 +08:00 |
|
|
|
60debb7505
|
统一导出任务
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m4s
|
2026-04-27 09:47:03 +08:00 |
|
|
|
a887f91686
|
修复卡轮训的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 10m14s
|
2026-04-26 12:41:16 +08:00 |
|
|
|
f177c26016
|
快照订单号以及退款订单号
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m27s
|
2026-04-23 17:14:10 +08:00 |
|
|
|
a207c51bfb
|
修复设备套餐流量不同步的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m32s
|
2026-04-22 18:04:53 +08:00 |
|
|
|
e27758cce3
|
修复新卡导入时没有正确填写停机原因的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m45s
|
2026-04-22 16:41:33 +08:00 |
|
|
|
e049080f6c
|
分裂iccid长度
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m47s
|
2026-04-21 10:55:12 +08:00 |
|
|
|
868f5a8ef3
|
fix: 修复轮询停机连坐、实名逆转防抖及carrier_stopped原因写入缺失三个逻辑缺陷
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m37s
|
2026-04-20 11:24:56 +08:00 |
|
|
|
2b3a9cb33f
|
feat: 新增套餐使用记录实付金额快照字段 paid_amount
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m19s
- 新增迁移 000129:tb_package_usage 添加 paid_amount BIGINT 字段,存量数据通过 JOIN tb_order 回填
- PackageUsage Model 新增 PaidAmount *int64 字段
- 4 个写入点(order service 主套餐/加油包、auto_purchase 主套餐/加油包)赋值 order.ActualPaidAmount
- AssetPackageResponse DTO 新增 paid_amount 字段
- GetCurrentPackage / GetPackages 填充 paid_amount,接口直接返回购买价格无需 JOIN 订单表
|
2026-04-18 10:19:21 +08:00 |
|
|
|
28ac58ea18
|
feat: PollingRealnameHandler 新增设备级套餐实名激活联动
- 结构体新增 deviceSimBindingStore 字段,构造函数参数列表末尾追加
- 新增 triggerDeviceRealnameActivation:卡首次实名(0→1)时查询所属设备,
若有绑定则提交 carrier_type=device 的 TaskTypePackageFirstActivation 任务
- 独立卡(无绑定设备)静默跳过,任务提交失败仅记录 Warn 日志不阻断流程
- registerPollingHandlers 传入 h.workerResult.Stores.DeviceSimBinding
- 修复「购买后某张卡实名」场景下设备级套餐永不激活的缺陷
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-18 09:30:50 +08:00 |
|
|
|
1363797378
|
feat: 导入 Service 和 Worker 传递 realname_policy 写入资产记录
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-17 17:31:01 +08:00 |
|
|
|
0cba6fd6d5
|
fix: 修复轮询缓存竞态导致流量增量重复计全量的问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
getCardWithCache 在缓存 miss 时将 writeCardToCache 由异步协程改为同步调用。
原实现中协程可能在 updateCardCache 之后才被调度执行,将
last_gateway_reading_mb 覆盖回 DB 旧值(0),导致下次轮询
increment = gatewayFlowMB - 0 = 全量,触发套餐流量重复扣减。
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-04-16 18:33:46 +08:00 |
|
|
|
0ec16d4afa
|
fix: 实名轮询防止上游接口故障时误降级已实名状态
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m34s
Gateway 返回 data=null 时 sonic 解析为零值结构体(ICCID="" RealStatus=false),
导致已实名卡被误判为未实名并触发停机。
通过检查响应中 ICCID 是否回填来判断数据有效性:
- ICCID 为空:视为上游接口故障,重新入队,不更新实名状态
- ICCID 有值:响应有效,正常处理(含合法的未实名降级)
|
2026-04-16 16:48:14 +08:00 |
|
|
|
5d9be1d7e4
|
fix: 修正轮询配置多匹配逻辑,支持同卡匹配多个配置并按 priority 合并 interval
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m27s
核心变更:
- MatchConfig 改为 MatchConfigs,返回所有匹配配置
- MergedTaskIntervals 按 task type 合并各配置,选取最高优先级(非 nil 且最小 priority 值)
- hasAnyEnabledInterval 过滤所有 interval 均为 NULL 的配置
- calcInitialDelay 重构为纯函数,接收 interval 参数
- 移除 getEnabledTaskTypes 和 getIntervalByTaskType(被 MergedTaskIntervals 替代)
- scheduler.go 新增心跳 key + 顶层 panic recovery + Init 完成守卫
- initializer.go 批量失败日志升级为 Error,逐条检查 Pipeline 命令错误
- 数据迁移:禁用 id=29 的轮询配置(所有 interval 均为 NULL)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-16 14:27:47 +08:00 |
|