Skip to content

fix(errand): 需求并发校验时间戳改为详情接口现取 - #96

Merged
yulian-art merged 2 commits into
mainfrom
fix/errand-demand-detail-updated-at
Aug 3, 2026
Merged

fix(errand): 需求并发校验时间戳改为详情接口现取#96
yulian-art merged 2 commits into
mainfrom
fix/errand-demand-detail-updated-at

Conversation

@Hunger61

@Hunger61 Hunger61 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

UpdateErrandDemand 首次编辑 500 的根因:前端拿不到需求的最新
updated_at(创建响应无时间戳、订单列表/详情也无),快照存 null
导致乐观锁校验失败。

采用无状态方案(回退 Create 响应改动):

  • 回退 CreateErrandDemandResponse.updated_at(时间戳不存前端快照)
  • BuyerErrandOrderDetail 新增 updated_at = 18
  • service BuyerOrderDetail 填充 demand.UpdatedAt
  • handler 透传

编辑页进入时调 GetBuyerErrandOrderDetail 现取数据库最新
updated_at,提交撤回/修改时使用,不依赖 localStorage 快照。

UpdateErrandDemand 首次编辑 500 的根因:前端拿不到需求的最新
updated_at(创建响应无时间戳、订单列表/详情也无),快照存 null
导致乐观锁校验失败。

采用无状态方案(回退 Create 响应改动):
- 回退 CreateErrandDemandResponse.updated_at(时间戳不存前端快照)
- BuyerErrandOrderDetail 新增 updated_at = 18
- service BuyerOrderDetail 填充 demand.UpdatedAt
- handler 透传

编辑页进入时调 GetBuyerErrandOrderDetail 现取数据库最新
updated_at,提交撤回/修改时使用,不依赖 localStorage 快照。
@Hunger61
Hunger61 requested a review from a team August 3, 2026 10:52
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed⏩ skippedAug 3, 2026, 10:55 AM

@yulian-art
yulian-art merged commit ecb0668 into main Aug 3, 2026
19 checks passed
@Hunger61
Hunger61 deleted the fix/errand-demand-detail-updated-at branch August 3, 2026 11:04
876908 added a commit that referenced this pull request Aug 3, 2026
* Fix/errand demand created return updated at (#95)

* fix(errand): GetDistributingTaskDetail 透传 purchased_quantity

DistributingItem 已新增 purchased_quantity 字段(proto + SQL + Row),
但 service 组装处漏了透传,前端收到 nil 导致实购量显示 0、
未采购判断失效。补齐组装透传。

* 列表响应批量补 productTemplate;详情/创建响应用已有内部 catalog/user client 补 productTemplate 和 seller

* 汇总时间截断

* fix(payment): prevent PayBill timestamp conflicts (#92)

Co-authored-by: yulian-art <1119253058@qq.com>

* fix lint

* fix lint

* fix(errand): CreateErrandDemand 返回 updated_at

前端创建需求后拿不到 updated_at,快照存 null,
首次编辑 UpdateErrandDemand 传空时间戳导致乐观锁校验失败(500)。

- CreateErrandDemandResponse 新增 updated_at 字段
- service CreateErrandDemand 返回创建后的 UpdatedAt
- handler 填充响应,前端创建时即可保存快照时间戳

---------

Co-authored-by: yulian-art <1119253058@qq.com>
Co-authored-by: Spring <2922562941@qq.com>

* fix(errand): 需求并发校验时间戳改为详情接口现取 (#96)

* fix(errand): 需求并发校验时间戳改为详情接口现取

UpdateErrandDemand 首次编辑 500 的根因:前端拿不到需求的最新
updated_at(创建响应无时间戳、订单列表/详情也无),快照存 null
导致乐观锁校验失败。

采用无状态方案(回退 Create 响应改动):
- 回退 CreateErrandDemandResponse.updated_at(时间戳不存前端快照)
- BuyerErrandOrderDetail 新增 updated_at = 18
- service BuyerOrderDetail 填充 demand.UpdatedAt
- handler 透传

编辑页进入时调 GetBuyerErrandOrderDetail 现取数据库最新
updated_at,提交撤回/修改时使用,不依赖 localStorage 快照。

* buf skip breaking

* feat(errand): add packaging_fee_share_cents to buyer order detail

- proto: BuyerErrandOrderProductItem 新增 packaging_fee_share_cents (field 10)
- repo: 新增 CountDistinctPurchasers 统计任务下唯一付款人数
- service: BuyerOrderProductItem 加字段,calcPackagingFeeShare 按人头分摊
- handler: 映射到 proto

---------

Co-authored-by: hunger <3287426755@qq.com>
Co-authored-by: yulian-art <1119253058@qq.com>
Co-authored-by: Spring <2922562941@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants