yml2213
|
8672ab2dca
|
优化 API 密钥管理与展示
- 每个商户限制最多 5 个 API 密钥,超限拒绝创建并提示
- API 密钥权限列改用中文标签展示,新增按用途命名提示
- 优化 API 密钥表格列宽,App Key 完整单行展示
- 补充密钥数量上限测试
|
2026-07-31 19:58:17 +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
|
4ae9ef53ff
|
压平数据库初始化迁移
|
2026-07-31 17:19:29 +08:00 |
|
yml2213
|
04130e5ec8
|
统一订单单状态模型
|
2026-07-31 17:02:19 +08:00 |
|
yml2213
|
677bdbbc1c
|
优化订单履约状态处理
|
2026-07-31 16:28:30 +08:00 |
|
yml2213
|
30362f14bd
|
简化开放下单幂等参数
|
2026-07-31 15:25:26 +08:00 |
|
yml2213
|
949a0eb8f7
|
统一时间格式和时区
|
2026-07-31 12:57:17 +08:00 |
|
yml2213
|
761522e808
|
补商户发货API
|
2026-07-31 12:24:54 +08:00 |
|
yml2213
|
e4c1306216
|
完善发货链接签名和作废恢复
|
2026-07-31 11:43:13 +08:00 |
|
yml2213
|
6ca226ce4b
|
接入无感发货流程
|
2026-07-31 10:45:13 +08:00 |
|
yml2213
|
f29f3eb841
|
关闭公开注册并优化仪表盘
|
2026-07-31 09:39:18 +08:00 |
|
yml2213
|
fe71276e62
|
移除履约任务表
|
2026-07-31 00:03:29 +08:00 |
|
yml2213
|
ee956e2e01
|
优化发货接口对接流程
|
2026-07-30 23:44:50 +08:00 |
|
yml2213
|
a16e518b6c
|
优化开放接口日志分类
|
2026-07-30 21:07:10 +08:00 |
|
yml2213
|
9c3414607a
|
修复上游发货查询订单日志amount格式化错误(%f→%d)
|
2026-07-30 20:47:07 +08:00 |
|
yml2213
|
2258e940b6
|
回调推送链路添加详细日志
|
2026-07-30 20:38:40 +08:00 |
|
yml2213
|
5858ff59ae
|
修正发货回调流程
|
2026-07-30 19:35:34 +08:00 |
|
yml2213
|
254ba9b721
|
恢复测试订单创建
|
2026-07-30 19:04:38 +08:00 |
|
yml2213
|
2f0104be07
|
完善开放接口日志并修复调试页刷新
|
2026-07-30 18:04:56 +08:00 |
|
yml2213
|
881ef40fb7
|
refactor(openapi): 客户端签名统一为字典序+&拼接风格
- BuildOpenV1Sign 改为 app_key/body_sha256/method/nonce/path/timestamp
按 ASCII 字典序用 & 拼接,与上游 BuildSignString 风格一致
- body 以 SHA256 摘要参与签名,避免大 body 与特殊字符问题
- 同步更新中间件调用点、测试用例与前端鉴权文档
|
2026-07-30 15:53:09 +08:00 |
|
yml2213
|
502b719f48
|
feat: 平台管理员可在前端分配商品给商户
后端:
- service: 新增 ListProductCatalog(自营商户商品目录)、ListMerchantProductsByAdmin、AssignProducts(按目录ID批量同步商户商品,未勾选的已有商品会被移除)
- handler + router: 新增 GET /platform/product-catalog、GET /platform/merchants/:id/products、POST /platform/merchants/:id/products/assign 三个管理员路由
前端:
- types: 新增 ProductCatalogItem 类型
- api: platformApi 新增 productCatalog / merchantProducts / assignProducts
- PlatformMerchants: 商户列表操作列新增「分配商品」按钮,弹窗内以表格+复选框展示平台商品目录,支持全选/清空/重置,打开时按已有商品预选,保存后同步分配结果
实测:创建商户自动获得27个默认商品,管理员可随时增减调整
|
2026-07-30 15:20:02 +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
|
108fd834aa
|
chore(db): 合并迁移文件为单一 001_init.sql
- 将 002-006 迁移合并进 001_init.sql,只保留一个 init 文件
- 表结构直接采用最终态:移除旧 skins/orders/ship_logs 表、users 的 invite_code/parent_id 列,货币默认 POINT,手续费 fee_type 二选一
- 修复鸡生蛋问题:自营商户在 SQL 内直接插入,商品种子不再依赖 Go 代码后续创建的商户
- 商品价格一步到位,消除 006 价格补丁
- 简化 migrate.go:移除 ensureSelfMerchant/ensureWallet,清理无用 import
- 编译与 go vet 通过,数据库重置后全新初始化验证通过
|
2026-07-30 15:09:39 +08:00 |
|
yml2213
|
8c4fcb18ad
|
种子数据: 为自营商户预置和平精英商品目录(27款),成本/售价单位为积分
- 新增迁移 005: 插入平台商品目录(products) + 自营商户可售商品(merchant_products)
- 27款商品覆盖套装/上衣/枪械/背包/头盔/礼包/投掷物品类
- cost_amount = 消耗积分, price_amount = 售价积分, stock = -1(无限)
- 幂等插入,重复执行不会产生冲突
|
2026-07-30 14:34:39 +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
|
f9dc80e563
|
使用 pg 替换 sql
|
2026-07-22 13:34:55 +08:00 |
|
yml2213
|
ac8211f7d9
|
添加Docker部署配置:backend Dockerfile、Caddyfile、docker-compose.yml,支持腾云云服务器部署域名skin.khhao.com,使用Caddy反向代理 + HTTPS
|
2026-07-22 12:46:01 +08:00 |
|
yml2213
|
47b0dd5a49
|
开放接口增加详细调试日志,并支持控制台与文件双写
- OPEN_API_DEBUG 记录鉴权、查单、推送业务字段与 req_id
- LOG_FILE 默认 logs/app.log,标准日志/Gin/GORM 同时输出控制台与文件
|
2026-07-20 21:48:52 +08:00 |
|
yml2213
|
24d4e76c7f
|
增加各种状态的新建测试单
|
2026-07-20 18:13:10 +08:00 |
|
yml2213
|
ee78b80cd3
|
优化签名排序逻辑
|
2026-07-20 16:34:23 +08:00 |
|
yml2213
|
e4d0a71963
|
支持 .env 配置,并完善源头对接文档与测试订单
- 增加 .env.example 与 godotenv 加载,start.sh 自动读环境变量
- 重写发给源头的开放接口对接文档
- 订单页支持创建测试订单(可直接已支付并复制店铺订单号)
|
2026-07-20 16:19:57 +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 |
|