支持更新代练中订单价格

This commit is contained in:
yml2213
2026-08-15 17:31:42 +08:00
parent 00491daf5b
commit 57fda860dc
3 changed files with 41 additions and 5 deletions
@@ -754,6 +754,16 @@ export async function submitAdminWorkOrderMaterial(
errorCode: 'work_order_material_status_invalid',
})
}
if (
workOrder.status === WORK_ORDER_STATUS.IN_PROGRESS &&
workOrder.sharing_enabled === true &&
payload.rewardAmount !== undefined
) {
throw createHttpError('拼单订单的份额奖励已锁定,不能在更新资料时修改价格', {
statusCode: 409,
errorCode: 'work_order_material_reward_sharing_invalid',
})
}
const fields = resolveRequirementFields(workOrder)
const submittedFields = normalizeSubmittedFields(payload.fields || payload.material || payload)
@@ -762,6 +772,10 @@ export async function submitAdminWorkOrderMaterial(
)
const now = nowIso()
const screenshots = normalizeUploadedFiles(payload.screenshots || payload.files)
const rewardAmount =
workOrder.status === WORK_ORDER_STATUS.IN_PROGRESS && payload.rewardAmount !== undefined
? normalizeAmountFen(payload.rewardAmount, workOrder.reward_amount)
: workOrder.reward_amount
const material = {
...safeParseJson(workOrder.material_json),
collect: {
@@ -781,6 +795,7 @@ export async function submitAdminWorkOrderMaterial(
const updated = await updateWorkOrder(workOrder.id, {
status: nextStatus,
material_json: material,
reward_amount: rewardAmount,
updated_at: now,
})
await createWorkOrderEvent({
@@ -793,7 +808,7 @@ export async function submitAdminWorkOrderMaterial(
: 'material_completed',
fromStatus: workOrder.status,
toStatus: nextStatus,
payloadJson: JSON.stringify({ fields: submittedFields, complete }),
payloadJson: JSON.stringify({ fields: submittedFields, complete, rewardAmount }),
now,
})
return { order: mapWorkOrderAdmin(updated || workOrder), complete }