后端迁移平台配置服务入口

This commit is contained in:
yml
2026-05-21 16:11:44 +08:00
parent 37214d6b40
commit 104c5408d7
5 changed files with 26 additions and 33 deletions
@@ -1,5 +1,3 @@
// @ts-check
import { query } from '../../../db/client.js'
import {
getAgisoMessagingDefaults,
@@ -14,7 +12,7 @@ import {
} from './domain.js'
import { buildAdminAgisoMessagingSavePayload } from './writes.js'
/** @typedef {import('../../../types/admin-write-inputs.js').AdminAgisoShopConfigSaveInput} AdminAgisoShopConfigSaveInput */
type JsonObject = Record<string, any>
export async function getAdminAgisoShopConfigs() {
const configMap = getAgisoShopConfigMap()
@@ -51,8 +49,7 @@ export async function getAdminAgisoShopConfigs() {
}
}
/** @param {AdminAgisoShopConfigSaveInput} [payload] */
export function updateAdminAgisoShopConfigs(payload = /** @type {AdminAgisoShopConfigSaveInput} */ ({})) {
export function updateAdminAgisoShopConfigs(payload: JsonObject = {}) {
const saved = saveAgisoMessagingConfig(buildAdminAgisoMessagingSavePayload(payload, {
currentDefaults: getAgisoMessagingDefaults(),
currentMap: getAgisoShopConfigMap(),
@@ -1,5 +1,3 @@
// @ts-check
import {
getKuaishouCloudFulfillmentConfig,
getKuaishouCloudFulfillmentFilePath,
@@ -8,7 +6,7 @@ import {
import { syncConfiguredFulfillmentBindings } from '../../bootstrap/fulfillment-bootstrap-service.js'
import { mapAdminKuaishouCloudFulfillmentSource } from './mappers.js'
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouCloudFulfillmentConfigInput} AdminKuaishouCloudFulfillmentConfigInput */
type JsonObject = Record<string, any>
export function getAdminKuaishouCloudFulfillmentConfig() {
const config = getKuaishouCloudFulfillmentConfig()
@@ -21,7 +19,7 @@ export function getAdminKuaishouCloudFulfillmentConfig() {
/** @param {AdminKuaishouCloudFulfillmentConfigInput} [payload] */
export async function updateAdminKuaishouCloudFulfillmentConfig(
payload = /** @type {AdminKuaishouCloudFulfillmentConfigInput} */ ({}),
payload: JsonObject = {},
) {
const saved = saveKuaishouCloudFulfillmentConfig({
enabled: payload.enabled !== false,
@@ -1,5 +1,3 @@
// @ts-check
import {
consumeKuaishouEticket,
queryKuaishouEticketConsumeDetail,
@@ -16,12 +14,9 @@ import { queryKuaishouEticketStableInfo } from '../../platforms/kuaishou-eticket
import { resolveKuaishouEticketAdminContext } from './context.js'
import { mapAdminKuaishouEticketSourceConfig } from './mappers.js'
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouEticketSourceConfigInput} AdminKuaishouEticketSourceConfigInput */
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouEticketShopInfoInput} AdminKuaishouEticketShopInfoInput */
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouEticketDetailQueryInput} AdminKuaishouEticketDetailQueryInput */
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouEticketConsumeInput} AdminKuaishouEticketConsumeInput */
type JsonObject = Record<string, any>
function resolveAdminKuaishouEticketContext(payload = {}) {
function resolveAdminKuaishouEticketContext(payload: JsonObject = {}) {
return resolveKuaishouEticketAdminContext(payload, {
savedSource: getKuaishouEticketSourceConfig(),
findShopConfig: findKuaishouEticketShopConfig,
@@ -38,8 +33,7 @@ export function getAdminKuaishouEticketSourceConfig() {
}
}
/** @param {AdminKuaishouEticketSourceConfigInput} [payload] */
export function updateAdminKuaishouEticketSourceConfig(payload = /** @type {AdminKuaishouEticketSourceConfigInput} */ ({})) {
export function updateAdminKuaishouEticketSourceConfig(payload: JsonObject = {}) {
const saved = saveKuaishouEticketSourceConfig({
enabled: payload.enabled !== false,
baseUrl: String(payload.baseUrl || '').trim() || 'https://s.kwaixiaodian.com',
@@ -52,8 +46,7 @@ export function updateAdminKuaishouEticketSourceConfig(payload = /** @type {Admi
}
}
/** @param {AdminKuaishouEticketDetailQueryInput} [payload] */
export async function queryAdminKuaishouEticketDetail(payload = /** @type {AdminKuaishouEticketDetailQueryInput} */ ({})) {
export async function queryAdminKuaishouEticketDetail(payload: JsonObject = {}) {
const context = resolveAdminKuaishouEticketContext(payload)
return queryKuaishouEticketConsumeDetail({
@@ -63,8 +56,7 @@ export async function queryAdminKuaishouEticketDetail(payload = /** @type {Admin
})
}
/** @param {AdminKuaishouEticketShopInfoInput} [payload] */
export async function queryAdminKuaishouEticketShopInfo(payload = /** @type {AdminKuaishouEticketShopInfoInput} */ ({})) {
export async function queryAdminKuaishouEticketShopInfo(payload: JsonObject = {}) {
const context = resolveAdminKuaishouEticketContext(payload)
return queryKuaishouEticketStableInfo({
@@ -73,8 +65,7 @@ export async function queryAdminKuaishouEticketShopInfo(payload = /** @type {Adm
})
}
/** @param {AdminKuaishouEticketConsumeInput} [payload] */
export async function consumeAdminKuaishouEticket(payload = /** @type {AdminKuaishouEticketConsumeInput} */ ({})) {
export async function consumeAdminKuaishouEticket(payload: JsonObject = {}) {
const context = resolveAdminKuaishouEticketContext(payload)
return consumeKuaishouEticket({
@@ -1,13 +1,12 @@
// @ts-check
import {
failOpen91Order,
listOpen91Orders,
retryOpen91Order,
} from '../../platforms/ninetyone/order-service.js'
/** @param {{ page?: number | string, pageSize?: number | string, status?: string }} [query] */
export async function getAdminNinetyoneOrders(query = {}) {
type JsonObject = Record<string, any>
export async function getAdminNinetyoneOrders(query: JsonObject = {}) {
return listOpen91Orders({
page: Number(query.page || 1) || 1,
pageSize: Number(query.pageSize || 20) || 20,
@@ -15,8 +14,7 @@ export async function getAdminNinetyoneOrders(query = {}) {
})
}
/** @param {number | string} orderId */
export async function retryAdminNinetyoneOrder(orderId) {
export async function retryAdminNinetyoneOrder(orderId: number | string) {
const result = await retryOpen91Order(orderId)
return {
orderId: Number(result.order?.id || 0),
@@ -27,9 +25,7 @@ export async function retryAdminNinetyoneOrder(orderId) {
}
}
/** @param {number | string} orderId */
/** @param {{ reason?: string }} [payload] */
export async function failAdminNinetyoneOrder(orderId, payload = {}) {
export async function failAdminNinetyoneOrder(orderId: number | string, payload: JsonObject = {}) {
const result = await failOpen91Order(orderId, payload.reason)
return {
orderId: Number(result.order?.id || 0),
+11
View File
@@ -607,6 +607,17 @@
- `npm run typecheck`
- `npm run build`
- `npm test` 共 139 个用例通过
144. 后台平台配置薄服务包装层迁移到 `.ts`
- `src/services/admin/platform-config/agiso-service.ts`
- `src/services/admin/platform-config/kuaishou-eticket-service.ts`
- `src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.ts`
- `src/services/admin/platform-config/ninetyone-service.ts`
145. Agiso 店铺配置、快手电子券配置 / 查询 / 核销、快手 Cloud 履约配置、91 卡券后台订单操作入口已进入 TS 编译链路;payload / query 补齐动态对象类型
146. Docker 内验证通过:
- `src/services/admin/platform-config/*.test.js` 共 37 个用例通过
- `npm run typecheck`
- `npm run build`
- `npm test` 共 139 个用例通过
## 下一步建议