{ "reportName": "后台管理测试环境 HTTP API 验收", "marker": "ADMIN-API-20260808071157232", "gateway": "http://8.163.30.128:9000", "generatedAt": "2026-08-08T07:11:58.858Z", "startedAt": "2026-08-08T07:11:57.232Z", "success": true, "fatal": null, "summary": { "total": 30, "passed": 30, "failed": 0 }, "modules": [ { "name": "overseas-storage-fees", "startedAt": "2026-08-08T07:11:57.611Z", "finishedAt": "2026-08-08T07:11:58.858Z", "success": true, "passed": 29, "failed": 0, "fatal": null } ], "scenarios": [ { "name": "customer-overseas-storage-fee-lifecycle", "module": "overseas-storage-fees", "success": true, "deploymentBlocked": false, "passed": 29, "failed": 0 } ], "deploymentBlockers": [], "createdResources": { "overseasStorageFeeCustomer": { "tenantId": "2085987359342055425", "marker": "ADMIN-API-20260808071157232", "ownedByModule": true } }, "excluded": [ { "scope": "dashboard", "reason": "首页为静态演示数据,不调用后端 API" }, { "scope": "hidden-prototypes", "reason": "隐藏原型页面尚无已确认后端契约" } ], "securityNote": "报告不保存登录密码、Access Token、Refresh Token、图片二进制或 OCR 原文全文。", "steps": [ { "module": "authentication", "scenario": null, "name": "平台管理员登录", "passed": true, "deploymentBlocker": false, "request": { "method": "POST", "path": "/api/auth/login" }, "http": 200, "code": "200", "message": "success", "requestId": "74f372db-9641-4b79-b630-f3031e3c1b12, 26784c66-115f-4a5c-952c-7deae51e6b9b", "traceId": "438754ec03024b9eb43a2e425875d6db", "evidence": "", "checkedAt": "2026-08-08T07:11:57.610Z" }, { "module": "overseas-storage-fees", "scenario": null, "name": "检查测试联系电话可用性", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/contact-phone-availability?contactPhone=16173117612" }, "http": 200, "code": "200", "message": "success", "requestId": "0e26abf8-7786-4f6e-ad14-442dd4248dfa, 49c9752d-86ac-419d-b584-93403189613c", "traceId": "56c96ba33e1b49e892c2d89043f0f907", "evidence": "attempt=1", "checkedAt": "2026-08-08T07:11:57.659Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "创建海外仓费用隔离客户", "passed": true, "deploymentBlocker": false, "request": { "method": "POST", "path": "/api/platform/v1/iam/tenants" }, "http": 200, "code": "200", "message": "success", "requestId": "5457bda0-53c8-48c6-912b-585584cbea06, ebd253d8-ca39-4a8a-aa8c-7067f132fe50", "traceId": "e1f4f63a431941ae96137434ba824ea0", "evidence": "", "checkedAt": "2026-08-08T07:11:58.076Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "海外仓费用隔离客户创建并带 marker", "passed": true, "deploymentBlocker": false, "request": { "method": "POST", "path": "/api/platform/v1/iam/tenants" }, "http": 200, "code": "200", "message": "success", "requestId": "5457bda0-53c8-48c6-912b-585584cbea06, ebd253d8-ca39-4a8a-aa8c-7067f132fe50", "traceId": "e1f4f63a431941ae96137434ba824ea0", "evidence": "tenantId=2085987359342055425", "checkedAt": "2026-08-08T07:11:58.076Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "查询客户海外仓费用配置", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "d0a421cf-6bad-44a7-90ca-73708bdd7511, 987f6acf-0d54-4243-9c20-8cd3b78286f5", "traceId": "a76b181237ac4279991f76e68decc188", "evidence": "tenantId=2085987359342055425", "checkedAt": "2026-08-08T07:11:58.125Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "客户费用配置身份、默认 USD 与9档结构正确", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "d0a421cf-6bad-44a7-90ca-73708bdd7511, 987f6acf-0d54-4243-9c20-8cd3b78286f5", "traceId": "a76b181237ac4279991f76e68decc188", "evidence": "ruleId=2085987359469387778, customerId=2085987359342055425, currency=USD, tiers=9", "checkedAt": "2026-08-08T07:11:58.126Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "按客户查询海外仓费用规则", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" }, "http": 200, "code": "200", "message": "success", "requestId": "0f83d5cb-81d8-4552-9baa-482b21f16d09, e6f08a39-39ac-48af-b26b-940e0b872e33", "traceId": "16905a27ddff44a394ae5f42c8a1e856", "evidence": "tenantId=2085987359342055425", "checkedAt": "2026-08-08T07:11:58.177Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "每个客户恰好一条规则且规则内恰好9档", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" }, "http": 200, "code": "200", "message": "success", "requestId": "0f83d5cb-81d8-4552-9baa-482b21f16d09, e6f08a39-39ac-48af-b26b-940e0b872e33", "traceId": "16905a27ddff44a394ae5f42c8a1e856", "evidence": "total=1, records=1, tiers=9", "checkedAt": "2026-08-08T07:11:58.177Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "请求体客户 ID 与路径不一致时安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0422", "message": "客户ID与路径不一致", "requestId": "91de1e2f-bee8-4b8c-8323-9d54926839a0", "traceId": "d386b412d111461eb2937c65604b9773", "evidence": "HTTP=200, code=A0422", "checkedAt": "2026-08-08T07:11:58.206Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "非法费用类型安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0422", "message": "客户费用必须包含仓租5档和退货仓储费4档", "requestId": "b7e124b3-d8d7-4402-ad4c-ab7c8d7f167b", "traceId": "6936ef7b06344f87829ac9cffb722976", "evidence": "HTTP=200, code=A0422", "checkedAt": "2026-08-08T07:11:58.239Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "费用类型与计费单位不匹配安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0422", "message": "费用类型和计费单位不匹配", "requestId": "50911ba2-fdd2-423d-87c0-11c3fb0e49a0", "traceId": "d4bd4bcee678411fbe2582aa4168099f", "evidence": "HTTP=200, code=A0422", "checkedAt": "2026-08-08T07:11:58.279Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "阶梯区间重叠安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0422", "message": "阶梯必须从第1天开始且连续", "requestId": "f31729e2-1fae-4f71-b1dc-8330639593ce", "traceId": "6acb98e826734303b973c58755f55de4", "evidence": "HTTP=200, code=A0422", "checkedAt": "2026-08-08T07:11:58.312Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "阶梯区间断档安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0422", "message": "阶梯必须从第1天开始且连续", "requestId": "78582d72-1bf8-444a-af47-427308db0397", "traceId": "20e3f53de2fe428ab563423940689bb0", "evidence": "HTTP=200, code=A0422", "checkedAt": "2026-08-08T07:11:58.347Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "非9档整组提交安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0422", "message": "客户费用必须包含仓租5档和退货仓储费4档", "requestId": "6169b4b7-79a0-49f2-ab51-1fe81d379336", "traceId": "2bf1aa5b899740fb89970d50a576aeb2", "evidence": "HTTP=200, code=A0422", "checkedAt": "2026-08-08T07:11:58.370Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "负向请求后回查客户费用配置", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "f04344b4-2333-4afd-a4dd-e2a1f66a3362, f512a82d-5265-4969-88b8-3a01faf9dfa3", "traceId": "1b3ff4dbce264da0b7800459ba044d1f", "evidence": "", "checkedAt": "2026-08-08T07:11:58.412Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "所有非法整组请求均未造成部分更新", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "f04344b4-2333-4afd-a4dd-e2a1f66a3362, f512a82d-5265-4969-88b8-3a01faf9dfa3", "traceId": "1b3ff4dbce264da0b7800459ba044d1f", "evidence": "version=0, tiers=9", "checkedAt": "2026-08-08T07:11:58.412Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "整组修改客户海外仓费用", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "0521be7d-96e2-469a-bdbf-a9f8629089c4, 44ce2d0c-dc1b-4c61-a232-00276dc949c7", "traceId": "e22d6bf1d9624ca7b7b1fe7d8385231b", "evidence": "tenantId=2085987359342055425, tiers=9", "checkedAt": "2026-08-08T07:11:58.471Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "回查整组修改后的客户费用", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "ff34e234-c735-4a27-8e38-25e5f11cb7cf, db0d76cd-8238-4029-8468-a7c4e1ff286b", "traceId": "a9ac9c3a79f24a09884e1c4d9749ad44", "evidence": "", "checkedAt": "2026-08-08T07:11:58.505Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "修改后币种、价格、9档及版本整体回显", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "ff34e234-c735-4a27-8e38-25e5f11cb7cf, db0d76cd-8238-4029-8468-a7c4e1ff286b", "traceId": "a9ac9c3a79f24a09884e1c4d9749ad44", "evidence": "currency=EUR, version=1, tiers=9", "checkedAt": "2026-08-08T07:11:58.506Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "编辑后再次按客户查询唯一规则", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" }, "http": 200, "code": "200", "message": "success", "requestId": "d0067f5e-31c0-4d36-924f-b41f0b08187f, ab4823c9-7b19-41f8-a134-fe7fa0d49b57", "traceId": "0bafdbdba66544cbad51a08b74780369", "evidence": "", "checkedAt": "2026-08-08T07:11:58.535Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "重复初始化结果保持幂等且编辑值未被覆盖", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/overseas-storage-fees?page=1&size=10&customerId=2085987359342055425" }, "http": 200, "code": "200", "message": "success", "requestId": "d0067f5e-31c0-4d36-924f-b41f0b08187f, ab4823c9-7b19-41f8-a134-fe7fa0d49b57", "traceId": "0bafdbdba66544cbad51a08b74780369", "evidence": "total=1, ruleId=2085987359469387778, version=1", "checkedAt": "2026-08-08T07:11:58.536Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "旧 version 整组保存返回并发冲突", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "A0409", "message": "费用配置已被修改,请刷新后重试", "requestId": "ae90d696-2b18-498f-9a0c-9abfab81174f", "traceId": "280444f99fd84e0c8bf310cf2ea2bae5", "evidence": "HTTP=200, code=A0409", "checkedAt": "2026-08-08T07:11:58.573Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "冲突后回查费用配置", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "b56643b5-7c36-4898-a8dc-0d273d9d8c79, 8c9d56cb-b3dc-407c-90e3-867ef63e0dfd", "traceId": "20ffdfb711d34f019bd8e55b780828af", "evidence": "", "checkedAt": "2026-08-08T07:11:58.616Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "冲突未造成部分更新", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "b56643b5-7c36-4898-a8dc-0d273d9d8c79, 8c9d56cb-b3dc-407c-90e3-867ef63e0dfd", "traceId": "20ffdfb711d34f019bd8e55b780828af", "evidence": "version=1, unchanged=true", "checkedAt": "2026-08-08T07:11:58.616Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "恢复本轮客户费用原始配置", "passed": true, "deploymentBlocker": false, "request": { "method": "PUT", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "58df45db-66c2-43a9-bd33-24f70cf562eb, e13e8dca-762f-4293-8d0f-7de84a5da3c8", "traceId": "2c0bc4985a164b3e8e5f7fbe9d35a761", "evidence": "restore=initial", "checkedAt": "2026-08-08T07:11:58.680Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "回查恢复后的客户费用", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "689eed47-a980-4dce-88a9-1b029dbf2049, d49bc4e7-6cd0-47ae-8a49-f994ede8aab7", "traceId": "208d5b4525bb431f88bb06a86f93bb7d", "evidence": "", "checkedAt": "2026-08-08T07:11:58.720Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "恢复后9档、USD、免费档和无上限档一致", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/2085987359342055425/overseas-storage-fees" }, "http": 200, "code": "200", "message": "success", "requestId": "689eed47-a980-4dce-88a9-1b029dbf2049, d49bc4e7-6cd0-47ae-8a49-f994ede8aab7", "traceId": "208d5b4525bb431f88bb06a86f93bb7d", "evidence": "currency=USD, version=2, tiers=9", "checkedAt": "2026-08-08T07:11:58.720Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "错误客户 ID 查询安全失败", "passed": true, "deploymentBlocker": false, "request": { "method": "GET", "path": "/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees" }, "http": 200, "code": "A0404", "message": "海外仓费用不存在", "requestId": "b094c65b-8a43-44d5-86a1-42df180d9af5", "traceId": "2f9d44c21c0a4c549eadca74afdbdf34", "evidence": "HTTP=200, code=A0404", "checkedAt": "2026-08-08T07:11:58.748Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "清理费用隔离客户", "passed": true, "deploymentBlocker": false, "request": { "method": "POST", "path": "/api/platform/v1/iam/tenants/2085987359342055425/archive" }, "http": 200, "code": "200", "message": "success", "requestId": "7e1c4ef6-f609-4b64-bf91-357768e04b1f, 1a19c372-1148-4af1-a50f-f76869b56ef5", "traceId": "06ffb8a032a54764b5e034e47ad3cba5", "evidence": "tenantId=2085987359342055425", "checkedAt": "2026-08-08T07:11:58.858Z" }, { "module": "overseas-storage-fees", "scenario": "customer-overseas-storage-fee-lifecycle", "name": "费用隔离客户清理后停用", "passed": true, "deploymentBlocker": false, "request": { "method": "POST", "path": "/api/platform/v1/iam/tenants/2085987359342055425/archive" }, "http": 200, "code": "200", "message": "success", "requestId": "7e1c4ef6-f609-4b64-bf91-357768e04b1f, 1a19c372-1148-4af1-a50f-f76869b56ef5", "traceId": "06ffb8a032a54764b5e034e47ad3cba5", "evidence": "status=DISABLED", "checkedAt": "2026-08-08T07:11:58.858Z" } ] }