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

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 { query } from '../../../db/client.js'
import { import {
getAgisoMessagingDefaults, getAgisoMessagingDefaults,
@@ -14,7 +12,7 @@ import {
} from './domain.js' } from './domain.js'
import { buildAdminAgisoMessagingSavePayload } from './writes.js' import { buildAdminAgisoMessagingSavePayload } from './writes.js'
/** @typedef {import('../../../types/admin-write-inputs.js').AdminAgisoShopConfigSaveInput} AdminAgisoShopConfigSaveInput */ type JsonObject = Record<string, any>
export async function getAdminAgisoShopConfigs() { export async function getAdminAgisoShopConfigs() {
const configMap = getAgisoShopConfigMap() const configMap = getAgisoShopConfigMap()
@@ -51,8 +49,7 @@ export async function getAdminAgisoShopConfigs() {
} }
} }
/** @param {AdminAgisoShopConfigSaveInput} [payload] */ export function updateAdminAgisoShopConfigs(payload: JsonObject = {}) {
export function updateAdminAgisoShopConfigs(payload = /** @type {AdminAgisoShopConfigSaveInput} */ ({})) {
const saved = saveAgisoMessagingConfig(buildAdminAgisoMessagingSavePayload(payload, { const saved = saveAgisoMessagingConfig(buildAdminAgisoMessagingSavePayload(payload, {
currentDefaults: getAgisoMessagingDefaults(), currentDefaults: getAgisoMessagingDefaults(),
currentMap: getAgisoShopConfigMap(), currentMap: getAgisoShopConfigMap(),
@@ -1,5 +1,3 @@
// @ts-check
import { import {
getKuaishouCloudFulfillmentConfig, getKuaishouCloudFulfillmentConfig,
getKuaishouCloudFulfillmentFilePath, getKuaishouCloudFulfillmentFilePath,
@@ -8,7 +6,7 @@ import {
import { syncConfiguredFulfillmentBindings } from '../../bootstrap/fulfillment-bootstrap-service.js' import { syncConfiguredFulfillmentBindings } from '../../bootstrap/fulfillment-bootstrap-service.js'
import { mapAdminKuaishouCloudFulfillmentSource } from './mappers.js' import { mapAdminKuaishouCloudFulfillmentSource } from './mappers.js'
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouCloudFulfillmentConfigInput} AdminKuaishouCloudFulfillmentConfigInput */ type JsonObject = Record<string, any>
export function getAdminKuaishouCloudFulfillmentConfig() { export function getAdminKuaishouCloudFulfillmentConfig() {
const config = getKuaishouCloudFulfillmentConfig() const config = getKuaishouCloudFulfillmentConfig()
@@ -21,7 +19,7 @@ export function getAdminKuaishouCloudFulfillmentConfig() {
/** @param {AdminKuaishouCloudFulfillmentConfigInput} [payload] */ /** @param {AdminKuaishouCloudFulfillmentConfigInput} [payload] */
export async function updateAdminKuaishouCloudFulfillmentConfig( export async function updateAdminKuaishouCloudFulfillmentConfig(
payload = /** @type {AdminKuaishouCloudFulfillmentConfigInput} */ ({}), payload: JsonObject = {},
) { ) {
const saved = saveKuaishouCloudFulfillmentConfig({ const saved = saveKuaishouCloudFulfillmentConfig({
enabled: payload.enabled !== false, enabled: payload.enabled !== false,
@@ -1,5 +1,3 @@
// @ts-check
import { import {
consumeKuaishouEticket, consumeKuaishouEticket,
queryKuaishouEticketConsumeDetail, queryKuaishouEticketConsumeDetail,
@@ -16,12 +14,9 @@ import { queryKuaishouEticketStableInfo } from '../../platforms/kuaishou-eticket
import { resolveKuaishouEticketAdminContext } from './context.js' import { resolveKuaishouEticketAdminContext } from './context.js'
import { mapAdminKuaishouEticketSourceConfig } from './mappers.js' import { mapAdminKuaishouEticketSourceConfig } from './mappers.js'
/** @typedef {import('../../../types/admin-write-inputs.js').AdminKuaishouEticketSourceConfigInput} AdminKuaishouEticketSourceConfigInput */ type JsonObject = Record<string, any>
/** @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 */
function resolveAdminKuaishouEticketContext(payload = {}) { function resolveAdminKuaishouEticketContext(payload: JsonObject = {}) {
return resolveKuaishouEticketAdminContext(payload, { return resolveKuaishouEticketAdminContext(payload, {
savedSource: getKuaishouEticketSourceConfig(), savedSource: getKuaishouEticketSourceConfig(),
findShopConfig: findKuaishouEticketShopConfig, findShopConfig: findKuaishouEticketShopConfig,
@@ -38,8 +33,7 @@ export function getAdminKuaishouEticketSourceConfig() {
} }
} }
/** @param {AdminKuaishouEticketSourceConfigInput} [payload] */ export function updateAdminKuaishouEticketSourceConfig(payload: JsonObject = {}) {
export function updateAdminKuaishouEticketSourceConfig(payload = /** @type {AdminKuaishouEticketSourceConfigInput} */ ({})) {
const saved = saveKuaishouEticketSourceConfig({ const saved = saveKuaishouEticketSourceConfig({
enabled: payload.enabled !== false, enabled: payload.enabled !== false,
baseUrl: String(payload.baseUrl || '').trim() || 'https://s.kwaixiaodian.com', 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: JsonObject = {}) {
export async function queryAdminKuaishouEticketDetail(payload = /** @type {AdminKuaishouEticketDetailQueryInput} */ ({})) {
const context = resolveAdminKuaishouEticketContext(payload) const context = resolveAdminKuaishouEticketContext(payload)
return queryKuaishouEticketConsumeDetail({ return queryKuaishouEticketConsumeDetail({
@@ -63,8 +56,7 @@ export async function queryAdminKuaishouEticketDetail(payload = /** @type {Admin
}) })
} }
/** @param {AdminKuaishouEticketShopInfoInput} [payload] */ export async function queryAdminKuaishouEticketShopInfo(payload: JsonObject = {}) {
export async function queryAdminKuaishouEticketShopInfo(payload = /** @type {AdminKuaishouEticketShopInfoInput} */ ({})) {
const context = resolveAdminKuaishouEticketContext(payload) const context = resolveAdminKuaishouEticketContext(payload)
return queryKuaishouEticketStableInfo({ return queryKuaishouEticketStableInfo({
@@ -73,8 +65,7 @@ export async function queryAdminKuaishouEticketShopInfo(payload = /** @type {Adm
}) })
} }
/** @param {AdminKuaishouEticketConsumeInput} [payload] */ export async function consumeAdminKuaishouEticket(payload: JsonObject = {}) {
export async function consumeAdminKuaishouEticket(payload = /** @type {AdminKuaishouEticketConsumeInput} */ ({})) {
const context = resolveAdminKuaishouEticketContext(payload) const context = resolveAdminKuaishouEticketContext(payload)
return consumeKuaishouEticket({ return consumeKuaishouEticket({
@@ -1,13 +1,12 @@
// @ts-check
import { import {
failOpen91Order, failOpen91Order,
listOpen91Orders, listOpen91Orders,
retryOpen91Order, retryOpen91Order,
} from '../../platforms/ninetyone/order-service.js' } from '../../platforms/ninetyone/order-service.js'
/** @param {{ page?: number | string, pageSize?: number | string, status?: string }} [query] */ type JsonObject = Record<string, any>
export async function getAdminNinetyoneOrders(query = {}) {
export async function getAdminNinetyoneOrders(query: JsonObject = {}) {
return listOpen91Orders({ return listOpen91Orders({
page: Number(query.page || 1) || 1, page: Number(query.page || 1) || 1,
pageSize: Number(query.pageSize || 20) || 20, pageSize: Number(query.pageSize || 20) || 20,
@@ -15,8 +14,7 @@ export async function getAdminNinetyoneOrders(query = {}) {
}) })
} }
/** @param {number | string} orderId */ export async function retryAdminNinetyoneOrder(orderId: number | string) {
export async function retryAdminNinetyoneOrder(orderId) {
const result = await retryOpen91Order(orderId) const result = await retryOpen91Order(orderId)
return { return {
orderId: Number(result.order?.id || 0), orderId: Number(result.order?.id || 0),
@@ -27,9 +25,7 @@ export async function retryAdminNinetyoneOrder(orderId) {
} }
} }
/** @param {number | string} orderId */ export async function failAdminNinetyoneOrder(orderId: number | string, payload: JsonObject = {}) {
/** @param {{ reason?: string }} [payload] */
export async function failAdminNinetyoneOrder(orderId, payload = {}) {
const result = await failOpen91Order(orderId, payload.reason) const result = await failOpen91Order(orderId, payload.reason)
return { return {
orderId: Number(result.order?.id || 0), orderId: Number(result.order?.id || 0),
+11
View File
@@ -607,6 +607,17 @@
- `npm run typecheck` - `npm run typecheck`
- `npm run build` - `npm run build`
- `npm test` 共 139 个用例通过 - `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 个用例通过
## 下一步建议 ## 下一步建议