增加 khhao 平台
This commit is contained in:
@@ -9,6 +9,9 @@ import {
|
||||
saveAgisoMessagingConfig,
|
||||
} from '../platforms/agiso/shop-config-service.js'
|
||||
import { enrichAgisoXianyuTradeOrder } from '../platforms/agiso/xianyu/order-detail-service.js'
|
||||
import { mapKhhaoOrderPreviewList } from '../platforms/khhao/order-mapper-service.js'
|
||||
import { queryKhhaoOrderList } from '../platforms/khhao/order-query-service.js'
|
||||
import { loginKhhaoSession } from '../platforms/khhao/session-service.js'
|
||||
import { normalizeAgisoMessageTemplate } from '../platforms/agiso/xianyu/message-service.js'
|
||||
import {
|
||||
getOrderFulfillmentBindingConfigs,
|
||||
@@ -23,6 +26,8 @@ import { normalizeProductName } from '../order/product-match-service.js'
|
||||
import { resolveDisplayShopName } from './admin-read-shared-helpers.js'
|
||||
|
||||
/** @typedef {import('../../types/admin-write-inputs.js').AdminAgisoShopConfigSaveInput} AdminAgisoShopConfigSaveInput */
|
||||
/** @typedef {import('../../types/admin-write-inputs.js').AdminKhhaoOrderQueryInput} AdminKhhaoOrderQueryInput */
|
||||
/** @typedef {import('../../types/admin-write-inputs.js').AdminKhhaoTestLoginInput} AdminKhhaoTestLoginInput */
|
||||
/** @typedef {import('../../types/admin-write-inputs.js').AdminFulfillmentBindingConfigSaveInput} AdminFulfillmentBindingConfigSaveInput */
|
||||
/** @typedef {import('../../types/admin-write-inputs.js').AdminFulfillmentBindingLookupInput} AdminFulfillmentBindingLookupInput */
|
||||
|
||||
@@ -176,6 +181,64 @@ function applyOptionalStringField(target, key, source) {
|
||||
delete target[key]
|
||||
}
|
||||
|
||||
/** @param {AdminKhhaoTestLoginInput} [payload] */
|
||||
export async function testAdminKhhaoLogin(payload = /** @type {AdminKhhaoTestLoginInput} */ ({})) {
|
||||
const session = await loginKhhaoSession({
|
||||
baseUrl: payload.baseUrl,
|
||||
username: payload.username,
|
||||
password: payload.password,
|
||||
maxCaptchaAttempts: payload.maxCaptchaAttempts,
|
||||
includeImageBase64: payload.includeImageBase64,
|
||||
requestId: `admin-khhao-test-login:${String(payload.username || '').trim() || 'anonymous'}`,
|
||||
})
|
||||
|
||||
return {
|
||||
baseUrl: session.baseUrl,
|
||||
username: session.username,
|
||||
loggedInAt: session.loggedInAt,
|
||||
attempt: session.attempt,
|
||||
responseMessage: session.responseMessage,
|
||||
captcha: {
|
||||
recognizedText: session.captchaText,
|
||||
imageBase64: session.captchaImageBase64,
|
||||
},
|
||||
session: {
|
||||
cookieKeys: Object.keys(session.cookieMap),
|
||||
cookieCount: Object.keys(session.cookieMap).length,
|
||||
cookieHeaderMasked: maskSecret(session.cookieHeader),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
/** @param {AdminKhhaoOrderQueryInput} [payload] */
|
||||
export async function queryAdminKhhaoOrders(payload = /** @type {AdminKhhaoOrderQueryInput} */ ({})) {
|
||||
const session = await loginKhhaoSession({
|
||||
baseUrl: payload.baseUrl,
|
||||
username: payload.username,
|
||||
password: payload.password,
|
||||
maxCaptchaAttempts: payload.maxCaptchaAttempts,
|
||||
requestId: `admin-khhao-query-orders:${String(payload.username || '').trim() || 'anonymous'}`,
|
||||
})
|
||||
|
||||
const result = await queryKhhaoOrderList({
|
||||
baseUrl: payload.baseUrl,
|
||||
page: payload.page,
|
||||
limit: payload.limit,
|
||||
session,
|
||||
})
|
||||
const previews = mapKhhaoOrderPreviewList(result.items)
|
||||
|
||||
return {
|
||||
baseUrl: session.baseUrl,
|
||||
page: result.page,
|
||||
limit: result.limit,
|
||||
total: result.total,
|
||||
itemCount: result.items.length,
|
||||
items: previews,
|
||||
rawItems: result.items,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getAdminFulfillmentBindingConfigs() {
|
||||
const bindings = getOrderFulfillmentBindingConfigs()
|
||||
const rowsResult = await query(
|
||||
|
||||
Reference in New Issue
Block a user