From 104c5408d71278d84a31004742c8f3f0130b364b Mon Sep 17 00:00:00 2001 From: yml Date: Thu, 21 May 2026 16:11:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E8=BF=81=E7=A7=BB=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=85=8D=E7=BD=AE=E6=9C=8D=E5=8A=A1=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{agiso-service.js => agiso-service.ts} | 7 ++----- ... => kuaishou-cloud-fulfillment-service.ts} | 6 ++---- ...service.js => kuaishou-eticket-service.ts} | 21 ++++++------------- ...etyone-service.js => ninetyone-service.ts} | 14 +++++-------- docs/backend-typescript-migration-plan.md | 11 ++++++++++ 5 files changed, 26 insertions(+), 33 deletions(-) rename apps/backend/src/services/admin/platform-config/{agiso-service.js => agiso-service.ts} (88%) rename apps/backend/src/services/admin/platform-config/{kuaishou-cloud-fulfillment-service.js => kuaishou-cloud-fulfillment-service.ts} (82%) rename apps/backend/src/services/admin/platform-config/{kuaishou-eticket-service.js => kuaishou-eticket-service.ts} (63%) rename apps/backend/src/services/admin/platform-config/{ninetyone-service.js => ninetyone-service.ts} (72%) diff --git a/apps/backend/src/services/admin/platform-config/agiso-service.js b/apps/backend/src/services/admin/platform-config/agiso-service.ts similarity index 88% rename from apps/backend/src/services/admin/platform-config/agiso-service.js rename to apps/backend/src/services/admin/platform-config/agiso-service.ts index d839d9fc..2c7cdcd6 100644 --- a/apps/backend/src/services/admin/platform-config/agiso-service.js +++ b/apps/backend/src/services/admin/platform-config/agiso-service.ts @@ -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 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(), diff --git a/apps/backend/src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.js b/apps/backend/src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.ts similarity index 82% rename from apps/backend/src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.js rename to apps/backend/src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.ts index bd22ff48..4bdff610 100644 --- a/apps/backend/src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.js +++ b/apps/backend/src/services/admin/platform-config/kuaishou-cloud-fulfillment-service.ts @@ -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 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, diff --git a/apps/backend/src/services/admin/platform-config/kuaishou-eticket-service.js b/apps/backend/src/services/admin/platform-config/kuaishou-eticket-service.ts similarity index 63% rename from apps/backend/src/services/admin/platform-config/kuaishou-eticket-service.js rename to apps/backend/src/services/admin/platform-config/kuaishou-eticket-service.ts index 3e17f2b7..924c5d0a 100644 --- a/apps/backend/src/services/admin/platform-config/kuaishou-eticket-service.js +++ b/apps/backend/src/services/admin/platform-config/kuaishou-eticket-service.ts @@ -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 -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({ diff --git a/apps/backend/src/services/admin/platform-config/ninetyone-service.js b/apps/backend/src/services/admin/platform-config/ninetyone-service.ts similarity index 72% rename from apps/backend/src/services/admin/platform-config/ninetyone-service.js rename to apps/backend/src/services/admin/platform-config/ninetyone-service.ts index 66cfe540..461c1960 100644 --- a/apps/backend/src/services/admin/platform-config/ninetyone-service.js +++ b/apps/backend/src/services/admin/platform-config/ninetyone-service.ts @@ -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 + +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), diff --git a/docs/backend-typescript-migration-plan.md b/docs/backend-typescript-migration-plan.md index 9ee28b8c..71cfc2b1 100644 --- a/docs/backend-typescript-migration-plan.md +++ b/docs/backend-typescript-migration-plan.md @@ -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 个用例通过 ## 下一步建议