增加平台持久化
This commit is contained in:
@@ -5,10 +5,13 @@ import { Router } from 'express'
|
||||
import {
|
||||
getAdminAgisoShopConfigs,
|
||||
getAdminFulfillmentBindingConfigs,
|
||||
getAdminKhhaoSourceConfig,
|
||||
lookupAdminFulfillmentBindingOrder,
|
||||
queryAdminKhhaoOrders,
|
||||
syncAdminKhhaoOrders,
|
||||
testAdminKhhaoLogin,
|
||||
updateAdminAgisoShopConfigs,
|
||||
updateAdminKhhaoSourceConfig,
|
||||
updateAdminFulfillmentBindingConfigs,
|
||||
} from '../../services/admin/admin-platform-config-service.js'
|
||||
import { createJsonHandler, requireAdminRoles } from './shared.js'
|
||||
@@ -17,6 +20,7 @@ import { createJsonHandler, requireAdminRoles } from './shared.js'
|
||||
/** @typedef {import('../../types/admin-route-inputs.js').AdminFulfillmentBindingConfigRouteBody} AdminFulfillmentBindingConfigRouteBody */
|
||||
/** @typedef {import('../../types/admin-route-inputs.js').AdminFulfillmentBindingLookupRouteBody} AdminFulfillmentBindingLookupRouteBody */
|
||||
/** @typedef {import('../../types/admin-route-inputs.js').AdminKhhaoOrderQueryRouteBody} AdminKhhaoOrderQueryRouteBody */
|
||||
/** @typedef {import('../../types/admin-route-inputs.js').AdminKhhaoSourceConfigRouteBody} AdminKhhaoSourceConfigRouteBody */
|
||||
/** @typedef {import('../../types/admin-route-inputs.js').AdminKhhaoTestLoginRouteBody} AdminKhhaoTestLoginRouteBody */
|
||||
/** @typedef {import('../../types/admin-write-models.js').AdminAgisoShopConfigSaveResponse} AdminAgisoShopConfigSaveResponse */
|
||||
|
||||
@@ -54,6 +58,37 @@ router.post('/platform-config/agiso-shops', createJsonHandler(
|
||||
},
|
||||
))
|
||||
|
||||
router.get('/platform-config/khhao-source', createJsonHandler(
|
||||
() => getAdminKhhaoSourceConfig(),
|
||||
{
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取 khhao 来源配置失败',
|
||||
scope: '[admin/platform-config/khhao-source]',
|
||||
},
|
||||
))
|
||||
|
||||
router.post('/platform-config/khhao-source', createJsonHandler(
|
||||
(req) => updateAdminKhhaoSourceConfig(/** @type {AdminKhhaoSourceConfigRouteBody} */ (req.body)),
|
||||
{
|
||||
successMessage: 'khhao 来源配置已保存',
|
||||
errorMessage: '保存 khhao 来源配置失败',
|
||||
scope: '[admin/platform-config/khhao-source]',
|
||||
audit: (_req, data) => {
|
||||
const result = /** @type {{ filePath?: string, source?: { username?: string, enabled?: boolean } }} */ (data)
|
||||
return {
|
||||
action: 'platform_khhao_source_updated',
|
||||
targetType: 'platform_config',
|
||||
targetId: 'khhao_source',
|
||||
data: {
|
||||
filePath: String(result.filePath || '').trim(),
|
||||
username: String(result.source?.username || '').trim(),
|
||||
enabled: Boolean(result.source?.enabled),
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
))
|
||||
|
||||
router.post('/platform-config/khhao/test-login', createJsonHandler(
|
||||
(req) => testAdminKhhaoLogin(/** @type {AdminKhhaoTestLoginRouteBody} */ (req.body)),
|
||||
{
|
||||
@@ -102,6 +137,32 @@ router.post('/platform-config/khhao/query-orders', createJsonHandler(
|
||||
},
|
||||
))
|
||||
|
||||
router.post('/platform-config/khhao/sync-orders', createJsonHandler(
|
||||
(req) => syncAdminKhhaoOrders(/** @type {AdminKhhaoOrderQueryRouteBody} */ (req.body)),
|
||||
{
|
||||
successMessage: 'khhao 订单同步成功',
|
||||
errorMessage: 'khhao 订单同步失败',
|
||||
scope: '[admin/platform-config/khhao/sync-orders]',
|
||||
audit: (req, data) => {
|
||||
const body = /** @type {AdminKhhaoOrderQueryRouteBody} */ (req.body)
|
||||
const result = /** @type {{ page?: number, limit?: number, fetchedCount?: number, syncedCount?: number, ignoredCount?: number, baseUrl?: string }} */ (data)
|
||||
return {
|
||||
action: 'platform_khhao_sync_orders',
|
||||
targetType: 'platform_config',
|
||||
targetId: String(body.username || '').trim() || 'khhao',
|
||||
data: {
|
||||
baseUrl: result.baseUrl || String(body.baseUrl || '').trim(),
|
||||
page: Number(result.page || 1),
|
||||
limit: Number(result.limit || 50),
|
||||
fetchedCount: Number(result.fetchedCount || 0),
|
||||
syncedCount: Number(result.syncedCount || 0),
|
||||
ignoredCount: Number(result.ignoredCount || 0),
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
))
|
||||
|
||||
router.get('/platform-config/fulfillment-bindings', createJsonHandler(
|
||||
() => getAdminFulfillmentBindingConfigs(),
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user