fix: 优化了查询逻辑,如果提供origin则不需要再去查询数据库
This commit is contained in:
parent
f4c80b052c
commit
859d09cf13
|
|
@ -7,6 +7,7 @@ import { RemoveTrigger } from 'oak-domain/lib/types/Trigger';
|
|||
import { BRC } from '../types/RuntimeCxt';
|
||||
import { applicationProjection } from '../types/Projection';
|
||||
import assert from 'assert';
|
||||
import { CosOrigin } from '../types/Config';
|
||||
|
||||
const triggers: Trigger<EntityDict, 'extraFile', BRC<EntityDict>>[] = [
|
||||
{
|
||||
|
|
@ -17,41 +18,54 @@ const triggers: Trigger<EntityDict, 'extraFile', BRC<EntityDict>>[] = [
|
|||
fn: async ({ operation }, context) => {
|
||||
const { data } = operation;
|
||||
|
||||
const [application] = await context.select("application", {
|
||||
data: {
|
||||
config: {
|
||||
cos: {
|
||||
defaultOrigin: 1,
|
||||
}
|
||||
},
|
||||
system: {
|
||||
let cachedOrigin: CosOrigin | undefined = undefined;
|
||||
|
||||
const getCosOrigin = async (): Promise<CosOrigin | undefined> => {
|
||||
if (cachedOrigin) {
|
||||
return cachedOrigin;
|
||||
}
|
||||
|
||||
const [application] = await context.select("application", {
|
||||
data: {
|
||||
config: {
|
||||
Cos: {
|
||||
cos: {
|
||||
defaultOrigin: 1,
|
||||
}
|
||||
},
|
||||
platform: {
|
||||
system: {
|
||||
config: {
|
||||
Cos: {
|
||||
defaultOrigin: 1,
|
||||
}
|
||||
},
|
||||
platform: {
|
||||
config: {
|
||||
Cos: {
|
||||
defaultOrigin: 1,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
filter: {
|
||||
id: context.getApplicationId()!,
|
||||
},
|
||||
}, {});
|
||||
},
|
||||
filter: {
|
||||
id: context.getApplicationId()!,
|
||||
},
|
||||
}, {});
|
||||
|
||||
assert(application, `找不到 当前应用程序`);
|
||||
|
||||
cachedOrigin = application.config?.cos?.defaultOrigin ||
|
||||
application.system?.config?.Cos?.defaultOrigin ||
|
||||
application.system?.platform?.config?.Cos?.defaultOrigin;
|
||||
|
||||
return cachedOrigin;
|
||||
}
|
||||
|
||||
assert(application, `找不到 当前应用程序`);
|
||||
|
||||
const formMeta = async (data: EntityDict['extraFile']['OpSchema']): Promise<void> => {
|
||||
|
||||
const configOrigin = data.origin ||
|
||||
application!.config?.cos?.defaultOrigin ||
|
||||
application!.system?.config?.Cos?.defaultOrigin ||
|
||||
application!.system?.platform?.config?.Cos?.defaultOrigin;
|
||||
// 如果提供了就用提供的origin,否则尝试从应用程序、系统配置、平台配置中获取默认的Cos源
|
||||
const configOrigin = data.origin || await getCosOrigin();
|
||||
|
||||
assert(configOrigin, `extraFile的origin未指定,且应用程序、系统配置、平台配置中也没有默认的Cos源,请检查`);
|
||||
|
||||
|
|
@ -115,8 +129,8 @@ const triggers: Trigger<EntityDict, 'extraFile', BRC<EntityDict>>[] = [
|
|||
},
|
||||
}, {});
|
||||
if (count === 0) {
|
||||
const uploader = getCosBackend(origin!);
|
||||
const application2 = context.getApplication(true) || application;
|
||||
const uploader = getCosBackend(origin!);
|
||||
const application2 = context.getApplication(true) || application;
|
||||
await uploader.removeFile(
|
||||
application2 as EntityDict['application']['Schema'],
|
||||
extraFile as EntityDict['extraFile']['OpSchema']
|
||||
|
|
|
|||
Loading…
Reference in New Issue