适配框架为集群环境的变动
This commit is contained in:
parent
b1f0eba288
commit
70f1d01fd9
|
|
@ -1,7 +1,7 @@
|
|||
import { Style } from '../../../../types/Style';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../../oak-app-domain").EntityDict, keyof import("../../../../oak-app-domain").EntityDict, false, {
|
||||
style: Style;
|
||||
entity: "application" | "platform" | "system";
|
||||
entity: "application" | "system" | "platform";
|
||||
entityId: string;
|
||||
name: string;
|
||||
}>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Config } from '../../../types/Config';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, keyof import("../../../oak-app-domain").EntityDict, false, {
|
||||
config: Config;
|
||||
entity: "platform" | "system";
|
||||
entity: "system" | "platform";
|
||||
name: string;
|
||||
entityId: string;
|
||||
}>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
type?: ButtonProps['type'] | AmButtonProps['type'];
|
||||
executeText?: string | undefined;
|
||||
buttonProps?: (ButtonProps & {
|
||||
color?: "success" | "default" | "warning" | "primary" | "danger" | undefined;
|
||||
color?: "default" | "success" | "primary" | "warning" | "danger" | undefined;
|
||||
fill?: "none" | "solid" | "outline" | undefined;
|
||||
size?: "small" | "middle" | "large" | "mini" | undefined;
|
||||
size?: "small" | "large" | "middle" | "mini" | undefined;
|
||||
block?: boolean | undefined;
|
||||
loading?: boolean | "auto" | undefined;
|
||||
loadingText?: string | undefined;
|
||||
|
|
@ -24,7 +24,7 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
type?: "button" | "reset" | "submit" | undefined;
|
||||
shape?: "default" | "rounded" | "rectangular" | undefined;
|
||||
children?: import("react").ReactNode;
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseDown" | "onMouseUp" | "onTouchStart" | "onTouchEnd"> & {
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseUp" | "onMouseDown" | "onTouchStart" | "onTouchEnd"> & {
|
||||
className?: string | undefined;
|
||||
style?: (import("react").CSSProperties & Partial<Record<"--text-color" | "--background-color" | "--border-radius" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
|
||||
tabIndex?: number | undefined;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { EntityDict } from '../../../oak-app-domain';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, keyof EntityDict, false, {
|
||||
type: "bind" | "login";
|
||||
type: "login" | "bind";
|
||||
url: string;
|
||||
}>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import { GAD, GFD } from './types/Page';
|
|||
import type GeneralAspectDict from './aspects/AspectDict';
|
||||
import { AppType } from './oak-app-domain/Application/Schema';
|
||||
import { InitializeOptions } from 'oak-frontend-base';
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FrontCxt extends FrontendRuntimeContext<ED, Cxt, AD & GAD<ED, Cxt>>>(type: AppType, domain: string, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, backendContextBuilder: (contextStr?: string) => (store: AsyncRowStore<ED, Cxt>) => Promise<Cxt>, aspectDict: AD, triggers: Array<Trigger<ED, keyof ED, Cxt>>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, watchers: Array<Watcher<ED, keyof ED, Cxt>>, timers: Array<Timer<ED, Cxt>>, startRoutines: Array<Routine<ED, Cxt>>, initialData: {
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FrontCxt extends FrontendRuntimeContext<ED, Cxt, AD & GAD<ED, Cxt>>>(type: AppType, domain: string, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, backendContextBuilder: (contextStr?: string) => (store: AsyncRowStore<ED, Cxt>) => Promise<Cxt>, aspectDict: AD, triggers: Array<Trigger<ED, keyof ED, Cxt>>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, watchers: Array<Watcher<ED, keyof ED, Cxt>>, timers: Array<Timer<ED, keyof ED, Cxt>>, startRoutines: Array<Routine<ED, keyof ED, Cxt>>, initialData: {
|
||||
[T in keyof ED]?: Array<ED[T]['OpSchema']>;
|
||||
}, option: InitializeOptions<ED, Cxt>): {
|
||||
features: GFD<ED, Cxt, FrontCxt, AD & GeneralAspectDict<ED, Cxt> & import("oak-common-aspect").CommonAspectDict<ED, Cxt>>;
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@ import { Routine } from 'oak-domain/lib/types/Timer';
|
|||
import { EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDict as BaseEntityDict } from '../oak-app-domain';
|
||||
import { BackendRuntimeContext } from '../context/BackendRuntimeContext';
|
||||
declare const startRoutines: Array<Routine<EntityDict & BaseEntityDict, BackendRuntimeContext<EntityDict & BaseEntityDict>>>;
|
||||
declare const startRoutines: Array<Routine<EntityDict & BaseEntityDict, keyof EntityDict & BaseEntityDict, BackendRuntimeContext<EntityDict & BaseEntityDict>>>;
|
||||
export default startRoutines;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ import { rewriteOperation, rewriteSelection } from '../utils/selectionRewriter';
|
|||
const startRoutines = [
|
||||
{
|
||||
name: '注入对合并的user的selection的改写',
|
||||
fn: async (context) => {
|
||||
routine: async (context) => {
|
||||
context.rowStore.registerSelectionRewriter(rewriteSelection);
|
||||
context.rowStore.registerOperationRewriter(rewriteOperation);
|
||||
return '注入成功';
|
||||
return {};
|
||||
},
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -39,8 +39,18 @@ const triggers = [
|
|||
strict: 'makeSure',
|
||||
entity: 'extraFile',
|
||||
action: 'remove',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
let number = 0;
|
||||
const rows = await context.select('extraFile', {
|
||||
data: {
|
||||
id: 1,
|
||||
origin: 1,
|
||||
objectId: 1,
|
||||
},
|
||||
filter: {
|
||||
id: { $in: ids },
|
||||
},
|
||||
}, {});
|
||||
for (const extraFile of rows) {
|
||||
const { origin, objectId } = extraFile;
|
||||
// 用objectId来去重,只有当没有还有效的objectId方可删除
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "account", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "account", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -238,10 +238,23 @@ const triggers = [
|
|||
action: 'create',
|
||||
when: 'commit',
|
||||
strict: 'takeEasy',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
const closeRootMode = context.openRootMode();
|
||||
try {
|
||||
for (const row of rows) {
|
||||
for (const id of ids) {
|
||||
const [row] = await context.select('notification', {
|
||||
data: {
|
||||
id: 1,
|
||||
data: 1,
|
||||
templateId: 1,
|
||||
channel: 1,
|
||||
messageSystemId: 1,
|
||||
data1: 1,
|
||||
},
|
||||
filter: {
|
||||
id,
|
||||
},
|
||||
}, {});
|
||||
await sendNotification(row, context);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,11 +53,10 @@ const triggers = [
|
|||
action: 'create',
|
||||
when: 'commit',
|
||||
strict: 'takeEasy',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
const closeRootMode = context.openRootMode();
|
||||
try {
|
||||
for (const row of rows) {
|
||||
const { id } = row;
|
||||
for (const id of ids) {
|
||||
const [currentSessionMessage] = await context.select('sessionMessage', {
|
||||
data: {
|
||||
id: 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDict } from '../oak-app-domain';
|
||||
import { StorageSchema } from 'oak-domain/lib/types';
|
||||
export declare function rewriteSelection<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, selection: ED[T]['Selection']): void;
|
||||
export declare function rewriteSelection<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, selection: ED[T]['Selection'] | ED[T]['Aggregation']): void;
|
||||
export declare function rewriteOperation<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, operation: ED[T]['Operation']): void;
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const checkers: (import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "token", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "mobile", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "message", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "parasite", import("..").RuntimeCxt>)[];
|
||||
declare const checkers: (import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "mobile", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "token", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "message", import("..").RuntimeCxt> | import("oak-domain").Checker<import("../oak-app-domain").EntityDict, "parasite", import("..").RuntimeCxt>)[];
|
||||
export default checkers;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import { GAD, GFD } from './types/Page';
|
|||
import type GeneralAspectDict from './aspects/AspectDict';
|
||||
import { AppType } from './oak-app-domain/Application/Schema';
|
||||
import { InitializeOptions } from 'oak-frontend-base';
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FrontCxt extends FrontendRuntimeContext<ED, Cxt, AD & GAD<ED, Cxt>>>(type: AppType, domain: string, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, backendContextBuilder: (contextStr?: string) => (store: AsyncRowStore<ED, Cxt>) => Promise<Cxt>, aspectDict: AD, triggers: Array<Trigger<ED, keyof ED, Cxt>>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, watchers: Array<Watcher<ED, keyof ED, Cxt>>, timers: Array<Timer<ED, Cxt>>, startRoutines: Array<Routine<ED, Cxt>>, initialData: {
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FrontCxt extends FrontendRuntimeContext<ED, Cxt, AD & GAD<ED, Cxt>>>(type: AppType, domain: string, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, backendContextBuilder: (contextStr?: string) => (store: AsyncRowStore<ED, Cxt>) => Promise<Cxt>, aspectDict: AD, triggers: Array<Trigger<ED, keyof ED, Cxt>>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, watchers: Array<Watcher<ED, keyof ED, Cxt>>, timers: Array<Timer<ED, keyof ED, Cxt>>, startRoutines: Array<Routine<ED, keyof ED, Cxt>>, initialData: {
|
||||
[T in keyof ED]?: Array<ED[T]['OpSchema']>;
|
||||
}, option: InitializeOptions<ED, Cxt>): {
|
||||
features: GFD<ED, Cxt, FrontCxt, AD & GeneralAspectDict<ED, Cxt> & import("oak-common-aspect").CommonAspectDict<ED, Cxt>>;
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@ import { Routine } from 'oak-domain/lib/types/Timer';
|
|||
import { EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDict as BaseEntityDict } from '../oak-app-domain';
|
||||
import { BackendRuntimeContext } from '../context/BackendRuntimeContext';
|
||||
declare const startRoutines: Array<Routine<EntityDict & BaseEntityDict, BackendRuntimeContext<EntityDict & BaseEntityDict>>>;
|
||||
declare const startRoutines: Array<Routine<EntityDict & BaseEntityDict, keyof EntityDict & BaseEntityDict, BackendRuntimeContext<EntityDict & BaseEntityDict>>>;
|
||||
export default startRoutines;
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ const selectionRewriter_1 = require("../utils/selectionRewriter");
|
|||
const startRoutines = [
|
||||
{
|
||||
name: '注入对合并的user的selection的改写',
|
||||
fn: async (context) => {
|
||||
routine: async (context) => {
|
||||
context.rowStore.registerSelectionRewriter(selectionRewriter_1.rewriteSelection);
|
||||
context.rowStore.registerOperationRewriter(selectionRewriter_1.rewriteOperation);
|
||||
return '注入成功';
|
||||
return {};
|
||||
},
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -41,8 +41,18 @@ const triggers = [
|
|||
strict: 'makeSure',
|
||||
entity: 'extraFile',
|
||||
action: 'remove',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
let number = 0;
|
||||
const rows = await context.select('extraFile', {
|
||||
data: {
|
||||
id: 1,
|
||||
origin: 1,
|
||||
objectId: 1,
|
||||
},
|
||||
filter: {
|
||||
id: { $in: ids },
|
||||
},
|
||||
}, {});
|
||||
for (const extraFile of rows) {
|
||||
const { origin, objectId } = extraFile;
|
||||
// 用objectId来去重,只有当没有还有效的objectId方可删除
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "account", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "account", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>> | import("oak-domain").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -240,10 +240,23 @@ const triggers = [
|
|||
action: 'create',
|
||||
when: 'commit',
|
||||
strict: 'takeEasy',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
const closeRootMode = context.openRootMode();
|
||||
try {
|
||||
for (const row of rows) {
|
||||
for (const id of ids) {
|
||||
const [row] = await context.select('notification', {
|
||||
data: {
|
||||
id: 1,
|
||||
data: 1,
|
||||
templateId: 1,
|
||||
channel: 1,
|
||||
messageSystemId: 1,
|
||||
data1: 1,
|
||||
},
|
||||
filter: {
|
||||
id,
|
||||
},
|
||||
}, {});
|
||||
await sendNotification(row, context);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,11 +55,10 @@ const triggers = [
|
|||
action: 'create',
|
||||
when: 'commit',
|
||||
strict: 'takeEasy',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
const closeRootMode = context.openRootMode();
|
||||
try {
|
||||
for (const row of rows) {
|
||||
const { id } = row;
|
||||
for (const id of ids) {
|
||||
const [currentSessionMessage] = await context.select('sessionMessage', {
|
||||
data: {
|
||||
id: 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDict } from '../oak-app-domain';
|
||||
import { StorageSchema } from 'oak-domain/lib/types';
|
||||
export declare function rewriteSelection<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, selection: ED[T]['Selection']): void;
|
||||
export declare function rewriteSelection<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, selection: ED[T]['Selection'] | ED[T]['Aggregation']): void;
|
||||
export declare function rewriteOperation<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, operation: ED[T]['Operation']): void;
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ export function initialize<
|
|||
triggers: Array<Trigger<ED, keyof ED, Cxt>>,
|
||||
checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>,
|
||||
watchers: Array<Watcher<ED, keyof ED, Cxt>>,
|
||||
timers: Array<Timer<ED, Cxt>>,
|
||||
startRoutines: Array<Routine<ED, Cxt>>,
|
||||
timers: Array<Timer<ED, keyof ED, Cxt>>,
|
||||
startRoutines: Array<Routine<ED, keyof ED, Cxt>>,
|
||||
initialData: {
|
||||
[T in keyof ED]?: Array<ED[T]['OpSchema']>;
|
||||
},
|
||||
|
|
@ -61,7 +61,7 @@ export function initialize<
|
|||
const checkers2 = (generalCheckers as Array<Checker<ED, keyof ED, FrontCxt | Cxt>>).concat(checkers || []);
|
||||
const triggers2 = (generalTriggers as Array<Trigger<ED, keyof ED, Cxt>>).concat(triggers || []);
|
||||
const watchers2 = (generalWatchers as Array<Watcher<ED, keyof ED, Cxt>>).concat(watchers || []);
|
||||
const startRoutines2 = (generalStartRoutines as Array<Routine<ED, Cxt>>).concat(startRoutines || []);
|
||||
const startRoutines2 = (generalStartRoutines as Array<Routine<ED, keyof ED, Cxt>>).concat(startRoutines || []);
|
||||
|
||||
const data2 = Object.assign({}, generalData, initialData);
|
||||
if (initialData) {
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ import { BackendRuntimeContext } from '../context/BackendRuntimeContext';
|
|||
|
||||
import { rewriteOperation, rewriteSelection } from '../utils/selectionRewriter';
|
||||
|
||||
const startRoutines: Array<Routine<EntityDict & BaseEntityDict, BackendRuntimeContext<EntityDict & BaseEntityDict>>> = [
|
||||
const startRoutines: Array<Routine<EntityDict & BaseEntityDict, keyof EntityDict & BaseEntityDict, BackendRuntimeContext<EntityDict & BaseEntityDict>>> = [
|
||||
{
|
||||
name: '注入对合并的user的selection的改写',
|
||||
fn: async (context) => {
|
||||
routine: async (context) => {
|
||||
context.rowStore.registerSelectionRewriter(rewriteSelection);
|
||||
context.rowStore.registerOperationRewriter(rewriteOperation);
|
||||
return '注入成功';
|
||||
return {};
|
||||
},
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -48,8 +48,18 @@ const triggers: Trigger<EntityDict, 'extraFile', BackendRuntimeContext<EntityDic
|
|||
strict: 'makeSure',
|
||||
entity: 'extraFile',
|
||||
action: 'remove',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
let number = 0;
|
||||
const rows = await context.select('extraFile', {
|
||||
data: {
|
||||
id: 1,
|
||||
origin: 1,
|
||||
objectId: 1,
|
||||
},
|
||||
filter: {
|
||||
id: { $in: ids },
|
||||
},
|
||||
}, {});
|
||||
for (const extraFile of rows) {
|
||||
const { origin, objectId } = extraFile;
|
||||
|
||||
|
|
|
|||
|
|
@ -276,11 +276,24 @@ const triggers: Trigger<EntityDict, 'notification', BackendRuntimeContext<Entity
|
|||
action: 'create',
|
||||
when: 'commit',
|
||||
strict: 'takeEasy',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
const closeRootMode = context.openRootMode();
|
||||
try {
|
||||
for (const row of rows) {
|
||||
await sendNotification(row, context);
|
||||
for (const id of ids) {
|
||||
const [row] = await context.select('notification', {
|
||||
data: {
|
||||
id: 1,
|
||||
data: 1,
|
||||
templateId: 1,
|
||||
channel: 1,
|
||||
messageSystemId: 1,
|
||||
data1: 1,
|
||||
},
|
||||
filter: {
|
||||
id,
|
||||
},
|
||||
}, {});
|
||||
await sendNotification(row as EntityDict['notification']['OpSchema'], context);
|
||||
}
|
||||
} catch (err) {
|
||||
closeRootMode();
|
||||
|
|
|
|||
|
|
@ -85,12 +85,10 @@ const triggers: Trigger<
|
|||
action: 'create',
|
||||
when: 'commit',
|
||||
strict: 'takeEasy',
|
||||
fn: async ({ rows }, context) => {
|
||||
fn: async ({ ids }, context) => {
|
||||
const closeRootMode = context.openRootMode();
|
||||
try {
|
||||
for (const row of rows) {
|
||||
const { id } = row;
|
||||
|
||||
for (const id of ids) {
|
||||
const [currentSessionMessage] = await context.select(
|
||||
'sessionMessage',
|
||||
{
|
||||
|
|
|
|||
|
|
@ -152,7 +152,11 @@ function rewriteFilter<ED extends EntityDict & BaseEntityDict, T extends keyof E
|
|||
return filter2;
|
||||
}
|
||||
|
||||
export function rewriteSelection<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(schema: StorageSchema<ED>, entity: T, selection: ED[T]['Selection']) {
|
||||
export function rewriteSelection<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(
|
||||
schema: StorageSchema<ED>,
|
||||
entity: T,
|
||||
selection: ED[T]['Selection'] | ED[T]['Aggregation']
|
||||
) {
|
||||
const { filter, data } = selection;
|
||||
if (filter && !filter['#oak-general-business--rewrited']) {
|
||||
const filter2 = rewriteFilter(schema, entity, filter as NonNullable<ED[T]['Selection']['filter']>);
|
||||
|
|
@ -163,17 +167,17 @@ export function rewriteSelection<ED extends EntityDict & BaseEntityDict, T exten
|
|||
selection.filter = filter2;
|
||||
}
|
||||
// RewriteSelection只在入口处调用一次,因此需要在这里处理一对多的projection
|
||||
const rewriteProjection = (e: keyof ED, d: ED[keyof ED]['Selection']['data']) => {
|
||||
const rewriteProjection = (e: keyof ED, d: ED[keyof ED]['Selection']['data'] | ED[keyof ED]['Aggregation']['data']) => {
|
||||
for (const attr in d) {
|
||||
const rel = judgeRelation(schema, e, attr);
|
||||
if (rel === 2) {
|
||||
rewriteProjection(attr, d[attr]);
|
||||
rewriteProjection(attr, (d as ED[keyof ED]['Selection']['data'])[attr]);
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
rewriteProjection(rel, d[attr]);
|
||||
rewriteProjection(rel, (d as ED[keyof ED]['Selection']['data'])[attr]);
|
||||
}
|
||||
else if (typeof rel === 'object' && rel instanceof Array) {
|
||||
rewriteSelection(schema, rel[0], d[attr]);
|
||||
rewriteSelection(schema, rel[0], (d as ED[keyof ED]['Selection']['data'])[attr]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue