From 1b4f7cd39240cff9fd04eff4d5a60836a2dd8121 Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Mon, 5 Oct 2026 15:07:58 +0800 Subject: [PATCH] docs(#353): restore Chinese shop-filter contract --- docs/03-business-rules-and-glossary.md | 6 +++--- docs/08-agent-api-contract.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/03-business-rules-and-glossary.md b/docs/03-business-rules-and-glossary.md index 65352d6..ce15c2e 100644 --- a/docs/03-business-rules-and-glossary.md +++ b/docs/03-business-rules-and-glossary.md @@ -2,8 +2,8 @@ generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Business-Rules-and-Glossary wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Business-Rules-and-Glossary.- -wiki_revision: 93335c279bcd660ceb5179ea4809ae8a2d90210c -synchronized_at: 2026-10-05T03:50:11Z +wiki_revision: 9dfe6566032003ed16f7c693d5d257500b7c5025 +synchronized_at: 2026-10-05T07:05:36Z @@ -70,7 +70,7 @@ Admin 的「创建时间」范围按 SYB 货运单列表的 `t_stock.created`( - 关联虾皮商品档案:命中存活记录直接关联;命中软删除记录则复活并保留原有人工映射;均不存在时创建最小档案。命中既有档案时只补写为空的参考图与售价,不覆盖人工修改过的标题、店铺和映射。 - 重新解析只读取已保存的原始 JSON,不请求 SYB 接口,永不改写 `RawJSON`;标记 `manuallyConfirmed` 的明细默认跳过重新解析,除非显式指定强制覆盖。 - 人工修正的颜色/尺码视为与解析成功同等可信,同样会合并进虾皮商品档案;标记为已人工确认。 -- #353: The Admin SYB product page offers multi-select shops exclusively from managed SYB shops (including disabled shops), up to 50. Selected shops are OR-combined, then AND-combined with order code, parse status, process stage, purchase type, source creation-date and pagination filters. Order-code search accepts up to 100 distinct nonblank exact codes of at most 64 characters each; it does not search Shopee item IDs or titles. Matching uses the same edge-trim/full-width ASCII/case folding as SYB shop sync, without collapsing interior spaces. Legacy API clients can still use shopName substring search, but Admin cannot enter free-form or deleted shops. If a managed shop is renamed, historical products retaining its old name may no longer be found under the new selection; accepted limitation. +- #353:Admin SYB 商品页仅从「店铺管理」选择店铺,支持最多 50 家多选,停用但未删除的店铺仍可选。所选店铺之间为 OR,与订单号、解析状态、处理阶段、采购类型及来源创建日期等条件为 AND,筛选后分页。订单号按完整值精确查询,最多 100 个去重非空值,每个最多 64 字符,不检索虾皮商品 ID 或标题。店铺名称与同步规则使用相同的首尾去空白、全角 ASCII 折半角及大小写归一,不合并名称中间空格。旧 API 保留 shopName 包含查询;新 Admin 不允许自由输入或选择已删除店铺。店铺改名后,保留旧名称的历史商品可能无法通过新名称选项查到,此限制已获用户接受。 - SYB 商品数据本身不保存 PDD 订单号、快递单号、支付或有效订单状态;Admin 的采购任务创建入口位于 SYB 商品列表,任务事实仍写入独立采购域。 diff --git a/docs/08-agent-api-contract.md b/docs/08-agent-api-contract.md index 764ed26..da01caf 100644 --- a/docs/08-agent-api-contract.md +++ b/docs/08-agent-api-contract.md @@ -2,8 +2,8 @@ generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Android-Agent-API-Contract wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Android-Agent-API-Contract.- -wiki_revision: efd822778c102c9d3c4fd4ea48bda6b59368d698 -synchronized_at: 2026-10-05T03:46:26Z +wiki_revision: 60bac77693f31b33162a65dc902456f324774f7b +synchronized_at: 2026-10-05T07:06:06Z @@ -83,7 +83,7 @@ POST /api/admin/v1/syb-products/reparse-batch PATCH /api/admin/v1/syb-products/{productId}/correction ``` -#353 SYB product list shop filter: Admin sends repeated shopIds query parameters (1-50 managed-shop IDs, OR within the set). shopIds cannot be combined with legacy shopName; malformed, missing, or soft-deleted IDs return 422. Selected IDs resolve against the managed SYB shop list, including disabled shops, and are compared with persisted SYB product shop names using the same trim/full-width ASCII/case normalization used by shop sync. Other filters remain AND conditions, with pagination after filtering. Zero matches return an empty list. The legacy shopName substring filter remains available only to older API clients; the Admin UI uses managed IDs only. Renaming a managed shop may leave historical products under its old name unfindable by that shop selection; this limitation is accepted for #353. +#353 SYB 商品列表店铺筛选:Admin 使用重复的 shopIds 查询参数,表示 1~50 个店铺管理 ID,集合内按 OR 匹配。shopIds 不可与旧 shopName 同传;非法、不存在或软删除的 ID 返回 422。服务端读取管理店铺(包含停用店铺),用与店铺同步一致的首尾去空白、全角 ASCII 折半角及大小写归一规则,与已存 SYB 商品的原始店铺名比较。其他筛选条件按 AND 组合,筛选后分页;无匹配时返回空列表,不放宽为全部店铺。旧 shopName 包含查询只供旧客户端兼容,新 Admin 仅提交管理店铺 ID。管理店铺改名后,历史商品保留的旧名称可能无法按新店铺选项查询,此限制已获 #353 用户确认。 `import` 允许已认证的管理员(admin)和采购员(purchaser)调用(#236),仍须通过 Casbin 权限校验;其他角色返回 403。采购员的 POST 权限由既有启动权限对账写入,不需要新增数据库迁移。操作人取已认证 claims,不接受客户端冒名。请求体提交 `dateFrom`、`dateTo` 后创建持久化后台任务并立即以 `202` 返回 `runId` 和 `status=running`;关闭弹窗、刷新或离开页面不影响任务。没有启用店铺时必须在读取凭据、登录、验证码 OCR 和任意 SYB 网络请求之前返回 `422`。任意时刻只能有一条 `running` 记录,内存锁与数据库唯一执行槽共同阻止单进程和跨进程重复导入;冲突时返回正在执行任务的日期范围。