拆分后台打手平台路由
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,156 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
acceptAdminWorkOrder,
|
||||
acceptAdminWorkOrderShare,
|
||||
cancelAdminWorkOrderShare,
|
||||
deductAdminWorkOrderPendingDeposit,
|
||||
markAdminWorkOrderProblem,
|
||||
resolveAdminProblemWorkOrder,
|
||||
} from '../../../services/worker-platform/index.js'
|
||||
import { createJsonHandler, requireAdminRoles } from '../session.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/problem',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
markAdminWorkOrderProblem(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
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/problem/resolve',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
resolveAdminProblemWorkOrder(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '问题单已处置',
|
||||
errorMessage: '处置问题单失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/problem/resolve]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_problem_resolved',
|
||||
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 || ''), req.adminSession?.username || ''),
|
||||
{
|
||||
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>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/shares/:shareId/accept',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
acceptAdminWorkOrderShare(
|
||||
String(req.params.workOrderId || ''),
|
||||
String(req.params.shareId || ''),
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '拼单份额已验收通过',
|
||||
errorMessage: '验收拼单份额失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/shares/:shareId/accept]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_share_accepted',
|
||||
targetType: 'work_order_share',
|
||||
targetId: String(req.params.shareId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/shares/:shareId/cancel',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
cancelAdminWorkOrderShare(
|
||||
String(req.params.workOrderId || ''),
|
||||
String(req.params.shareId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '拼单参与者已撤单,份数已退回大厅',
|
||||
errorMessage: '撤销拼单参与者失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/shares/:shareId/cancel]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_share_cancelled',
|
||||
targetType: 'work_order_share',
|
||||
targetId: String(req.params.shareId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/deduct-pending-deposit',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
deductAdminWorkOrderPendingDeposit(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '待解冻押金已扣减',
|
||||
errorMessage: '扣减待解冻押金失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/deduct-pending-deposit]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_pending_deposit_deducted',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,81 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
createAdminAfterSalesCase,
|
||||
getAdminAfterSalesCaseEvents,
|
||||
listAdminAfterSalesCases,
|
||||
resolveAdminAfterSalesCase,
|
||||
} from '../../../services/worker-platform/index.js'
|
||||
import { createJsonHandler, requireAdminRoles } from '../session.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
router.get(
|
||||
'/worker-platform/after-sales-cases',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminAfterSalesCases(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取售后问题单失败',
|
||||
scope: '[admin/worker-platform/after-sales-cases]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/after-sales-cases/:caseId/events',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => getAdminAfterSalesCaseEvents(String(req.params.caseId || '')), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取售后问题单记录失败',
|
||||
scope: '[admin/worker-platform/after-sales-cases/:caseId/events]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/after-sales-cases',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
createAdminAfterSalesCase(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '售后问题单已创建',
|
||||
errorMessage: '创建售后问题单失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/after-sales-cases]',
|
||||
audit: (req, data) => ({
|
||||
action: 'after_sales_case_created',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/after-sales-cases/:caseId/resolve',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
resolveAdminAfterSalesCase(
|
||||
String(req.params.caseId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '售后问题单已处置',
|
||||
errorMessage: '处置售后问题单失败',
|
||||
scope: '[admin/worker-platform/after-sales-cases/:caseId/resolve]',
|
||||
audit: (req, data) => ({
|
||||
action: 'after_sales_case_resolved',
|
||||
targetType: 'after_sales_case',
|
||||
targetId: String(req.params.caseId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,395 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
deleteAdminWorkCategory,
|
||||
deleteAdminWorkProductRule,
|
||||
deleteAdminWorkProductRuleMapping,
|
||||
deleteAdminWorkerLevel,
|
||||
getAdminWorkerAnnouncementConfig,
|
||||
getAdminWorkerFinanceConfig,
|
||||
getAdminWorkerHallConfig,
|
||||
getAdminWorkerPlatformNotificationConfig,
|
||||
getAdminWorkerPlatformSummary,
|
||||
getAdminWorkerProductMatchConfig,
|
||||
listAdminKuaishouMatchSources,
|
||||
listAdminWorkCategories,
|
||||
listAdminWorkProductMatchLogs,
|
||||
listAdminWorkProductRuleMappings,
|
||||
listAdminWorkProductRules,
|
||||
listAdminWorkerLevels,
|
||||
saveAdminWorkCategory,
|
||||
saveAdminWorkProductRule,
|
||||
saveAdminWorkProductRuleMapping,
|
||||
saveAdminWorkerAnnouncementConfig,
|
||||
saveAdminWorkerFinanceConfig,
|
||||
saveAdminWorkerHallConfig,
|
||||
saveAdminWorkerLevel,
|
||||
saveAdminWorkerPlatformNotificationConfig,
|
||||
saveAdminWorkerProductMatchConfig,
|
||||
syncAdminWorkProductRulePrice,
|
||||
testAdminKuaishouProductMatch,
|
||||
} from '../../../services/worker-platform/index.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.delete(
|
||||
'/worker-platform/levels/:levelId',
|
||||
requireAdminRoles(['admin']),
|
||||
createJsonHandler((req) => deleteAdminWorkerLevel(String(req.params.levelId || '')), {
|
||||
successMessage: '接单等级已删除',
|
||||
errorMessage: '删除接单等级失败',
|
||||
scope: '[admin/worker-platform/levels/:levelId]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'worker_level_deleted',
|
||||
targetType: 'worker_level',
|
||||
targetId: String(_req.params.levelId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/categories',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(() => listAdminWorkCategories(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取接单分类失败',
|
||||
scope: '[admin/worker-platform/categories]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/categories',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => saveAdminWorkCategory(req.body || {}), {
|
||||
successMessage: '接单分类已保存',
|
||||
errorMessage: '保存接单分类失败',
|
||||
scope: '[admin/worker-platform/categories]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'work_category_saved',
|
||||
targetType: 'work_category',
|
||||
targetId: String(
|
||||
(data as { category?: { categoryKey?: string } })?.category?.categoryKey || '',
|
||||
),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.delete(
|
||||
'/worker-platform/categories/:categoryId',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => deleteAdminWorkCategory(String(req.params.categoryId || '')), {
|
||||
successMessage: '接单分类已删除',
|
||||
errorMessage: '删除接单分类失败',
|
||||
scope: '[admin/worker-platform/categories/:categoryId]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'work_category_deleted',
|
||||
targetType: 'work_category',
|
||||
targetId: String(_req.params.categoryId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/product-rules',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminWorkProductRules(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取接单物品规则失败',
|
||||
scope: '[admin/worker-platform/product-rules]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/product-rules',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => saveAdminWorkProductRule(req.body || {}), {
|
||||
successMessage: '接单物品规则已保存',
|
||||
errorMessage: '保存接单物品规则失败',
|
||||
scope: '[admin/worker-platform/product-rules]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'work_product_rule_saved',
|
||||
targetType: 'work_product_rule',
|
||||
targetId: String((data as { rule?: { ruleKey?: string } })?.rule?.ruleKey || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/product-rules/:ruleId/sync-price',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
syncAdminWorkProductRulePrice(
|
||||
String(req.params.ruleId || ''),
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '模板价格已同步',
|
||||
errorMessage: '同步模板价格失败',
|
||||
scope: '[admin/worker-platform/product-rules/:ruleId/sync-price]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_product_rule_price_synced',
|
||||
targetType: 'work_product_rule',
|
||||
targetId: String(req.params.ruleId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.delete(
|
||||
'/worker-platform/product-rules/:ruleId',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => deleteAdminWorkProductRule(String(req.params.ruleId || '')), {
|
||||
successMessage: '接单物品规则已删除',
|
||||
errorMessage: '删除接单物品规则失败',
|
||||
scope: '[admin/worker-platform/product-rules/:ruleId]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'work_product_rule_deleted',
|
||||
targetType: 'work_product_rule',
|
||||
targetId: String(_req.params.ruleId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/product-mappings',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminWorkProductRuleMappings(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取商品映射失败',
|
||||
scope: '[admin/worker-platform/product-mappings]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/product-mappings',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => saveAdminWorkProductRuleMapping(req.body || {}), {
|
||||
successMessage: '商品映射已保存',
|
||||
errorMessage: '保存商品映射失败',
|
||||
scope: '[admin/worker-platform/product-mappings]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'work_product_mapping_saved',
|
||||
targetType: 'work_product_mapping',
|
||||
targetId: String((data as { mapping?: { mappingId?: number } })?.mapping?.mappingId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.delete(
|
||||
'/worker-platform/product-mappings/:mappingId',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) => deleteAdminWorkProductRuleMapping(String(req.params.mappingId || '')),
|
||||
{
|
||||
successMessage: '商品映射已删除',
|
||||
errorMessage: '删除商品映射失败',
|
||||
scope: '[admin/worker-platform/product-mappings/:mappingId]',
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/product-match-config',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(() => getAdminWorkerProductMatchConfig(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取商品匹配配置失败',
|
||||
scope: '[admin/worker-platform/product-match-config]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/announcement',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(() => getAdminWorkerAnnouncementConfig(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取公告失败',
|
||||
scope: '[admin/worker-platform/announcement]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/hall-config',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(() => getAdminWorkerHallConfig(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取大厅配置失败',
|
||||
scope: '[admin/worker-platform/hall-config]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/hall-config',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => saveAdminWorkerHallConfig(req.body || {}), {
|
||||
successMessage: '大厅配置已保存',
|
||||
errorMessage: '保存大厅配置失败',
|
||||
scope: '[admin/worker-platform/hall-config]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'worker_hall_config_saved',
|
||||
targetType: 'worker_hall_config',
|
||||
targetId: 'worker_hall',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/announcement',
|
||||
requireAdminRoles(['admin']),
|
||||
createJsonHandler((req) => saveAdminWorkerAnnouncementConfig(req.body || {}), {
|
||||
successMessage: '公告已保存',
|
||||
errorMessage: '保存公告失败',
|
||||
scope: '[admin/worker-platform/announcement]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'worker_announcement_saved',
|
||||
targetType: 'worker_announcement',
|
||||
targetId: 'worker_announcement',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/product-match-config',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => saveAdminWorkerProductMatchConfig(req.body || {}), {
|
||||
successMessage: '商品匹配配置已保存',
|
||||
errorMessage: '保存商品匹配配置失败',
|
||||
scope: '[admin/worker-platform/product-match-config]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'worker_product_match_config_saved',
|
||||
targetType: 'worker_product_match_config',
|
||||
targetId: 'worker_product_match',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/product-match-sources',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminKuaishouMatchSources(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取快手匹配载荷失败',
|
||||
scope: '[admin/worker-platform/product-match-sources]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/product-match-test',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => testAdminKuaishouProductMatch(req.body || {}), {
|
||||
successMessage: '匹配测试完成',
|
||||
errorMessage: '匹配测试失败',
|
||||
scope: '[admin/worker-platform/product-match-test]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/product-match-logs',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminWorkProductMatchLogs(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取匹配日志失败',
|
||||
scope: '[admin/worker-platform/product-match-logs]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/finance-config',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(() => getAdminWorkerFinanceConfig(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取资金配置失败',
|
||||
scope: '[admin/worker-platform/finance-config]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/finance-config',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => saveAdminWorkerFinanceConfig(req.body || {}), {
|
||||
successMessage: '资金配置已保存',
|
||||
errorMessage: '保存资金配置失败',
|
||||
scope: '[admin/worker-platform/finance-config]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'worker_finance_config_saved',
|
||||
targetType: 'worker_finance_config',
|
||||
targetId: 'worker_finance',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/notification-config',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(() => getAdminWorkerPlatformNotificationConfig(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取通知配置失败',
|
||||
scope: '[admin/worker-platform/notification-config]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/notification-config',
|
||||
requireAdminRoles(['admin']),
|
||||
createJsonHandler((req) => saveAdminWorkerPlatformNotificationConfig(req.body || {}), {
|
||||
successMessage: '通知配置已保存',
|
||||
errorMessage: '保存通知配置失败',
|
||||
scope: '[admin/worker-platform/notification-config]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'worker_platform_notification_config_saved',
|
||||
targetType: 'worker_platform_notification_config',
|
||||
targetId: 'worker_platform_notifications',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,40 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
listAdminWorkerFinanceRequests,
|
||||
reviewAdminWorkerFinanceRequest,
|
||||
} from '../../../services/worker-platform/index.js'
|
||||
import { createJsonHandler, requireAdminRoles } from '../session.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
router.get(
|
||||
'/worker-platform/finance-requests',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminWorkerFinanceRequests(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取资金申请失败',
|
||||
scope: '[admin/worker-platform/finance-requests]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/finance-requests/:requestId/review',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) => reviewAdminWorkerFinanceRequest(String(req.params.requestId || ''), req.body || {}),
|
||||
{
|
||||
successMessage: '资金申请已处理',
|
||||
errorMessage: '处理资金申请失败',
|
||||
scope: '[admin/worker-platform/finance-requests/:requestId/review]',
|
||||
audit: (req, data) => ({
|
||||
action: 'worker_finance_request_reviewed',
|
||||
targetType: 'worker_finance_request',
|
||||
targetId: String(req.params.requestId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,360 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
acceptAdminWorkOrders,
|
||||
assignAdminWorkOrderToWorker,
|
||||
cancelAdminWorkOrder,
|
||||
createAdminMockWorkOrder,
|
||||
deleteAdminWorkOrder,
|
||||
getAdminWorkOrderEvents,
|
||||
getAdminWorkOrderSharing,
|
||||
listAdminWorkOrders,
|
||||
pinAdminWorkOrder,
|
||||
publishAdminWorkOrder,
|
||||
reopenAdminCancelledWorkOrder,
|
||||
reprocessAdminKuaishouSendCodeWorkOrders,
|
||||
submitAdminWorkOrderMaterial,
|
||||
unassignAdminWorkOrder,
|
||||
unpublishAdminWorkOrder,
|
||||
updateAdminWorkOrder,
|
||||
updateAdminWorkOrderSharing,
|
||||
} from '../../../services/worker-platform/index.js'
|
||||
import { createJsonHandler, requireAdminRoles } from '../session.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
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', 'support']),
|
||||
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/reprocess-matches',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => reprocessAdminKuaishouSendCodeWorkOrders(req.body || {}), {
|
||||
successMessage: '快手订单重匹配完成',
|
||||
errorMessage: '快手订单重匹配失败',
|
||||
scope: '[admin/worker-platform/orders/reprocess-matches]',
|
||||
audit: (_req, data) => ({
|
||||
action: 'work_order_kuaishou_reprocessed',
|
||||
targetType: 'work_order',
|
||||
targetId: '',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/material',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
submitAdminWorkOrderMaterial(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '订单资料已保存',
|
||||
errorMessage: '补充订单资料失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/material]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_material_saved',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.put(
|
||||
'/worker-platform/orders/:workOrderId',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
updateAdminWorkOrder(String(req.params.workOrderId || ''), req.body || {}, {
|
||||
canEditRequirementFields: req.adminSession?.role !== 'support',
|
||||
actorName: req.adminSession?.username || '',
|
||||
}),
|
||||
{
|
||||
successMessage: '工单信息已保存',
|
||||
errorMessage: '保存工单信息失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_updated',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/assign',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
assignAdminWorkOrderToWorker(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '已指派打手',
|
||||
errorMessage: '指派打手失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/assign]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_worker_assigned',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/unassign',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
unassignAdminWorkOrder(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '已取消指派',
|
||||
errorMessage: '取消指派失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/unassign]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_worker_unassigned',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/cancel',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
cancelAdminWorkOrder(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '撤单处理完成,打手额度已恢复',
|
||||
errorMessage: '撤单失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/cancel]',
|
||||
audit: (req, data) => ({
|
||||
action:
|
||||
String(req.body?.action || '').trim() === 'return_to_hall'
|
||||
? 'work_order_returned_to_hall'
|
||||
: 'work_order_cancelled',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.delete(
|
||||
'/worker-platform/orders/:workOrderId',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => deleteAdminWorkOrder(String(req.params.workOrderId || '')), {
|
||||
successMessage: '工单已删除',
|
||||
errorMessage: '删除工单失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_deleted',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/reopen',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
reopenAdminCancelledWorkOrder(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '订单已恢复为未分配状态',
|
||||
errorMessage: '重新启用订单失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/reopen]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_reopened',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/publish',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
publishAdminWorkOrder(String(req.params.workOrderId || ''), req.adminSession?.username || ''),
|
||||
{
|
||||
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/unpublish',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
unpublishAdminWorkOrder(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '订单已撤回到未分配',
|
||||
errorMessage: '下架接单订单失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/unpublish]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_unpublished',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/pin',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
pinAdminWorkOrder(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '置顶状态已更新',
|
||||
errorMessage: '更新置顶状态失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/pin]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_pin_toggled',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/orders/:workOrderId/sharing',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => getAdminWorkOrderSharing(String(req.params.workOrderId || '')), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取拼单信息失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/sharing]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/orders/:workOrderId/events',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => getAdminWorkOrderEvents(String(req.params.workOrderId || '')), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取工单流转记录失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/events]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/:workOrderId/sharing',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
updateAdminWorkOrderSharing(
|
||||
String(req.params.workOrderId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '拼单配置已保存',
|
||||
errorMessage: '保存拼单配置失败',
|
||||
scope: '[admin/worker-platform/orders/:workOrderId/sharing]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_order_sharing_config_updated',
|
||||
targetType: 'work_order',
|
||||
targetId: String(req.params.workOrderId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/orders/accept-batch',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) => acceptAdminWorkOrders(req.body || {}, req.adminSession?.username || ''),
|
||||
{
|
||||
successMessage: '选中订单已验收通过',
|
||||
errorMessage: '批量验收接单订单失败',
|
||||
scope: '[admin/worker-platform/orders/accept-batch]',
|
||||
audit: (req, data) => ({
|
||||
action: 'work_orders_batch_accepted',
|
||||
targetType: 'work_order',
|
||||
targetId: Array.isArray(req.body?.workOrderIds)
|
||||
? req.body.workOrderIds.map((item: unknown) => String(item)).join(',')
|
||||
: '',
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,75 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
listAdminWorkerCancelRequests,
|
||||
listAdminWorkerOrderFeedbacks,
|
||||
resolveAdminWorkerOrderFeedback,
|
||||
reviewAdminWorkerCancelRequest,
|
||||
} from '../../../services/worker-platform/index.js'
|
||||
import { createJsonHandler, requireAdminRoles } from '../session.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
router.get(
|
||||
'/worker-platform/cancel-requests',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminWorkerCancelRequests(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取撤单申请失败',
|
||||
scope: '[admin/worker-platform/cancel-requests]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/worker-platform/feedbacks',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler((req) => listAdminWorkerOrderFeedbacks(req.query), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取问题反馈失败',
|
||||
scope: '[admin/worker-platform/feedbacks]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/feedbacks/:feedbackId/resolve',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
resolveAdminWorkerOrderFeedback(
|
||||
String(req.params.feedbackId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '问题反馈已处理',
|
||||
errorMessage: '处理问题反馈失败',
|
||||
scope: '[admin/worker-platform/feedbacks/:feedbackId/resolve]',
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/cancel-requests/:requestId/review',
|
||||
requireAdminRoles(['admin', 'operator', 'support']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
reviewAdminWorkerCancelRequest(
|
||||
String(req.params.requestId || ''),
|
||||
req.body || {},
|
||||
req.adminSession?.username || '',
|
||||
),
|
||||
{
|
||||
successMessage: '撤单申请已审核',
|
||||
errorMessage: '审核撤单申请失败',
|
||||
scope: '[admin/worker-platform/cancel-requests/:requestId/review]',
|
||||
audit: (req, data) => ({
|
||||
action: 'worker_cancel_request_reviewed',
|
||||
targetType: 'worker_cancel_request',
|
||||
targetId: String(req.params.requestId || ''),
|
||||
data: data && typeof data === 'object' ? (data as Record<string, unknown>) : {},
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,116 @@
|
||||
import { Router } from 'express'
|
||||
|
||||
import {
|
||||
creditAdminWorkerWallet,
|
||||
listAdminWorkerUsers,
|
||||
listAdminWorkerWithdrawalAccounts,
|
||||
resetAdminWorkerPassword,
|
||||
reviewAdminWorkerUser,
|
||||
saveAdminWorkerWithdrawalAccount,
|
||||
} from '../../../services/worker-platform/index.js'
|
||||
import { createJsonHandler, requireAdminRoles } from '../session.js'
|
||||
|
||||
const router = Router()
|
||||
|
||||
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/reset-password',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) => resetAdminWorkerPassword(String(req.params.workerId || ''), req.body || {}),
|
||||
{
|
||||
successMessage: '打手密码已重置',
|
||||
errorMessage: '重置打手密码失败',
|
||||
scope: '[admin/worker-platform/workers/:workerId/reset-password]',
|
||||
audit: (req, data) => ({
|
||||
action: 'worker_password_reset',
|
||||
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/workers/:workerId/withdrawal-accounts',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler((req) => listAdminWorkerWithdrawalAccounts(String(req.params.workerId || '')), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取打手提现信息失败',
|
||||
scope: '[admin/worker-platform/workers/:workerId/withdrawal-accounts]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/worker-platform/workers/:workerId/withdrawal-accounts/:accountChannel',
|
||||
requireAdminRoles(['admin', 'operator']),
|
||||
createJsonHandler(
|
||||
(req) =>
|
||||
saveAdminWorkerWithdrawalAccount(
|
||||
String(req.params.workerId || ''),
|
||||
String(req.params.accountChannel || ''),
|
||||
req.body || {},
|
||||
),
|
||||
{
|
||||
successMessage: '打手提现信息已保存',
|
||||
errorMessage: '保存打手提现信息失败',
|
||||
scope: '[admin/worker-platform/workers/:workerId/withdrawal-accounts/:accountChannel]',
|
||||
audit: (req) => ({
|
||||
action: 'worker_withdrawal_account_saved',
|
||||
targetType: 'worker',
|
||||
targetId: String(req.params.workerId || ''),
|
||||
data: { accountChannel: String(req.params.accountChannel || '') },
|
||||
}),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
export default router
|
||||
Reference in New Issue
Block a user