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
|
9e260059ee
|
feat(rock): 关联业务工单升级为双单号清晰展示(系统工单号 + 创建商户单号)
1. 后端批量反查商户单号:在 RockService.ListTokens 中支持批量反查关联订单创建时由调用方传入的 ClientOrderNo(商户单号),并拓展支持通过商户单号进行全局关键词模糊搜索;
2. 管理后台双单号排版升级:在 Rock 管理表格中将「关联业务工单」升级为双行呈现——第一行高亮展示内部统一系统工单号 (FO2026...),第二行辅助展示外部电商/商户原始单号 (如 test4 / 拼多多单号),两行均支持一键独立复制;
3. 单元测试全覆盖:补充商户单号自动挂载关联与按商户单号模糊检索的自动化单测,确保对单溯源精准无误。
|
2026-10-05 19:18:52 +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 |
|
yml2213
|
b76d8dc257
|
功能:发货链接支持永久有效,默认 TTL=0
- DELIVERY_LINK_TTL_MINUTES 设为 0 或负数时链接永久有效(expires_at 存 NULL),
默认值由 120 改为 0,本地 .env 同步改为永久
- 新增 delivery_link_generated_at 列区分从未生成与永久链接,兼容历史数据
- 永久链接授权仅校验 HMAC 签名、不校验过期(exp=0),作废/恢复语义不变
- 前端链接有效期列对永久链接显示"永久有效"
|
2026-08-14 14:26:06 +08:00 |
|
yml2213
|
33a30fcd99
|
修复:软删除账号可复用用户名
|
2026-08-13 14:40:22 +08:00 |
|
yml2213
|
a4791decb0
|
feat: support merchant team roles and permissions
|
2026-08-13 11:41:34 +08:00 |
|
yml2213
|
b686a82e60
|
feat: add manual fulfillment order creation
|
2026-08-11 11:49:58 +08:00 |
|
yml2213
|
ca58c2bcaa
|
余额告警独立页面与多渠道通知:钉钉/飞书/企业微信/Bark,支持通知频率策略
- 告警设置拆分为独立页面,支持钉钉/飞书/企业微信/Bark/通用Webhook 多渠道
- 通知策略:低于阈值后按间隔重复提醒,达到最大次数停止,余额恢复自动重置
- 旧 webhook 配置自动迁移为通用渠道,渠道支持测试发送
- 优化告警话术:去商户ID展示、数字千分位格式化
|
2026-08-04 13:56:26 +08:00 |
|
yml2213
|
941e7ad79a
|
积分充值全流程落地:申请审核入账、凭证上传压缩转webp、管理员调账收权
- 新增积分充值申请与审核:商户提交充值申请(凭证图片必填,1元=100积分),
管理员审核通过后事务内自动入账,幂等键防重复
- 新增通用图片上传组件 ImageUploader:canvas 压缩转 webp、预览、删除,
后端按魔数校验图片格式并持久化到 data/uploads
- 管理员钱包调整改为按商户维度:移除商户侧调账接口,新增管理员
平台商户积分调整与钱包流水查看
- 低余额 Webhook 告警配置持久化,充值入账/调账后自动检查推送
- 平台商户操作列移除进入/成员,积分充值页接入真实接口并修复金额单位换算
|
2026-08-04 13:03:29 +08:00 |
|
yml2213
|
eac025c92f
|
加强发货提交可靠性并统一契约口径
- 发货提交记录阶段推进与失败分类,失败不再清空 result_data
- 超时巡检区分已提交上游与提交中断两类卡单,避免误判
- 已提交上游的失败订单禁止自动重发,防止重复发货
- ship_attempts 仅在 claim 时计数,失败阶段只记录分类信息
- CanFulfill 对已提交上游的失败单返回不可发货
- 删除预留的 pending 订单状态,统一订单状态模型
- 契约改名:order.fulfillment.updated -> order.shipping.updated,fulfillment:read -> shipping:read
- 文档修正 scope 为或关系
|
2026-07-31 18:42:52 +08:00 |
|
yml2213
|
4aa5258c2d
|
统一发货口径并保护结果数据
|
2026-07-31 17:45:20 +08:00 |
|
yml2213
|
04130e5ec8
|
统一订单单状态模型
|
2026-07-31 17:02:19 +08:00 |
|
yml2213
|
677bdbbc1c
|
优化订单履约状态处理
|
2026-07-31 16:28:30 +08:00 |
|
yml2213
|
e4c1306216
|
完善发货链接签名和作废恢复
|
2026-07-31 11:43:13 +08:00 |
|
yml2213
|
fe71276e62
|
移除履约任务表
|
2026-07-31 00:03:29 +08:00 |
|
yml2213
|
ee956e2e01
|
优化发货接口对接流程
|
2026-07-30 23:44:50 +08:00 |
|
yml2213
|
7cff2dffed
|
feat(merchant): 新建商户自动复制自营商户的 27 个默认商品
- CreateMerchant 事务内调用 copyDefaultProducts,将自营商户全部可售商品复制给新商户
- 新增 model.MerchantCodeSelfOperated 常量,消除散落的 self-operated 魔法字符串
- tenant.go 替换魔法字符串为常量
- 实测:新建商户后自动获得 27 个商品,价格/货币/库存/关联商品均正确
|
2026-07-30 15:12:40 +08:00 |
|
yml2213
|
0de0ad9e9d
|
货币体系: 全平台统一使用积分(POINT)替代人民币(CNY)
后端:
- 模型 currency 默认值 CNY→POINT (MerchantProduct/WalletAccount/FulfillmentOrder)
- DashboardStats TotalSales/TotalFees 从 float64 改为 int64,去掉 /100.0 转换
- 上游 OpenOrderQuery.Amount 从 float64 改为 int64,直接返回积分整数
- 钱包/商品创建时 currency 默认 POINT
前端:
- 去掉 centsToYuan/yuanToCents 转换函数,金额直接用整数积分
- money() 显示从 ¥X.XX 改为 X 积分
- 商品售价/成本表单字段名改回 price_amount/cost_amount,precision 改 0
- 钱包调整表单 amount_yuan→amount,precision 改 0
- 手续费固定金额表单 precision 改 0,label 改积分
- 币种选项 CNY→POINT
- Dashboard 成交金额/手续费 suffix 元→积分,去掉 precision
数据库:
- 新增迁移 004: currency 默认值 CNY→POINT,存量数据更新
|
2026-07-30 14:30:34 +08:00 |
|
yml2213
|
bafe41a3ea
|
重构: 手续费改为百分比/固定二选一,清理旧 Skin/Order/ShipLog 演示链路
手续费:
- 新增 fee_type 字段(rate/fixed),百分比与固定金额二选一,不再叠加
- calculateServiceFee 按 fee_type 分支计算
- 商户创建/更新校验 fee_type,订单落库快照 fee_type
- 前端表单改为下拉选择手续费类型,动态显示对应输入框
- 测试拆为 TestFeeRate + TestFeeFixed
清理旧链路:
- 删除旧 Skin/Order/ShipLog 模型及 OrderService/SkinService
- Dashboard 迁移到 FulfillmentService
- 上游 /api/open/v1 改为基于 FulfillmentOrder 实现,接口契约不变
- 推送留痕改用 AuditLog,不再建 ShipLog 表
- 删除前端 Skins/Orders/ShipLogs/Distributors 页面及路由、菜单、API、类型
- 新增迁移 003: 添加 fee_type 列并 DROP 旧表
|
2026-07-30 14:12:27 +08:00 |
|
yml2213
|
83429456a6
|
实现多商户履约平台基础
|
2026-07-30 12:02:32 +08:00 |
|
yml2213
|
73047b74df
|
发货结果通知接口新增 game_channel、game_uid、role_name、pay_score 字段
|
2026-07-24 15:15:19 +08:00 |
|
yml2213
|
89cdd32181
|
对接皮肤源头开放接口:查询、发货推送与 HMAC 签名鉴权
- 新增订单查询与发货结果推送开放接口,支持 can_ship 与幂等
- 鉴权采用 X-Api-Key + Timestamp + Nonce + HMAC-SHA256 签名
- 订单扩展发货字段与 ship_logs,管理端增加发货记录与开放文档页
|
2026-07-20 16:06:44 +08:00 |
|
yml2213
|
829bea309d
|
导入和平精英商品目录并优化皮肤列表展示
- 皮肤增加 sku 字段,启动时按 sku 幂等导入 27 个和平精英商品
- 佣金默认 0,支持中英文名搜索
- 列表去掉品类列并固定列宽,避免中文名列空白过大
- 新增商品中英文名对照文档
|
2026-07-20 15:38:38 +08:00 |
|
yml2213
|
45db0aa4b9
|
init
|
2026-07-20 14:58:57 +08:00 |
|