将退单审核文案明确为打手退单
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
-- 063_worker_cancel_request_wording_v2.sql —— 将退单审核文案明确为打手退单。
|
||||||
|
UPDATE admin_permissions
|
||||||
|
SET
|
||||||
|
permission_name = '审核打手退单申请',
|
||||||
|
description = '审核打手提交的退单申请'
|
||||||
|
WHERE permission_key = 'worker_cancel_request.review';
|
||||||
@@ -201,8 +201,8 @@ async function applyWorkerCancelRequestPenaltyWithClient(
|
|||||||
return { levelBeforeId, levelChanged: true, accountDisabled: false }
|
return { levelBeforeId, levelChanged: true, accountDisabled: false }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 打手提交取消订单申请;待审核期间订单与押金均保持原状。 */
|
/** 打手提交退单申请;待审核期间订单与押金均保持原状。 */
|
||||||
/** 批量查询打手在各工单上待审核的取消订单申请,用于订单角标与问题单归类。 */
|
/** 批量查询打手在各工单上待审核的退单申请,用于订单角标与问题单归类。 */
|
||||||
export async function getPendingCancelRequestOrderIds(
|
export async function getPendingCancelRequestOrderIds(
|
||||||
workerId: number,
|
workerId: number,
|
||||||
workOrderIds: number[],
|
workOrderIds: number[],
|
||||||
@@ -503,7 +503,7 @@ export async function reviewWorkerCancelRequest(input: {
|
|||||||
`INSERT INTO worker_wallet_ledgers (
|
`INSERT INTO worker_wallet_ledgers (
|
||||||
worker_id, ledger_type, amount, balance_after, frozen_after,
|
worker_id, ledger_type, amount, balance_after, frozen_after,
|
||||||
related_work_order_id, note, payload_json, created_at
|
related_work_order_id, note, payload_json, created_at
|
||||||
) VALUES ($1, 'deposit_release', $2, $3, $4, $5, '取消订单申请审核通过退还拼单押金', $6::jsonb, $7)`,
|
) VALUES ($1, 'deposit_release', $2, $3, $4, $5, '打手退单申请审核通过退还拼单押金', $6::jsonb, $7)`,
|
||||||
[
|
[
|
||||||
request.worker_id,
|
request.worker_id,
|
||||||
releasedDepositAmount,
|
releasedDepositAmount,
|
||||||
@@ -583,8 +583,8 @@ export async function reviewWorkerCancelRequest(input: {
|
|||||||
nextFrozen,
|
nextFrozen,
|
||||||
request.work_order_id,
|
request.work_order_id,
|
||||||
forfeitGiftDeposit
|
forfeitGiftDeposit
|
||||||
? '取消订单申请审核通过扣除押金(已确认加好友)'
|
? '打手退单申请审核通过扣除押金(已确认加好友)'
|
||||||
: '取消订单申请审核通过退还押金',
|
: '打手退单申请审核通过退还押金',
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
requestId: request.id,
|
requestId: request.id,
|
||||||
reason: request.reason,
|
reason: request.reason,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ router.get(
|
|||||||
requireAdminPermission('worker_cancel_request.review'),
|
requireAdminPermission('worker_cancel_request.review'),
|
||||||
createJsonHandler((req) => listAdminWorkerCancelRequests(req.query), {
|
createJsonHandler((req) => listAdminWorkerCancelRequests(req.query), {
|
||||||
successMessage: 'ok',
|
successMessage: 'ok',
|
||||||
errorMessage: '读取取消订单申请失败',
|
errorMessage: '读取打手退单申请失败',
|
||||||
scope: '[admin/worker-platform/cancel-requests]',
|
scope: '[admin/worker-platform/cancel-requests]',
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
@@ -59,8 +59,8 @@ router.post(
|
|||||||
req.adminSession?.username || '',
|
req.adminSession?.username || '',
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
successMessage: '取消订单申请已审核',
|
successMessage: '打手退单申请已审核',
|
||||||
errorMessage: '审核取消订单申请失败',
|
errorMessage: '审核打手退单申请失败',
|
||||||
scope: '[admin/worker-platform/cancel-requests/:requestId/review]',
|
scope: '[admin/worker-platform/cancel-requests/:requestId/review]',
|
||||||
audit: (req, data) => ({
|
audit: (req, data) => ({
|
||||||
action: 'worker_cancel_request_reviewed',
|
action: 'worker_cancel_request_reviewed',
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ export async function createWorkerCancelRequestAdminNotification(input: {
|
|||||||
entityType: 'worker_cancel_request',
|
entityType: 'worker_cancel_request',
|
||||||
entityId: input.requestId,
|
entityId: input.requestId,
|
||||||
dedupeKey: `worker_cancel_request:${input.requestId}`,
|
dedupeKey: `worker_cancel_request:${input.requestId}`,
|
||||||
title: '有打手取消订单申请待审核',
|
title: '有打手退单申请待审核',
|
||||||
body: [
|
body: [
|
||||||
`订单:${input.platformOrderId || input.workOrderId}`,
|
`订单:${input.platformOrderId || input.workOrderId}`,
|
||||||
`商品:${input.productName || '-'}`,
|
`商品:${input.productName || '-'}`,
|
||||||
|
|||||||
@@ -41,19 +41,19 @@ export async function reviewAdminWorkerCancelRequest(
|
|||||||
now: nowIso(),
|
now: nowIso(),
|
||||||
})
|
})
|
||||||
if (result.failureReason === 'request_not_found') {
|
if (result.failureReason === 'request_not_found') {
|
||||||
throw createHttpError('取消订单申请不存在', {
|
throw createHttpError('打手退单申请不存在', {
|
||||||
statusCode: 404,
|
statusCode: 404,
|
||||||
errorCode: 'worker_cancel_request_not_found',
|
errorCode: 'worker_cancel_request_not_found',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (result.failureReason === 'request_not_pending') {
|
if (result.failureReason === 'request_not_pending') {
|
||||||
throw createHttpError('该取消订单申请已审核,请刷新后重试', {
|
throw createHttpError('该打手退单申请已审核,请刷新后重试', {
|
||||||
statusCode: 409,
|
statusCode: 409,
|
||||||
errorCode: 'worker_cancel_request_not_pending',
|
errorCode: 'worker_cancel_request_not_pending',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (!result.request || !result.order) {
|
if (!result.request || !result.order) {
|
||||||
throw createHttpError('订单状态已变化,无法审核该取消订单申请', {
|
throw createHttpError('订单状态已变化,无法审核该打手退单申请', {
|
||||||
statusCode: 409,
|
statusCode: 409,
|
||||||
errorCode: 'worker_cancel_request_target_changed',
|
errorCode: 'worker_cancel_request_target_changed',
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ export async function listWorkerMyOrders(query: JsonObject = {}, session: Worker
|
|||||||
noteByOrderId.get(workOrderId) || '',
|
noteByOrderId.get(workOrderId) || '',
|
||||||
viewedAtByOrderId.get(workOrderId) || null,
|
viewedAtByOrderId.get(workOrderId) || null,
|
||||||
),
|
),
|
||||||
// 问题单分组内的来源角标:平台标记 / 取消申请审核中 / 反馈处理中。
|
// 问题单分组内的来源角标:平台标记 / 退单审核中 / 反馈处理中。
|
||||||
problemMarked: item.status === 'problem',
|
problemMarked: item.status === 'problem',
|
||||||
pendingCancelRequest: pendingCancelOrderIds.has(workOrderId),
|
pendingCancelRequest: pendingCancelOrderIds.has(workOrderId),
|
||||||
pendingFeedback: pendingFeedbackOrderIds.has(workOrderId),
|
pendingFeedback: pendingFeedbackOrderIds.has(workOrderId),
|
||||||
|
|||||||
@@ -123,17 +123,17 @@ export function formatWorkOrderEvent(event: WorkOrderEvent): EventNodeStyle {
|
|||||||
return { title: '打手取消接单', color: 'red' }
|
return { title: '打手取消接单', color: 'red' }
|
||||||
case 'cancel_request_submitted':
|
case 'cancel_request_submitted':
|
||||||
return {
|
return {
|
||||||
title: note ? `打手提交取消订单申请:${note}` : '打手提交取消订单申请,等待客服审核',
|
title: note ? `打手提交退单申请:${note}` : '打手提交退单申请,等待客服审核',
|
||||||
color: 'orange',
|
color: 'orange',
|
||||||
}
|
}
|
||||||
case 'cancel_request_rejected':
|
case 'cancel_request_rejected':
|
||||||
return {
|
return {
|
||||||
title: note ? `客服驳回取消订单申请:${note}` : '客服驳回取消订单申请',
|
title: note ? `客服驳回打手退单申请:${note}` : '客服驳回打手退单申请',
|
||||||
color: 'green',
|
color: 'green',
|
||||||
}
|
}
|
||||||
case 'cancel_request_approved':
|
case 'cancel_request_approved':
|
||||||
return {
|
return {
|
||||||
title: note ? `客服同意取消订单申请:${note}` : '客服同意取消订单申请,订单已回到大厅',
|
title: note ? `客服同意打手退单申请:${note}` : '客服同意打手退单申请,订单已回到大厅',
|
||||||
color: 'red',
|
color: 'red',
|
||||||
}
|
}
|
||||||
case 'worker_feedback_submitted':
|
case 'worker_feedback_submitted':
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export default function AdminWorkerPlatformPage() {
|
|||||||
{ key: 'orders', label: '接单工单', children: <WorkOrdersPanel /> },
|
{ key: 'orders', label: '接单工单', children: <WorkOrdersPanel /> },
|
||||||
{
|
{
|
||||||
key: 'cancel-requests',
|
key: 'cancel-requests',
|
||||||
label: '取消申请审核',
|
label: '打手退单审核',
|
||||||
children: <CancelRequestsPanel />,
|
children: <CancelRequestsPanel />,
|
||||||
},
|
},
|
||||||
{ key: 'feedbacks', label: '问题反馈', children: <FeedbacksPanel /> },
|
{ key: 'feedbacks', label: '问题反馈', children: <FeedbacksPanel /> },
|
||||||
@@ -90,7 +90,7 @@ export default function AdminWorkerPlatformPage() {
|
|||||||
{ key: 'orders', label: '接单工单', children: <WorkOrdersPanel /> },
|
{ key: 'orders', label: '接单工单', children: <WorkOrdersPanel /> },
|
||||||
{
|
{
|
||||||
key: 'cancel-requests',
|
key: 'cancel-requests',
|
||||||
label: '取消申请审核',
|
label: '打手退单审核',
|
||||||
children: <CancelRequestsPanel />,
|
children: <CancelRequestsPanel />,
|
||||||
},
|
},
|
||||||
{ key: 'feedbacks', label: '问题反馈', children: <FeedbacksPanel /> },
|
{ key: 'feedbacks', label: '问题反馈', children: <FeedbacksPanel /> },
|
||||||
|
|||||||
@@ -71,12 +71,12 @@ export default function CancelRequestsPanel() {
|
|||||||
: result.levelChanged
|
: result.levelChanged
|
||||||
? ',该打手已降一级 VIP'
|
? ',该打手已降一级 VIP'
|
||||||
: ''
|
: ''
|
||||||
message.success(`${result.approved ? '已同意' : '已驳回'}取消订单申请${resultText}`)
|
message.success(`${result.approved ? '已同意' : '已驳回'}打手退单申请${resultText}`)
|
||||||
setReviewTarget(null)
|
setReviewTarget(null)
|
||||||
form.resetFields()
|
form.resetFields()
|
||||||
await refreshAll()
|
await refreshAll()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
message.error(error instanceof Error ? error.message : '审核取消订单申请失败')
|
message.error(error instanceof Error ? error.message : '审核打手退单申请失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ export default function CancelRequestsPanel() {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Card
|
<Card
|
||||||
title={`待审核取消订单申请(${requestsQuery.data?.data.items.length || 0})`}
|
title={`待审核打手退单申请(${requestsQuery.data?.data.items.length || 0})`}
|
||||||
extra={
|
extra={
|
||||||
<Button
|
<Button
|
||||||
icon={<ReloadOutlined />}
|
icon={<ReloadOutlined />}
|
||||||
@@ -154,12 +154,12 @@ export default function CancelRequestsPanel() {
|
|||||||
dataSource={requestsQuery.data?.data.items || []}
|
dataSource={requestsQuery.data?.data.items || []}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
pagination={false}
|
pagination={false}
|
||||||
locale={{ emptyText: '暂无待审核取消订单申请' }}
|
locale={{ emptyText: '暂无待审核打手退单申请' }}
|
||||||
scroll={{ x: 900 }}
|
scroll={{ x: 900 }}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
<Modal
|
<Modal
|
||||||
title={reviewTarget?.approved ? '同意取消订单申请' : '驳回取消订单申请'}
|
title={reviewTarget?.approved ? '同意打手退单申请' : '驳回打手退单申请'}
|
||||||
open={Boolean(reviewTarget)}
|
open={Boolean(reviewTarget)}
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
setReviewTarget(null)
|
setReviewTarget(null)
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ const notificationEventRows: NotificationEventRow[] = [
|
|||||||
{ key: 'material_required', name: '待补资料工单', description: '新工单等待后台补充资料' },
|
{ key: 'material_required', name: '待补资料工单', description: '新工单等待后台补充资料' },
|
||||||
{
|
{
|
||||||
key: 'cancel_requested',
|
key: 'cancel_requested',
|
||||||
name: '取消订单申请',
|
name: '打手退单申请',
|
||||||
description: '打手提交新的取消订单申请,等待客服审核',
|
description: '打手提交新的退单申请,等待客服审核',
|
||||||
},
|
},
|
||||||
{ key: 'feedback_submitted', name: '问题反馈', description: '打手反馈客户资料或订单处理问题' },
|
{ key: 'feedback_submitted', name: '问题反馈', description: '打手反馈客户资料或订单处理问题' },
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ export function getOrderFlagTags(order: WorkOrder) {
|
|||||||
const flags: Array<{ key: string; label: string; color: string }> = []
|
const flags: Array<{ key: string; label: string; color: string }> = []
|
||||||
if (order.problemMarked) flags.push({ key: 'problem', label: '平台标记', color: 'red' })
|
if (order.problemMarked) flags.push({ key: 'problem', label: '平台标记', color: 'red' })
|
||||||
if (order.pendingCancelRequest)
|
if (order.pendingCancelRequest)
|
||||||
flags.push({ key: 'cancel', label: '取消申请审核中', color: 'orange' })
|
flags.push({ key: 'cancel', label: '退单审核中', color: 'orange' })
|
||||||
if (order.pendingFeedback) flags.push({ key: 'feedback', label: '反馈处理中', color: 'orange' })
|
if (order.pendingFeedback) flags.push({ key: 'feedback', label: '反馈处理中', color: 'orange' })
|
||||||
if (order.materialUpdated) flags.push({ key: 'material', label: '资料已更新', color: 'blue' })
|
if (order.materialUpdated) flags.push({ key: 'material', label: '资料已更新', color: 'blue' })
|
||||||
return flags
|
return flags
|
||||||
|
|||||||
@@ -582,7 +582,7 @@ export type WorkOrder = {
|
|||||||
/** 打手本人尚未点击查看或操作过该工单。 */
|
/** 打手本人尚未点击查看或操作过该工单。 */
|
||||||
isUnread?: boolean
|
isUnread?: boolean
|
||||||
problemNote: string
|
problemNote: string
|
||||||
/** 问题单分组来源角标:平台标记 / 取消申请审核中 / 反馈处理中 / 资料已更新。 */
|
/** 问题单分组来源角标:平台标记 / 退单审核中 / 反馈处理中 / 资料已更新。 */
|
||||||
problemMarked?: boolean
|
problemMarked?: boolean
|
||||||
pendingCancelRequest?: boolean
|
pendingCancelRequest?: boolean
|
||||||
pendingFeedback?: boolean
|
pendingFeedback?: boolean
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export function formatAuditAction(action: string) {
|
|||||||
platform_shop_config_updated: '更新店铺配置',
|
platform_shop_config_updated: '更新店铺配置',
|
||||||
platform_fulfillment_config_updated: '更新履约配置',
|
platform_fulfillment_config_updated: '更新履约配置',
|
||||||
worker_finance_request_reviewed: '资金申请审核',
|
worker_finance_request_reviewed: '资金申请审核',
|
||||||
worker_cancel_request_reviewed: '取消订单申请审核',
|
worker_cancel_request_reviewed: '打手退单申请审核',
|
||||||
worker_reviewed: '打手账号审核',
|
worker_reviewed: '打手账号审核',
|
||||||
worker_wallet_credited: '打手钱包手动加款',
|
worker_wallet_credited: '打手钱包手动加款',
|
||||||
worker_password_reset: '重置打手密码',
|
worker_password_reset: '重置打手密码',
|
||||||
@@ -80,7 +80,7 @@ export function formatAuditTargetType(targetType: string) {
|
|||||||
work_order: '接单工单',
|
work_order: '接单工单',
|
||||||
work_order_share: '拼单份额',
|
work_order_share: '拼单份额',
|
||||||
worker_finance_request: '资金申请',
|
worker_finance_request: '资金申请',
|
||||||
worker_cancel_request: '取消订单申请',
|
worker_cancel_request: '打手退单申请',
|
||||||
after_sales_case: '售后问题单',
|
after_sales_case: '售后问题单',
|
||||||
worker_level: '接单等级',
|
worker_level: '接单等级',
|
||||||
work_category: '接单分类',
|
work_category: '接单分类',
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export const adminUserStatusOptions = [
|
|||||||
|
|
||||||
export const adminAuditActionOptions = [
|
export const adminAuditActionOptions = [
|
||||||
{ label: '资金申请审核(通过/拒绝)', value: 'worker_finance_request_reviewed' },
|
{ label: '资金申请审核(通过/拒绝)', value: 'worker_finance_request_reviewed' },
|
||||||
{ label: '取消订单申请审核', value: 'worker_cancel_request_reviewed' },
|
{ label: '打手退单申请审核', value: 'worker_cancel_request_reviewed' },
|
||||||
{ label: '打手账号审核', value: 'worker_reviewed' },
|
{ label: '打手账号审核', value: 'worker_reviewed' },
|
||||||
{ label: '打手钱包手动加款', value: 'worker_wallet_credited' },
|
{ label: '打手钱包手动加款', value: 'worker_wallet_credited' },
|
||||||
{ label: '重置打手密码', value: 'worker_password_reset' },
|
{ label: '重置打手密码', value: 'worker_password_reset' },
|
||||||
@@ -86,7 +86,7 @@ export const adminAuditActionOptions = [
|
|||||||
|
|
||||||
export const adminAuditTargetTypeOptions = [
|
export const adminAuditTargetTypeOptions = [
|
||||||
{ label: '资金申请', value: 'worker_finance_request' },
|
{ label: '资金申请', value: 'worker_finance_request' },
|
||||||
{ label: '取消订单申请', value: 'worker_cancel_request' },
|
{ label: '打手退单申请', value: 'worker_cancel_request' },
|
||||||
{ label: '打手', value: 'worker' },
|
{ label: '打手', value: 'worker' },
|
||||||
{ label: '接单工单', value: 'work_order' },
|
{ label: '接单工单', value: 'work_order' },
|
||||||
{ label: '拼单份额', value: 'work_order_share' },
|
{ label: '拼单份额', value: 'work_order_share' },
|
||||||
|
|||||||
Reference in New Issue
Block a user