feat(consignment): 内部现货履约改为停在「待加好友」,由客服确认后进赠送冷却
需求:发布匹配成功后订单要停在待加好友,客服线下通知加好友、手动确认后才进赠送冷却。 - 新增 parkWorkOrderWaitingFriendAddWithClient:占库落地时把工单停在 acceptance_mode=friend_gift + gift_phase=material_required 的「待加好友」阶段, friend_added_at / gift_available_at / deadline_at 都留空(没有打手在跑,不该背时限), 并把商品规则里的冷却时长落到工单上(两者都为 0 时补默认 72 小时, 否则客服确认后会得到 0 秒冷却而立刻可赠送)。 - 履约服务不再传 forceFriendGift(该开关会直接把 friend_added_at 写成当前时间、 跳过客服确认);同步删除这个已无调用方的开关,冷却起始事件里的 skippedWorkerMaterial 改为按是否内部现货履约判断。 - 前端:内部现货单在该阶段显示「待加好友」(原为「待打手提交资料」), 确认按钮统一为「确认加好友」,确认弹窗补上"先用库存账号加好友、通知进展记备注"的引导。 - 后台备注增加快捷项「已通知加好友」,一键追加「[已通知加好友] 操作人 时间」。 - 阶段文案抽到 utils/gift-phase.ts 以便单测覆盖这条口径。 验证:真实库跑通全链路(停阶段 → 确认加好友进冷却 → 重复确认被拒 → 事件流正确,临时单已清理); 后端 415 例(412 通过,新增 3 例)、前端 25 例(新增 4 例)全绿。
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* 好友赠送阶段文案与配色。
|
||||
*
|
||||
* 注意 material_required 在不同履约方式下含义不同:
|
||||
* - 打手履约单:等打手提交好友资料,显示「待打手提交资料」;
|
||||
* - 内部现货履约单:没有打手资料这一步,占库成功后停在这里等客服线下通知加好友并手动确认,
|
||||
* 所以要显示「待加好友」。
|
||||
*/
|
||||
export function formatGiftPhase(phase: string, internalConsignment = false) {
|
||||
if (internalConsignment && phase === 'material_required') return '待加好友'
|
||||
const labels: Record<string, string> = {
|
||||
material_required: '待打手提交资料',
|
||||
material_submitted: '待确认加好友',
|
||||
friend_countdown: '赠送冷却中',
|
||||
gift_ready: '可赠送',
|
||||
}
|
||||
return labels[phase] || phase
|
||||
}
|
||||
|
||||
export function resolveGiftPhaseColor(phase: string) {
|
||||
const colors: Record<string, string> = {
|
||||
material_required: 'orange',
|
||||
material_submitted: 'geekblue',
|
||||
friend_countdown: 'gold',
|
||||
gift_ready: 'green',
|
||||
}
|
||||
return colors[phase] || 'default'
|
||||
}
|
||||
Reference in New Issue
Block a user