新增接单平台第一期闭环

This commit is contained in:
yml2213
2026-07-25 13:58:53 +08:00
parent 06decc51ff
commit f6d3f00f21
27 changed files with 3987 additions and 0 deletions
@@ -0,0 +1,171 @@
import { Router } from 'express'
import {
acceptAdminWorkOrder,
creditAdminWorkerWallet,
createAdminMockWorkOrder,
getAdminWorkerPlatformSummary,
listAdminWorkerLevels,
listAdminWorkerUsers,
listAdminWorkOrders,
markAdminWorkOrderProblem,
publishAdminWorkOrder,
reviewAdminWorkerUser,
saveAdminWorkerLevel,
} from '../../services/worker-platform/worker-platform-service.js'
import { createJsonHandler, requireAdminRoles } from './session.js'
const router = Router()
router.get(
'/worker-platform/summary',
createJsonHandler(() => getAdminWorkerPlatformSummary(), {
successMessage: 'ok',
errorMessage: '读取接单平台概览失败',
scope: '[admin/worker-platform/summary]',
}),
)
router.get(
'/worker-platform/levels',
requireAdminRoles(['admin', 'operator']),
createJsonHandler(() => listAdminWorkerLevels(), {
successMessage: 'ok',
errorMessage: '读取接单等级失败',
scope: '[admin/worker-platform/levels]',
}),
)
router.post(
'/worker-platform/levels',
requireAdminRoles(['admin']),
createJsonHandler((req) => saveAdminWorkerLevel(req.body || {}), {
successMessage: '接单等级已保存',
errorMessage: '保存接单等级失败',
scope: '[admin/worker-platform/levels]',
audit: (_req, data) => ({
action: 'worker_level_saved',
targetType: 'worker_level',
targetId: String((data as { level?: { levelKey?: string } })?.level?.levelKey || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
router.get(
'/worker-platform/workers',
requireAdminRoles(['admin', 'operator', 'support']),
createJsonHandler((req) => listAdminWorkerUsers(req.query), {
successMessage: 'ok',
errorMessage: '读取接单员列表失败',
scope: '[admin/worker-platform/workers]',
}),
)
router.post(
'/worker-platform/workers/:workerId/review',
requireAdminRoles(['admin', 'operator']),
createJsonHandler((req) => reviewAdminWorkerUser(String(req.params.workerId || ''), req.body || {}), {
successMessage: '接单员审核状态已更新',
errorMessage: '审核接单员失败',
scope: '[admin/worker-platform/workers/:workerId/review]',
audit: (req, data) => ({
action: 'worker_reviewed',
targetType: 'worker',
targetId: String(req.params.workerId || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
router.post(
'/worker-platform/workers/:workerId/wallet-credit',
requireAdminRoles(['admin', 'operator']),
createJsonHandler((req) => creditAdminWorkerWallet(String(req.params.workerId || ''), req.body || {}), {
successMessage: '接单员余额已增加',
errorMessage: '人工充值失败',
scope: '[admin/worker-platform/workers/:workerId/wallet-credit]',
audit: (req, data) => ({
action: 'worker_wallet_credited',
targetType: 'worker',
targetId: String(req.params.workerId || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
router.get(
'/worker-platform/orders',
requireAdminRoles(['admin', 'operator', 'support']),
createJsonHandler((req) => listAdminWorkOrders(req.query), {
successMessage: 'ok',
errorMessage: '读取接单订单失败',
scope: '[admin/worker-platform/orders]',
}),
)
router.post(
'/worker-platform/orders/mock',
requireAdminRoles(['admin', 'operator']),
createJsonHandler((req) => createAdminMockWorkOrder(req.body || {}), {
successMessage: '接单工单 Mock 已生成',
errorMessage: '生成接单工单 Mock 失败',
scope: '[admin/worker-platform/orders/mock]',
audit: (_req, data) => ({
action: 'work_order_mock_created',
targetType: 'work_order',
targetId: String((data as { order?: { workOrderId?: number } })?.order?.workOrderId || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
router.post(
'/worker-platform/orders/:workOrderId/publish',
requireAdminRoles(['admin', 'operator']),
createJsonHandler((req) => publishAdminWorkOrder(String(req.params.workOrderId || '')), {
successMessage: '订单已发布到抢单大厅',
errorMessage: '发布接单订单失败',
scope: '[admin/worker-platform/orders/:workOrderId/publish]',
audit: (req, data) => ({
action: 'work_order_published',
targetType: 'work_order',
targetId: String(req.params.workOrderId || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
router.post(
'/worker-platform/orders/:workOrderId/problem',
requireAdminRoles(['admin', 'operator', 'support']),
createJsonHandler((req) => markAdminWorkOrderProblem(String(req.params.workOrderId || ''), req.body || {}), {
successMessage: '订单已标记为问题单',
errorMessage: '标记问题单失败',
scope: '[admin/worker-platform/orders/:workOrderId/problem]',
audit: (req, data) => ({
action: 'work_order_marked_problem',
targetType: 'work_order',
targetId: String(req.params.workOrderId || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
router.post(
'/worker-platform/orders/:workOrderId/accept',
requireAdminRoles(['admin', 'operator']),
createJsonHandler((req) => acceptAdminWorkOrder(String(req.params.workOrderId || '')), {
successMessage: '订单已验收通过',
errorMessage: '验收接单订单失败',
scope: '[admin/worker-platform/orders/:workOrderId/accept]',
audit: (req, data) => ({
action: 'work_order_accepted',
targetType: 'work_order',
targetId: String(req.params.workOrderId || ''),
data: data && typeof data === 'object' ? data as Record<string, unknown> : {},
}),
}),
)
export default router