七月迭代短暂完结,还有很多后端的关键东西没有弄,这是一版赶时间做的东西
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m26s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m26s
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
## 0. 需求证据与实施基线
|
||||
|
||||
- [x] 0.1 建立本 Change 的需求证据矩阵,逐项核对 #45、#46、#55、#60、#86、#38、#94、#96、#98、#43 已有接口和迁移,记录只需联调的证据;同时确认 #73 当前行业卡复机行为不改。【主:只读核验|边界:代码与契约证据|不迁移:任何业务模块】
|
||||
|
||||
## 1. 局部缺陷、字段与筛选
|
||||
|
||||
- [x] 1.1 修复 #189:沿现有换货迁移关系让原订单退款准确失效新资产上的对应套餐权益,不影响其他订单权益。【主:旧 Service|边界:单个退款后套餐失效路径|不迁移:换货、退款、套餐模块】
|
||||
- [x] 1.2 修复 #181:C 端订单使用既有 `purchase_role` 保存正确渠道,订单/退款列表与详情中卡返回 ICCID,设备按 VirtualNo 优先、IMEI 兜底返回资产标识。【主:旧 Service/Query|边界:字段来源与 DTO|不迁移:订单或退款模块】
|
||||
- [x] 1.3 完成 #182/#44 的退款、充值、换货提交人 ID/名称返回,使用批量账号查询避免 N+1。【主:Query/旧 Store|边界:人员字段投影|不迁移:审批模型或历史回填】
|
||||
- [x] 1.4 完成 #53 卡/设备实名筛选:卡按自身状态,设备以任意有效绑定卡已实名为已实名。【主:Query/旧 Store|边界:实时 EXISTS 查询|不新建:投影、Worker、事件消费者】
|
||||
- [x] 1.5 完成 #57:在现有换货创建入口以当前未终结退款状态拦截并返回“该资产存在退款申请”。【主:旧 Service|边界:创建前单次校验|不依赖:企微 Adapter】
|
||||
- [x] 1.6 为 1.1~1.5 更新 DTO description、错误码、中文注释和相关 API 契约;未新增 Handler,不改两个文档生成器装配文件。【主:API 契约|不扩展:其他字段】
|
||||
|
||||
## 2. 店铺、实名、套餐与支付配置
|
||||
|
||||
- [x] 2.1 交付 #41 店铺 C 端登录限制纵向切片:增量迁移 `client_login_disabled`,复用店铺管理更新/查询,在 `VerifyAsset` 签发令牌前拦截;默认允许登录且不吊销已有 Token。【主:简单写 + 旧 Service|不迁移:认证和代理权限体系】
|
||||
- [x] 2.2 交付 #62 实名策略纵向切片:保持三种枚举和单资产 PATCH,补齐卡/设备批量接口(最多 500、事务全成全败)及 C 端 `effective_realname_policy` 等字段。【主:简单写/Query|不迁移:资产模块】
|
||||
- [x] 2.3 交付 #40 下架套餐续费:普通可购列表排除下架套餐,当前使用者通过资产/历史订单稳定引用调用现有下单接口创建新订单并按当前套餐配置购买,代理代购/新客户仍拒绝;既有待支付订单保持原支付方式。【主:旧 Service/Query|不新增:续费接口|不迁移:套餐、订单模块】
|
||||
- [x] 2.4 交付 #48 支付方式配置:在 `system_config` 为卡/设备分别初始化全选 `wallet/wechat/alipay` 且支持三项独立启停、至少保留一项;C 端返回配置与业务场景交集,强充和普通充值剔除钱包,订单/支付准备后端强校验,强充继续自动购包,并修复 C 端强充资格遗漏已触发状态的问题;增量更新审计覆盖基线。【主:简单写 + Query|辅:既有 system_config/强充自动购包|仅现有能力无法承载时做最小新增】
|
||||
|
||||
## 3. 站内通知接线
|
||||
|
||||
- [x] 3.1 交付 #188:创建物流换货单成功后通过现有 Outbox/站内通知向关联个人客户发送一次 C 端弹窗提醒。【主:Application + 既有通知 Adapter|不建设:营销投放、地址表单、ERP】
|
||||
- [x] 3.2 交付 #97:主钱包余额首次跌破固定 100 元时通知店铺业务员,阈值以下不重复、恢复后可再次触发。【主:Application + Outbox|辅:既有钱包事实|不增加:可配置阈值】
|
||||
- [x] 3.3 交付 #33:每日识别 15/7/3 天节点,提供后台/代理分页临期列表、数量/高亮/优先标识,并向 C 端发送节点站内通知。【主:Application/Query + 既有通知|不建设:企微业务员提醒或营销平台】
|
||||
|
||||
## 4. 企业微信最小审批 Adapter
|
||||
|
||||
- [x] 4.1 交付企微应用连接纵向切片:安全配置 corp_id/agent_id/Secret/回调凭据,按应用缓存 access_token、短锁防并发回源,并记录外部调用 Integration Log。【主:Infrastructure Adapter|不迁移:通用审批核心】
|
||||
- [x] 4.2 交付通讯录与账号绑定纵向切片:分页拉取/同步应用可见成员,账号列表/详情返回绑定字段,管理员从候选成员绑定 `(corp_id,userid)`;不做扫码和手机号自动匹配。【主:简单写 + Infrastructure/Query|不建设:组织模型】
|
||||
- [x] 4.3 交付业务场景与模板纵向切片:保存业务类型、template_id、控件/选项映射,调用模板详情校验并阻断失效配置;更新审计覆盖基线。【主:简单写 + Infrastructure Adapter|不建设:模板创建、审批节点、审批人规则】
|
||||
- [x] 4.4 实现 WeCom Adapter 对现有 Approval Port 的准备与提交:内部员工使用有效绑定 userid,代理等非企微账号使用应用默认发起人,按后台模板流程组装控件、必要时上传附件、调用 applyevent、保存 sp_no,并正确处理提交失败/结果未知;真实业务提交人保持不变。【主:Infrastructure Adapter + Outbox 消费|不修改:资金领域规则】
|
||||
- [x] 4.5 交付加密回调纵向切片:GET 验证、POST 验签解密、receiveid 校验、事件幂等、快速响应并异步拉取详情,将企微状态翻译为现有标准决策;新增 Handler 时同步两个文档生成器。【主:Infrastructure Adapter + Application|不直接执行:退款/充值终态】
|
||||
- [x] 4.6 交付主动恢复与读取投影:批量单号时间窗补偿、未终态详情轮询、结果未知恢复、审批节点 userid 批量映射系统账号。【主:Infrastructure Worker + Query|不实时逐行调用企微】
|
||||
|
||||
## 5. 退款与员工线下代充接入企微
|
||||
|
||||
- [x] 5.1 交付 #34 员工线下代充值纵向切片:业务申请、真实提交人、金额/凭证快照、通用审批实例和提交 Outbox 同事务创建;approved 通过既有钱包用例幂等入账,其他终态不入账。【主:复杂写 Application/Domain|辅:Approval Port|不实现:代理在线扫码充值】
|
||||
- [x] 5.2 交付 #35 退款企微审批纵向切片:现有退款申请关联唯一通用实例,标准终态驱动既有退款处理,确保换货迁移套餐、订单、资产和佣金副作用幂等。【主:复杂写 Application/Domain|辅:Approval Port|不实现:原路退款】
|
||||
- [x] 5.3 完成退款 approve/reject 和线下充值 offline-pay 旧入口的可控停用代码及存量 provider 切换清单;默认保留旧入口,待后续真实联调验收通过后再由发布配置停用,前端接口改为只读审批状态。【主:API 切换/迁移|不删除:历史业务事实】
|
||||
|
||||
## 6. 批量、导出与 Gateway
|
||||
|
||||
- [x] 6.1 交付 #36 单列 CSV 批量订购纵向切片:复用现有上传/任务五态/对象存储,整批选择一个套餐和支付方式,不选择代理;逐行复用订单资格、价格、支付和幂等规则。【主:Infrastructure + 旧订单 Service|不新建:批量任务平台】
|
||||
- [x] 6.2 交付 #42 lot 卡与套餐两个导出 datasource,按现有筛选、权限和字段来源输出。【主:Query/既有导出 Infrastructure|不建设:统一字段权限平台】
|
||||
- [x] 6.3 交付 #42 钱包流水与代理充值两个导出 datasource,金额使用既有事实和稳定格式,代理数据权限正确。【主:Query/既有导出 Infrastructure|不修改:钱包流水】
|
||||
- [x] 6.4 交付 #42 退款与换货两个导出 datasource,复用本 Change 已补齐的资产和提交人字段。【主:Query/既有导出 Infrastructure|不依赖:企微实时详情】
|
||||
- [x] 6.5 交付 #47 IoT 卡固定档位限速纵向切片:定义中文注释常量、后台权限和卡 ICCID 解析,调用 Gateway 并记录操作者与 Integration Log;移除错误的设备限速入口,不通过设备绑定关系间接限速。【主:旧 Service + Gateway Adapter|不实现:设备限速或自动限速算法】
|
||||
- [x] 6.6 交付 #49 CSV 批量分配设备纵向切片:复用现有导入任务,单列设备标识,整批选择目标代理或套餐系列,沿用现有分配/系列绑定权限和幂等规则。【主:Infrastructure + 旧设备 Service|不新建:导入平台】
|
||||
|
||||
## 7. 文档与联调交付
|
||||
|
||||
- [x] 7.1 补齐所有新增/修改 API 的 DTO description、枚举名称字段、中文错误码、路由注释和统一响应示例;新增 Handler 同步 `cmd/api/docs.go`、`cmd/gendocs/main.go`,但本次不执行 OpenAPI 生成。【主:API 契约】
|
||||
- [x] 7.2 增量维护 `.scratch/tech-global-audit/审计覆盖基线.md`,逐项登记 Audit Event、Domain Ledger、Integration Log、Outbox 或 N/A 理由。【主:治理门禁】
|
||||
- [x] 7.3 对全部变更生产代码执行 `gofmt`、只读一致性检查和 `git diff --check`,记录未执行测试、构建、LSP、迁移和 OpenAPI 生成的验证缺口。【主:静态收口】
|
||||
- [x] 7.4 准备企微、Gateway、Redis/Asynq、对象存储和前端联调所需配置、接口说明、已知限制及回滚步骤;本次不执行真实环境闭环。【主:联调交付】
|
||||
- [x] 7.5 更新实施证据和任务状态,保留 `complete-july-iteration-test-release` 的历史完成证据;严格校验、真实联调验收和归档由后续流程处理。【主:OpenSpec 收口】
|
||||
Reference in New Issue
Block a user