数量大于 1 的采购任务把 PDD 采集单价直接保存为 max_price_cent。Client 设置数量后从确认页读取订单总价,却拿订单总价与单价上限比较,导致任务被错误拦截。
max_price_cent
生产任务 cg6 已复现:数量 2、采集单价 ¥11.80,Admin 下发 max_price_cent=1180;Client 读取确认页 ¥25.84 后报 PURCHASE_PRICE_EXCEEDED。根因是 Admin、接口文档和 Client 对同一字段分别使用了单价/总价两种语义。
cg6
max_price_cent=1180
PURCHASE_PRICE_EXCEEDED
for
<output aria-live="polite">
单价分 × 数量
MaxPriceCent
预计修改:
admin/templates/syb/list.html
admin/static/js/app.js
admin/handler/web/others.go
admin/service/purchase_workflow.go
admin/service/syb.go
client/src/purchase_task_service.py
docs/admin/01-requirements.md
docs/admin/03-data-model.md
docs/admin/04-client-api.md
docs/admin/05-ui-specification.md
docs/client/04-admin-api-contract.md
quantity=2
max_price_cent=2360
go vet ./...
go build ./...
go test ./... -count=1
Set-Location admin $env:GOTOOLCHAIN='go1.23.0' go vet ./... go build ./... go test ./... -count=1 Set-Location ../client C:/Python310/python.exe -m unittest discover -s test -p 'test_purchase_task_service.py' C:/Python310/python.exe -m py_compile src/purchase_task_service.py
模板测试验证数量 2 × ¥11.80 显示 ¥23.60;Service 测试连接独立 _test MySQL 8 数据库验证实际落库金额。
_test
实现与验证已完成,进入生产部署:
253be7c
aa6d812
docs/task/181-采购价格上限按数量计算总价.md
生产部署和健康检查完成后继续回写,工单保持待验收。
生产部署完成,工单状态已更新为“待验收”:
294a1efe718110a407b49cfeb2ae3701909872037a19648605dc3d5223074220
active
/opt/cmautobuy/backups/autobuy-before-aa6d812-20260812T064556Z.sql.gz
354aa6b
请按工单验收:使用数量大于 1 的可采购顺运宝明细打开采购弹窗,确认单价、数量和订单总价显示;如创建业务任务,请使用实际允许的价格上限。实际总价高于计算上限时仍会按安全规则停止。
用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
数量大于 1 的采购任务把 PDD 采集单价直接保存为
max_price_cent。Client 设置数量后从确认页读取订单总价,却拿订单总价与单价上限比较,导致任务被错误拦截。生产任务
cg6已复现:数量 2、采集单价 ¥11.80,Admin 下发max_price_cent=1180;Client 读取确认页 ¥25.84 后报PURCHASE_PRICE_EXCEEDED。根因是 Admin、接口文档和 Client 对同一字段分别使用了单价/总价两种语义。做什么 / 不做什么
max_price_cent明确定义为人民币“订单总价上限”。max_price_cent明确按订单总价比较,错误信息写明“订单总价”。cg6,不触碰付款、验证码、风控和不可逆后核单红线。怎么做
for的“人民币单价上限”数字输入框,并用只读<output aria-live="polite">展示数量和计算后的订单总价。单价分 × 数量安全计算,在事务内从最新顺运宝上下文读取数量后生成MaxPriceCent,防止篡改数量或绕过前端。max_price_cent字段下发,避免引入协议字段兼容问题。预计修改:
admin/templates/syb/list.htmladmin/static/js/app.jsadmin/handler/web/others.goadmin/service/purchase_workflow.goadmin/service/syb.goclient/src/purchase_task_service.pydocs/admin/01-requirements.mddocs/admin/03-data-model.mddocs/admin/04-client-api.mddocs/admin/05-ui-specification.mddocs/client/04-admin-api-contract.md验收标准
quantity=2、max_price_cent=2360;数量 1 行为不变。max_price_cent的定义一致。go vet ./...、go build ./...���go test ./... -count=1通过。怎么验证
模板测试验证数量 2 × ¥11.80 显示 ¥23.60;Service 测试连接独立
_testMySQL 8 数据库验证实际落库金额。风险和回退
max_price_cent按旧实现保存过单价,新语义只应用于部署后新建任务。控制:部署前确认没有执行中的采购任务;不改历史任务,避免篡改执行记录。max_price_cent比较,新 Admin 下发总价后执行路径兼容;本任务同步更正文案和测试。实现与验证已完成,进入生产部署:
253be7caa6d812docs/task/181-采购价格上限按数量计算总价.md生产部署和健康检查完成后继续回写,工单保持待验收。
生产部署完成,工单状态已更新为“待验收”:
aa6d812(功能提交253be7c)294a1efe718110a407b49cfeb2ae3701909872037a19648605dc3d5223074220cg6或其他历史任务active,服务器本机登录页 200,公网登录页 200,开发机访问公网 200/opt/cmautobuy/backups/autobuy-before-aa6d812-20260812T064556Z.sql.gz,已通过 gzip 完整性检查354aa6b保留,可直接回退请按工单验收:使用数量大于 1 的可采购顺运宝明细打开采购弹窗,确认单价、数量和订单总价显示;如创建业务任务,请使用实际允许的价格上限。实际总价高于计算上限时仍会按安全规则停止。
用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。