Files
one-pipe-system/src/api/modules/packageSilenceValidation.ts
luo f2614d8efb
All checks were successful
构建并部署前端到测试环境 / deploy (push) Successful in 54s
fix: some
2026-10-28 15:18:44 +08:00

33 lines
1.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { PackageManageService } from './packageManage'
import {
assertSilenceResponse,
validateSilenceExpiryOverride
} from '@/utils/business/packageSilence'
// 复用既有套餐详情,不假设授权候选已携带新字段;全部校验完成后才写。
export async function ensurePackageSilenceOverrides(
items: { packageId: number | undefined; override?: string | null }[]
) {
const checks = items.filter((item) => item.override && item.override !== 'default')
const packages = new Map<
number,
Awaited<ReturnType<typeof PackageManageService.getPackageDetail>>['data']
>()
for (let index = 0; index < checks.length; index += 4) {
await Promise.all(
checks.slice(index, index + 4).map(async (item) => {
if (!Number.isSafeInteger(item.packageId) || Number(item.packageId) < 1)
throw new Error('缺少套餐 ID,无法校验生效条件')
const id = item.packageId!
let pkg = packages.get(id)
if (!pkg) {
const response = assertSilenceResponse(await PackageManageService.getPackageDetail(id))
pkg = response.data
packages.set(id, pkg)
}
validateSilenceExpiryOverride(pkg, item.override)
})
)
}
}