增加发货记录查询功能-1
This commit is contained in:
@@ -28,6 +28,7 @@ import {
|
||||
useCloudtentaclesSku,
|
||||
} from "../../../platforms/cloudtentacles/catalog-service.js";
|
||||
import { getCloudtentaclesKnapsack } from "../../../platforms/cloudtentacles/knapsack-service.js";
|
||||
import { listCloudtentaclesDeliveryRecords } from "../../../platforms/cloudtentacles/record-service.js";
|
||||
import {
|
||||
appointCloudtentaclesVirtualNumber,
|
||||
backCloudtentaclesVirtualNumber,
|
||||
@@ -59,6 +60,7 @@ import { createHttpError } from "../../../../utils/http.js";
|
||||
|
||||
import type {
|
||||
AdminCloudtentaclesCatalogQueryInput,
|
||||
AdminCloudtentaclesDeliveryRecordQueryInput,
|
||||
AdminCloudtentaclesFullFlowInput,
|
||||
AdminCloudtentaclesSendSmsCodeInput,
|
||||
AdminCloudtentaclesSkuBuyInput,
|
||||
@@ -93,6 +95,26 @@ export function listAdminCloudtentaclesSources() {
|
||||
};
|
||||
}
|
||||
|
||||
export function listAdminCloudtentaclesRecordSources() {
|
||||
const list = listCloudtentaclesSources();
|
||||
const sessions = getAllCloudtentaclesSessionStates();
|
||||
const sources = Array.isArray(list.sources) ? list.sources : [];
|
||||
|
||||
return {
|
||||
sources: sources.map((source) => {
|
||||
const key = String(source.key || "").trim();
|
||||
const session = (sessions.sessions?.[key] || {}) as JsonObject;
|
||||
return {
|
||||
key,
|
||||
label: String(source.label || source.username || key || "未命名账号").trim(),
|
||||
enabled: source.enabled !== false,
|
||||
hasToken: Boolean(String(session.token || "").trim()),
|
||||
loggedInAt: String(session.loggedInAt || "").trim(),
|
||||
};
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
export function updateAdminCloudtentaclesSourceConfig(
|
||||
payload: AdminCloudtentaclesSourceConfigInput = {}
|
||||
) {
|
||||
@@ -286,6 +308,57 @@ export async function getAdminCloudtentaclesKnapsack(
|
||||
);
|
||||
}
|
||||
|
||||
export async function listAdminCloudtentaclesDeliveryRecords(
|
||||
payload: AdminCloudtentaclesDeliveryRecordQueryInput = {}
|
||||
) {
|
||||
const context = resolveAdminCloudtentaclesSessionPayload(payload);
|
||||
const query = {
|
||||
...context,
|
||||
...pickDefined({
|
||||
page: payload.page,
|
||||
size: payload.size,
|
||||
startDate: payload.startDate,
|
||||
endDate: payload.endDate,
|
||||
recordCode: payload.recordCode,
|
||||
}),
|
||||
};
|
||||
const [records, skuList] = await Promise.all([
|
||||
listCloudtentaclesDeliveryRecords(query),
|
||||
listCloudtentaclesSku(context),
|
||||
]);
|
||||
const skuImageByName = new Map<string, {
|
||||
skuId: number;
|
||||
skuName: string;
|
||||
skuImage: string;
|
||||
}>();
|
||||
for (const sku of Array.isArray(skuList.items) ? skuList.items : []) {
|
||||
const name = normalizeSkuName(sku.name);
|
||||
const skuImage = String(sku.image || "").trim();
|
||||
if (!name || !skuImage) {
|
||||
continue;
|
||||
}
|
||||
|
||||
skuImageByName.set(name, {
|
||||
skuId: Number(sku.id || 0),
|
||||
skuName: String(sku.name || "").trim(),
|
||||
skuImage,
|
||||
});
|
||||
}
|
||||
|
||||
const recordItems: JsonObject[] = Array.isArray(records.items) ? records.items : [];
|
||||
return {
|
||||
...records,
|
||||
items: recordItems.map((record) => ({
|
||||
...record,
|
||||
...(skuImageByName.get(normalizeSkuName(record.name)) || {
|
||||
skuId: 0,
|
||||
skuName: "",
|
||||
skuImage: "",
|
||||
}),
|
||||
})),
|
||||
};
|
||||
}
|
||||
|
||||
export async function listAdminCloudtentaclesVirtualNumbers(
|
||||
payload: AdminCloudtentaclesVirtualNumberInput = {}
|
||||
) {
|
||||
@@ -373,3 +446,13 @@ export async function runAdminCloudtentaclesFullFlow(
|
||||
vnKey: payload.vnKey,
|
||||
});
|
||||
}
|
||||
|
||||
function pickDefined(values: JsonObject = {}) {
|
||||
return Object.fromEntries(
|
||||
Object.entries(values).filter(([, value]) => typeof value !== "undefined")
|
||||
);
|
||||
}
|
||||
|
||||
function normalizeSkuName(value: unknown) {
|
||||
return String(value || "").trim().replace(/\s+/g, "").toLowerCase();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user