拆分feifei配置并修复商品查询
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
import { getKuaishouFeifeiConfig } from '../../platforms/kuaishou-feifei/config.js'
|
||||
import {
|
||||
createKuaishouFeifeiOrder,
|
||||
listKuaishouFeifeiProducts,
|
||||
queryKuaishouFeifeiOrder,
|
||||
} from '../../platforms/kuaishou-feifei/order-service.js'
|
||||
import { resolveKuaishouFeifeiProductByName } from '../../platforms/kuaishou-feifei/product-rule-service.js'
|
||||
import {
|
||||
getKuaishouFeifeiConfigFilePath,
|
||||
@@ -8,6 +13,7 @@ import {
|
||||
saveKuaishouFeifeiSourceConfig,
|
||||
} from '../../platforms/kuaishou-feifei/source-config-service.js'
|
||||
import { normalizeCloudtentaclesMatchName } from '../../order/cloudtentacles-match-utils.js'
|
||||
import { createHttpError } from '../../../utils/http.js'
|
||||
|
||||
type JsonObject = Record<string, any>
|
||||
|
||||
@@ -49,6 +55,70 @@ export function matchAdminKuaishouFeifeiProduct(payload: JsonObject = {}) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function listAdminKuaishouFeifeiProducts(payload: JsonObject = {}) {
|
||||
return listKuaishouFeifeiProducts({
|
||||
page: Number(payload.page || 1) || 1,
|
||||
perPage: Number(payload.perPage || payload.per_page || 20) || 20,
|
||||
status: String(payload.status || 'on_sale').trim(),
|
||||
supplyProductName: String(payload.supplyProductName || payload.supply_product_name || '').trim(),
|
||||
})
|
||||
}
|
||||
|
||||
export async function createAdminKuaishouFeifeiTestOrder(payload: JsonObject = {}) {
|
||||
const platformOrderNo = String(payload.platformOrderNo || payload.platform_order_no || '').trim()
|
||||
const productCode = String(payload.productCode || payload.product_code || '').trim()
|
||||
|
||||
if (!platformOrderNo) {
|
||||
throw createHttpError('测试业务单号不能为空', {
|
||||
statusCode: 400,
|
||||
errorCode: 'kuaishou_feifei_missing_platform_order_no',
|
||||
})
|
||||
}
|
||||
|
||||
if (!productCode) {
|
||||
throw createHttpError('feifei 商品编码不能为空', {
|
||||
statusCode: 400,
|
||||
errorCode: 'kuaishou_feifei_missing_product_code',
|
||||
})
|
||||
}
|
||||
|
||||
const orderInput: Parameters<typeof createKuaishouFeifeiOrder>[0] = {
|
||||
platformOrderNo,
|
||||
productCode,
|
||||
platformBuyNum: Number(payload.platformBuyNum || payload.platform_buy_num || 1) || 1,
|
||||
playerAccount: String(payload.playerAccount || payload.player_account || '').trim(),
|
||||
playerGameRegion: String(payload.playerGameRegion || payload.player_game_region || '').trim(),
|
||||
playerGameSrv: String(payload.playerGameSrv || payload.player_game_srv || '').trim(),
|
||||
playerGameRole: String(payload.playerGameRole || payload.player_game_role || '').trim(),
|
||||
submitPlayer: payload.submitPlayer === true || payload.submit_player === true,
|
||||
notifyUrl: String(payload.notifyUrl || payload.notify_url || '').trim(),
|
||||
}
|
||||
const platformAmount = normalizeOptionalNumber(payload.platformAmount ?? payload.platform_amount)
|
||||
|
||||
if (platformAmount !== undefined) {
|
||||
orderInput.platformAmount = platformAmount
|
||||
}
|
||||
|
||||
return createKuaishouFeifeiOrder(orderInput)
|
||||
}
|
||||
|
||||
export async function queryAdminKuaishouFeifeiTestOrder(payload: JsonObject = {}) {
|
||||
const platformOrderNo = String(payload.platformOrderNo || payload.platform_order_no || '').trim()
|
||||
const orderNo = String(payload.orderNo || payload.order_no || '').trim()
|
||||
|
||||
if (!platformOrderNo && !orderNo) {
|
||||
throw createHttpError('请填写 feifei 平台单号或测试业务单号', {
|
||||
statusCode: 400,
|
||||
errorCode: 'kuaishou_feifei_missing_order_query',
|
||||
})
|
||||
}
|
||||
|
||||
return queryKuaishouFeifeiOrder({
|
||||
platformOrderNo,
|
||||
orderNo,
|
||||
})
|
||||
}
|
||||
|
||||
function getAdminEditableKuaishouFeifeiConfig() {
|
||||
if (hasKuaishouFeifeiConfigFile()) {
|
||||
return getKuaishouFeifeiSourceConfig()
|
||||
@@ -68,3 +138,12 @@ function mapEffectiveKuaishouFeifeiConfig(config: ReturnType<typeof getKuaishouF
|
||||
productRuleCount: config.productRules.length,
|
||||
}
|
||||
}
|
||||
|
||||
function normalizeOptionalNumber(value: unknown) {
|
||||
if (value == null || String(value).trim() === '') {
|
||||
return undefined
|
||||
}
|
||||
|
||||
const numberValue = Number(value)
|
||||
return Number.isFinite(numberValue) ? numberValue : undefined
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user