fix(consignment): 修掉发布时乱弹内部库存提醒,并把弹窗赏金换算成元
乱弹窗根因:matchPeacekeeperOrderWithInventory 精确匹配判定失败后无条件 fall through 到 部分匹配;而系统/区服/系列/钻级缺失时 compareSpec 返回 unknown(不是 mismatch)会被放行, 于是任何只写了游戏名的订单都命中仓库里全部在库货,表现为"随便发布点什么都会弹一下"。 严格模式(自动提醒)现在要求:① 系统/区服/系列都能确认一致;② 存在正信号(库存配置更高, 或订单压根没提钻级)。"订单没写规格"不再算命中。 同时给 matchPeacekeeperOrderWithInventory / findMatchingPeacekeeperInventories 增加 allowUnspecifiedSpecs 选项:人工履约的服务端复检(运营已人工选定现货)走宽松模式, 标题没写全规格不硬拦、真冲突仍拦,避免收紧自动提醒时把人工履约一起挡掉。 赏金显示:弹窗用 rewardAmount(单位分)直接 toFixed,把 ¥40 显示成 ¥4000; 同文件其他 30 余处均为 /100,仅此处漏了。弹窗内收购成本/履约押金本来就已 /100,核对无误。 验证:用截图里的现货(苹果QQ区怒嚎3钻2璀璨)对照 6 种订单—— "怒嚎"、"苏尔南" 从命中变为不命中;"苹果QQ区怒嚎1钻" 仍按高配充低配提醒; "5钻"(低配充高配)、"安卓微信区怒嚎1钻"(系统/区服不符)不命中。 后端 435 例(新增 3 例、改写 3 例)全绿。
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
| `632dddc4` | 上一轮:H5 渠道整体下线 + 凭据字段修复 + 状态机封闭(撤销守卫 / 库存绑定唯一性 / 生命周期解绑)+ 押金归属取台账 | 迁移 `079`、`consignment-*` 五个文件、`work-order-*` 三个仓库、两个前端面板 |
|
||||
| `5d11bf20` | 批次 C+D:指派部分成功补偿、凭证核销如实反馈、空规格不放行 + 履约/指派服务端规格复检 | `consignment-fulfillment-service.ts`、`consignment-matching-service.ts`、`consignment-repo.ts`、履约路由、`WorkOrdersPanel.tsx` |
|
||||
| `d6f6219f` | 批次 F1:内部现货履约停在「待加好友」,客服确认后才进赠送冷却 + 备注快捷项 | `work-order-gift-repo.ts`、履约服务、`WorkOrdersPanel.tsx`、`utils/gift-phase.ts` |
|
||||
| 本批提交(批次 H,同一提交内含本文档,故不写自身 hash) | 批次 H:修掉发布时乱弹内部库存提醒(部分匹配兜底过宽)+ 弹窗赏金分/元换算 | `consignment-matching-service.ts`、履约复检、`WorkOrdersPanel.tsx` |
|
||||
| 本批提交(批次 G,同一提交内含本文档,故不写自身 hash) | 批次 G:确认加好友后现货作废不回池 + 撤销寄售履约押金可选(含修打手押金永久冻结、真实库 42804 500) | `consignment-repo.ts`、`consignment-deposit-policy.ts`、`work-order-deposit-repo.ts`、撤销履约服务与路由、`WorkOrdersPanel.tsx` |
|
||||
| 本批提交(批次 F2,同一提交内含本文档,故不写自身 hash) | 批次 F2:确认加好友后卖家发布押金不退(`deposit_deduction` 落地)+ 二次冻结护栏 | `consignment-deposit-repo.ts`、取消/退单仓库、撤销履约服务 |
|
||||
| 本批提交(批次 E,同一提交内含本文档,故不写自身 hash) | 前端四权限门控收口、`allocation_status` 约束与权限文案修正、面板错误态/防双提交/真实待审计数 | `admin-auth.ts`、两个寄卖面板、`AdminWorkerPlatformPage.tsx`、迁移 `080` |
|
||||
@@ -277,6 +278,22 @@
|
||||
前端在"部分匹配"候选上先 `modal.confirm` 危险确认,再带 `allowPartial: true` 重试,高配充低配的合法玩法保留但不可误触。
|
||||
3. ⏳ 匹配下推 SQL + 批量匹配接口 + 工单列表角标(P2-8)未做:当前仍是"取全量在库 → 内存比对"。
|
||||
|
||||
### 批次 H · 修掉"乱弹匹配提醒"与"赏金没换算成元"(本轮)
|
||||
|
||||
1. ✅ **发布时不再乱弹「内部寄售库存匹配提醒」**:
|
||||
根因在 `matchPeacekeeperOrderWithInventory`——精确匹配判定失败后**无条件 fall through 到
|
||||
部分匹配**。而对"订单没写系统/区服/系列/钻级"这类字段,`compareSpec` 返回 `unknown`(不是
|
||||
mismatch)会直接放行,于是**任何只写了游戏名的订单都会命中仓库里全部在库货**,
|
||||
表现为"随便发布点什么都会弹一下",提醒失去意义。
|
||||
现在严格模式加两道门槛:① 系统/区服/系列必须都能确认一致;② 还要有正信号(库存配置更高,
|
||||
或订单压根没提钻级)。"订单没写规格"不再算命中。
|
||||
2. ✅ **人工履约复检不被连带收紧**:`matchPeacekeeperOrderWithInventory` 增加
|
||||
`allowUnspecifiedSpecs` 选项。运营已人工选定现货时走宽松模式(标题没写全规格不硬拦,
|
||||
但真冲突仍然拦),自动提醒永远走严格模式,两个语义互不污染。
|
||||
3. ✅ **接单赏金换算成元**:`WorkOrdersPanel.tsx` 里弹窗直接用 `rewardAmount`(单位是分)
|
||||
渲染,把 ¥40 显示成 ¥4000。同文件其他 30 余处都是 `/100`,只有这里漏了。已修正,
|
||||
并核对弹窗内 `内部收购成本` / `履约押金` 本来就是 `/100`(正确)。
|
||||
|
||||
### 批次 G · 现货作废口径 + 押金处置可选(本轮)
|
||||
|
||||
1. ✅ **确认加好友后现货一律作废下架,不再回池**(严口径):
|
||||
|
||||
Reference in New Issue
Block a user