 yml2213andCursor
|
590bf1cae3
|
fix(payment): 渠道已收款时不再把支付单回滚成支付中
租客在待支付超时或取消的最后几十秒完成付款时,订单先被取消,乐刷的支付
结果几秒后才到,入账被判定订单不可支付而拒收。原先订单推进和支付单更新
在同一个事务里,订单一报错整笔回滚,支付单停在支付中且 paid_at 为空:
钱已在渠道,系统却毫不知情。乐刷重试十次后放弃,之后既补不回入账(订单
不再是待支付),后台人工退款也发不出去(退款要求原支付单是已支付)。
日志保留期内 13 天出了 5 笔,合计 4085.60 元。
- 取消前核对渠道:超时取消、租客取消、客服关单都先查一次渠道,已收款并
已推进订单就放弃取消,让支付正常入账而不是走退款。渠道异常时按未收款
继续,避免渠道一抖订单全卡住
- 回调兜底记账:订单确实已结束时不再回滚,把支付单如实记成已支付并写入
paid_at 与渠道单号,后台人工退款从此可用。退款仍由客服人工发起
- 客服关单:待支付订单按实际已收款减已退款的差额退,补上本次事故中关单
不生成退款的直接原因
- 补齐日志上下文:回调入账失败原先只有 error="order cannot pay",现在带
支付单号、订单号、订单状态和金额;新增 ERROR「渠道已收款但订单无法入账,
需人工退款」作为唯一需人工介入的告警
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-02 09:23:25 +08:00 |
|
yml2213
|
36ebe7a5f1
|
fix(distribution): 结算幂等与退款口径加固,补关单释放与回归测试
- 结算明细加唯一键 (order_id, party_id):自动释放与手工批次并发时以唯一键冲突为准跳过该参与方,不再重复入账
- 自动释放先无锁筛出本站未入账参与方,收敛加锁范围;手工批次建批次后先锁周期内财务快照,与自动释放串行化
- 累计退款额改为「本次回调金额与已退款成功流水合计取较大值」,多笔退款与退款结果重复回调不再把口径写小
- 关单三路径(AdminClose / AdminRejectRefund 的 close 分支 / AdminSeal)补写 release_at,接线原死代码 EnsureCompletedReleaseAtTx
- 仲裁分销重算改用实际退款额(扣除押金暂扣),避免站点被多扣
- 订单列表与详情的提价分成取 min(收入, 货架加价),退款压缩加价后不再显示负数
- 新增迁移 000070(结算明细唯一键)、000071(补回填 closed 订单释放时间)
- 新增 5 个测试文件:结算幂等与展示钳制、结算 job 幂等、累计退款、关单补写释放时间、仲裁押金暂扣口径
|
2026-09-10 19:13:39 +08:00 |
|
yml2213
|
17d4f7be9e
|
fix(order): 支持待号主交接及异常状态下客服重置交接倒计时
|
2026-09-09 16:05:48 +08:00 |
|
yml2213
|
266abb4aaa
|
修复退款审核前账号提前释放
|
2026-08-20 16:50:32 +08:00 |
|
yml2213
|
0256bfd276
|
修复取消订单误释放商品
|
2026-08-02 16:38:02 +08:00 |
|
yml2213
|
42b250cd2c
|
账号上下架增加统计
|
2026-07-11 23:37:24 +08:00 |
|
yml2213
|
090a90a268
|
添加订单押金暂扣与归还
|
2026-07-05 19:35:57 +08:00 |
|
 yml2213andClaude Opus 4.8
|
be5d322c10
|
feat: 客服封存订单功能(号主失联场景)
新增客服「封存订单」动作,用于号主失联、无法联系的场景:单事务内
完成关闭订单、全量原路退款、永久封存关联商品、解散发布群、双方通知
与审计日志。
- 新增 listing 终态 sealed(封存),区别于可恢复的 offline
- listingLockedForOwnerMutation 锁定 sealed,号主无法再编辑/提审/上架
- 解散群聊按 listing_id 查发布群(listing_group)置 archived,
阻断所有成员发言并留系统消息
- 新增 order.AdminSeal 及 /admin/orders/:id/seal 路由
- 前端:卖家页 PC/移动端 sealed 视为终态禁用操作,客服后台新增
「封存订单」按钮与二次确认
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 22:52:20 +08:00 |
|
yml2213
|
60e6eb9d18
|
修复驳回退款恢复订单时交接进度被重置的问题
- 取消订单时从待交接状态取消不再覆盖 handoff_status,保留原有交接进度
- 驳回恢复时仅在 cancelled 或 renter_confirm_timeout 时重置为 pending_owner
|
2026-06-29 01:42:00 +08:00 |
|
yml2213
|
3215e1c8c5
|
优化退款审核逻辑:驳回分恢复订单/关闭订单两种,优化状态标签,清理无用脚本
- AdminRejectRefund 新增 action 参数:restore 恢复订单至待交接,close 关闭订单并下架
- 前端驳回改为弹窗双选项:仅驳回恢复订单 / 驳回并关闭
- 清空 frontend placeholder 文件
- handleFileUpload 并发控制优化:清空上传列表时重置计数和 OCR 槽位
- v-for key 改为 _id 避免预览串图
- preview-src-list 改为单图预览
- deploy-prod.sh 新增 docker image/builder prune 自动清理垃圾
- scripts/ 删除无用的压测文件(load_stress.go 等 4 个)
|
2026-06-28 22:09:24 +08:00 |
|
yml2213
|
c92cd03b8c
|
退款审核功能:待交接取消不再自动退款,改为客服审核后原路退回
- 租客在待交接状态取消订单不再自动退款,改为 refund_status=pending_review
- 新增退款审核页面 /admin/orders/refund-review,客服可逐个审核
- 新增 POST /refund/approve 通过退款、POST /refund/reject 驳回退款
- 新增 GET /orders/refund-pending 查询待审核退款订单列表
- 优化状态标签表述:已取消→租客已取消、已关闭→客服已关闭、异常→客服介入
- 新增 refund_status: pending_review 及其前端标签「待客服审核退款」
- AdminOrderDetailView 退款状态改用统一 refundStatusLabel
|
2026-06-28 21:14:55 +08:00 |
|
yml2213
|
b2e52e1d75
|
修复归还逾期订单重置
|
2026-06-21 09:28:50 +08:00 |
|
yml2213
|
72285ed638
|
修复超时订单重置流程
|
2026-06-19 18:36:46 +08:00 |
|
 yml2213andClaude Opus 4.8
|
8192344027
|
优化号主交接超时卡死问题
- 号主交接超时(owner_timeout)后允许补提交交接说明,避免临时延误导致订单卡死
- 后台新增"重置交接"动作,可将超时订单恢复为待号主交接并刷新计时
- 交接超时改以进入待交接时刻为基准计算,新增 handoff_started_at 字段
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 04:16:31 +08:00 |
|
yml2213
|
28c4efc669
|
解耦订单和申诉模块外部依赖
|
2026-06-10 15:41:31 +08:00 |
|
yml2213
|
d2858c529d
|
继续补齐核心模块 Context 超时控制
|
2026-06-10 11:50:27 +08:00 |
|
yml
|
4c2199df58
|
统一订单资产状态变更
|
2026-06-09 20:11:28 +08:00 |
|
yml
|
0990652f8b
|
集中订单状态常量
|
2026-06-09 20:01:37 +08:00 |
|
yml
|
609b49f92b
|
拆分订单仓储模块
|
2026-06-09 19:56:32 +08:00 |
|