diff --git a/apps/backend/src/routes/admin/worker-platform.ts b/apps/backend/src/routes/admin/worker-platform.ts index 92ada148..54e9b877 100644 --- a/apps/backend/src/routes/admin/worker-platform.ts +++ b/apps/backend/src/routes/admin/worker-platform.ts @@ -344,7 +344,7 @@ router.put( router.post( '/worker-platform/orders/:workOrderId/assign', - requireAdminRoles(['admin', 'operator']), + requireAdminRoles(['admin', 'operator', 'support']), createJsonHandler( (req) => assignAdminWorkOrderToWorker(String(req.params.workOrderId || ''), req.body || {}), { @@ -379,7 +379,7 @@ router.delete( router.post( '/worker-platform/orders/:workOrderId/publish', - requireAdminRoles(['admin', 'operator']), + requireAdminRoles(['admin', 'operator', 'support']), createJsonHandler((req) => publishAdminWorkOrder(String(req.params.workOrderId || '')), { successMessage: '订单已发布到抢单大厅', errorMessage: '发布接单订单失败', diff --git a/apps/backend/src/services/worker-platform/admin-service.ts b/apps/backend/src/services/worker-platform/admin-service.ts index 2a3175db..1a51f999 100644 --- a/apps/backend/src/services/worker-platform/admin-service.ts +++ b/apps/backend/src/services/worker-platform/admin-service.ts @@ -247,11 +247,6 @@ export async function saveAdminWorkProductRule(payload: JsonObject = {}) { errorCode: 'work_product_rule_sharing_amount_invalid', }) } - } else if (rewardAmount <= 0 && unitPriceFen <= 0) { - throw createHttpError('接单金额必须大于 0', { - statusCode: 400, - errorCode: 'work_product_rule_reward_invalid', - }) } const finalRewardAmount = sharingEnabled ? resolvedSharingTotalAmount : rewardAmount @@ -1001,6 +996,12 @@ export async function publishAdminWorkOrder(workOrderId: number | string) { errorCode: 'work_order_publish_status_invalid', }) } + if (Number(workOrder.reward_amount || 0) <= 0) { + throw createHttpError('接单金额为 0,无法发布到大厅', { + statusCode: 409, + errorCode: 'work_order_publish_reward_invalid', + }) + } const now = nowIso() const updated = await updateWorkOrder(workOrder.id, { status: WORK_ORDER_STATUS.OPEN, diff --git a/apps/frontend/src/pages/admin/panels/ProductRulesPanel.tsx b/apps/frontend/src/pages/admin/panels/ProductRulesPanel.tsx index 5dc0d057..670d0a23 100644 --- a/apps/frontend/src/pages/admin/panels/ProductRulesPanel.tsx +++ b/apps/frontend/src/pages/admin/panels/ProductRulesPanel.tsx @@ -454,9 +454,13 @@ export default function ProductRulesPanel() { /> ) : ( - + } + disabled={Number(row.rewardAmount || 0) <= 0} + title={ + Number(row.rewardAmount || 0) <= 0 + ? '接单金额为 0,不能发布到大厅' + : undefined + } onClick={() => runAction( () => publishAdminWorkOrder(row.workOrderId),