9 Commits
Author SHA1 Message Date
zhaoxing c50f471f64 feat:未绑定token导入 2026-10-31 14:03:04 +08:00
zhaoxing 8f30e6fe57 feat:采购日志 2026-10-31 12:24:00 +08:00
zhaoxing b27e128c5b feat:2、刷新绑定信息,操作加一个刷新绑定状态的按钮,3、绑定错误有提示,手动上报异常,拿到包ID做链接跳转(定位) 2026-10-29 18:15:40 +08:00
zhaoxing 8494fabc82 feat:自动补货/手动采购逻辑修改:批量获取-》打包-》获取Token列表 2026-10-29 16:05:39 +08:00
yml2213 80e2bbf875 fix(rock): 上游地址改为以数据库配置为准,并消除 baseURL 数据竞争
GetConfig 从不把 rock_configs.base_url 回写到客户端,main.go 又硬编码了
https://0666.pro,导致后台改上游地址「保存那一刻生效、进程重启后失效」,
数据库里的值被静默忽略且无任何提示。

- 新增 model.RockDefaultBaseURL 统一默认值来源
- 新增 RockService.ApplyConfigToClient,启动时把 DB 地址同步到客户端
- UpdateConfig 改用 client.SetBaseURL 立即生效,不再直接写字段
- RockClient.baseURL 原为裸字段,被 HTTP 请求线程与库存巡检 goroutine 并发
  读写(数据竞争),改为 sync.RWMutex 保护并新增 BaseURL/SetBaseURL
- ClaimTokens/RefreshToken/RedeemSkin 的 Origin/Referer 跟随配置地址
- 空值回落默认地址,末尾斜杠自动裁剪

为保持该提交可编译,同一次改动把 rock_service.go(1177 行)按域拆分为
8 个文件(最大 221 行):rock_service / rock_bindlink / rock_stock /
rock_assign / rock_bindcheck / rock_redeem / rock_recover / rock_snapshot。
35 个声明块全部有归属,无遗漏无重复;迁移文件 012 受 checksum 保护故未改动。

验证:TestRockServiceBaseURLFromConfig 覆盖「改地址→立即生效→重启→仍生效」;
并发用例在 -race 下通过;全量测试通过。
2026-10-06 19:42:58 +08:00
yml2213 08a0e74cd0 fix(rock): 修复空闲库存为0时误将已分配订单判定为补货中并拦截发货的严重漏洞
1. 根因修复(状态机死锁):当一笔订单分配了池中最后一个可用Token后,空闲库存降为0。原PrepareDelivery仅检查AvailableStock<=0,导致已锁定Token的订单在发货校验时被误判为'库存补充中'并硬性拦截发货;
2. 逻辑重构:PrepareDelivery增加已预占Token识别,若当前订单已持有using或bound状态的专属Token,直接豁免空闲库存校验,放行扫码与发货;
3. 协议对齐:在ClaimTokens与RefreshToken中补全Origin与Referer请求头;
4. 单元测试与方案文档:新增TestRockProvider_PrepareDelivery_ZeroStockWithAssignedToken用例,5项Rock专项单测与全量Service测试100%全绿通过,方案文档追加7.5节证据与复盘记录。
2026-10-05 18:19:40 +08:00
yml2213 83870843ed fix(rock): 修复兑换发货401未鉴权错误与买家角色名提取解析
1. 根因修复(兑换发货鉴权):对比原生平台发货抓包证实 POST /api/redeem/:id 必须携带 Authorization: Bearer <token>,Origin 及 Referer 头,补齐相关请求头彻底杜绝 401 报错;
2. 根因修复(角色昵称解析):逆向解构 0666.pro 响应报文,将角色名提取从错误的 binding.role_name 切换为 token.bound_account,消除提货页角色名显示为 '-' 的问题;
3. 协议对齐(响应结构重构):将 RockRedeemResponse 与真实上游返回对齐(包含 token 与 status 结构),剔除臆想的 delivery 字段;
4. 单元测试与方案文档:更新单测覆盖鉴权与字段映射断言,在方案文档 7.4 节录入实测抓包报文镜像比对表。
2026-10-05 16:30:18 +08:00
yml2213 7e5cbaf65e fix(rock): 兼容 0666.pro 接口 points 字段字符串与数值自适应解析
1. 新增 FlexibleFloat64 类型,解决上游 /api/me 响应中 points 为字符串(如 '8271.2')导致反序列化失败的问题;
2. 服务层与数据库快照存储统一调用 Float64() 保持类型严谨;
3. 单元测试补充真实上游字符串响应场景并全绿通过。
2026-10-05 15:42:00 +08:00
yml2213 ef7f67dd0c feat(fulfillment): 接入Rock发货平台(0666.pro)代理履约、通用库存池与UID强一致风控
1. 数据库新增 012_rock_fulfillment 迁移,创建 rock_configs 配置表与 rock_tokens 通用库存表,补齐黑色ROCK长袖T恤与蓝色运动服上衣商品目录;
2. 封装 RockClient 与 RockService,实现 0666.pro 平台 Bearer Token 极简连通校验、批量采购50个入库、水位监控巡检与自动补货;
3. 新增 RockProvider 实现标准履约路由,引入 Anti-Ghost 旧绑定基线比对与 UID 强一致门禁,扫错号硬阻断并记录为 mismatch 状态;
4. 针对黑色ROCK与蓝色运动服实现动态发货(绑定后发货前动态选择 skin),并提取腾讯官方发货流水号 fulfillId 对账;
5. 新增全局自动发货总开关(Kill Switch),支持一键软熔断降级转人工接单处理;
6. 前端新增 PlatformRock 管理大屏,提供总开关切换、Token配置与连通测试、库存监控、一键补货及错单解冻重置。
2026-10-05 14:56:11 +08:00