build
This commit is contained in:
parent
540f6a6783
commit
ec70479986
|
|
@ -12,6 +12,7 @@ import { createSession } from './session';
|
|||
import { getCurrentMenu, getMenu, createMenu, createConditionalMenu, deleteConditionalMenu, deleteMenu } from './wechatMenu';
|
||||
import { createTag, getTags, editTag, deleteTag, syncTag, oneKeySync } from './wechatPublicTag';
|
||||
import { getTagUsers, batchtagging, batchuntagging, getUserTags, getUsers, tagging, syncToLocale, syncToWechat } from './userWechatPublicTag';
|
||||
import { wechatMpJump } from './wechatMpJump';
|
||||
declare const aspectDict: {
|
||||
mergeUser: typeof mergeUser;
|
||||
switchTo: typeof switchTo;
|
||||
|
|
@ -65,5 +66,6 @@ declare const aspectDict: {
|
|||
tagging: typeof tagging;
|
||||
syncToLocale: typeof syncToLocale;
|
||||
syncToWechat: typeof syncToWechat;
|
||||
wechatMpJump: typeof wechatMpJump;
|
||||
};
|
||||
export default aspectDict;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import { createSession } from './session';
|
|||
import { getCurrentMenu, getMenu, createMenu, createConditionalMenu, deleteConditionalMenu, deleteMenu, } from './wechatMenu';
|
||||
import { createTag, getTags, editTag, deleteTag, syncTag, oneKeySync, } from './wechatPublicTag';
|
||||
import { getTagUsers, batchtagging, batchuntagging, getUserTags, getUsers, tagging, syncToLocale, syncToWechat, } from './userWechatPublicTag';
|
||||
import { wechatMpJump, } from './wechatMpJump';
|
||||
const aspectDict = {
|
||||
mergeUser,
|
||||
switchTo,
|
||||
|
|
@ -65,5 +66,6 @@ const aspectDict = {
|
|||
tagging,
|
||||
syncToLocale,
|
||||
syncToWechat,
|
||||
wechatMpJump,
|
||||
};
|
||||
export default aspectDict;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
import { EntityDict } from "../oak-app-domain";
|
||||
import { BackendRuntimeContext } from "../context/BackendRuntimeContext";
|
||||
export declare function wechatMpJump<ED extends EntityDict, Cxt extends BackendRuntimeContext<ED>>(params: {
|
||||
applicationId: string;
|
||||
jump_wxa: {
|
||||
path: string;
|
||||
query: string;
|
||||
env_version: string;
|
||||
};
|
||||
expireType: number;
|
||||
expiresAt: number;
|
||||
expireInterval: number;
|
||||
}, context: Cxt): Promise<any>;
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
import { cloneDeep } from 'oak-domain/lib/utils/lodash';
|
||||
import { applicationProjection } from '../types/Projection';
|
||||
import { assert } from 'oak-domain/lib/utils/assert';
|
||||
import { WechatSDK, } from 'oak-external-sdk';
|
||||
export async function wechatMpJump(params, context) {
|
||||
const { applicationId, jump_wxa, expireType, expiresAt, expireInterval } = params;
|
||||
assert(applicationId);
|
||||
const [application] = await context.select('application', {
|
||||
data: cloneDeep(applicationProjection),
|
||||
filter: {
|
||||
id: applicationId,
|
||||
},
|
||||
}, {
|
||||
dontCollect: true,
|
||||
});
|
||||
assert(application);
|
||||
const { type, config } = application;
|
||||
assert(type === 'wechatMp');
|
||||
const config2 = config;
|
||||
const { appId, appSecret } = config2;
|
||||
const wechatInstance = WechatSDK.getInstance(appId, 'wechatMp', appSecret);
|
||||
const result = await wechatInstance.getURLScheme({ jump_wxa, expireType, expiresAt, expireInterval });
|
||||
return result;
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@ export default OakComponent({
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
goPage() {
|
||||
async goPage() {
|
||||
const { router } = this.state;
|
||||
const pathname = router?.pathname;
|
||||
const props = router?.props || {};
|
||||
|
|
@ -37,10 +37,24 @@ export default OakComponent({
|
|||
if (!pathname) {
|
||||
return;
|
||||
}
|
||||
this.redirectTo({
|
||||
url: pathname,
|
||||
...props,
|
||||
}, state, true);
|
||||
try {
|
||||
await this.redirectTo({
|
||||
url: pathname,
|
||||
...props,
|
||||
}, state, true);
|
||||
}
|
||||
catch (err) {
|
||||
if (process.env.OAK_PLATFORM === 'wechatMp') {
|
||||
if (err?.errMsg?.includes('navigateTo:fail')) {
|
||||
this.features.message.setMessage({
|
||||
type: 'warning',
|
||||
content: '该功能请去电脑端操作,网址https://www.gecomebox.com/console/',
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
import { Boolean, Datetime, Int, String } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { Schema as Message } from './Message';
|
||||
type Jump_wxa = {
|
||||
path?: string;
|
||||
query?: string;
|
||||
env_version?: string;
|
||||
};
|
||||
export interface Schema extends EntityShape {
|
||||
message?: Message;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;
|
||||
expireInterval?: Int<2>;
|
||||
expiresAt?: Datetime;
|
||||
expired: Boolean;
|
||||
}
|
||||
export {};
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
const entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '短信跳小程序',
|
||||
attr: {
|
||||
message: '消息',
|
||||
expired: '是否过期',
|
||||
jump_wxa: '目标小程序信息',
|
||||
openlink: "目标链接及参数",
|
||||
expireType: '失效类型',
|
||||
expireInterval: '到期失效的间隔',
|
||||
expiresAt: '过期时间',
|
||||
},
|
||||
},
|
||||
},
|
||||
indexes: [
|
||||
{
|
||||
name: 'index_uuid',
|
||||
attributes: [
|
||||
{
|
||||
name: 'expired',
|
||||
},
|
||||
{
|
||||
name: 'expiresAt',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
export {};
|
||||
|
|
@ -47,6 +47,7 @@ import { EntityDef as UserSystem } from "./UserSystem/Schema";
|
|||
import { EntityDef as UserWechatPublicTag } from "./UserWechatPublicTag/Schema";
|
||||
import { EntityDef as WechatLogin } from "./WechatLogin/Schema";
|
||||
import { EntityDef as WechatMenu } from "./WechatMenu/Schema";
|
||||
import { EntityDef as WechatMpJump } from "./WechatMpJump/Schema";
|
||||
import { EntityDef as WechatPublicAutoReply } from "./WechatPublicAutoReply/Schema";
|
||||
import { EntityDef as WechatPublicTag } from "./WechatPublicTag/Schema";
|
||||
import { EntityDef as WechatPublicTemplate } from "./WechatPublicTemplate/Schema";
|
||||
|
|
@ -102,6 +103,7 @@ export type EntityDict = {
|
|||
userWechatPublicTag: UserWechatPublicTag;
|
||||
wechatLogin: WechatLogin;
|
||||
wechatMenu: WechatMenu;
|
||||
wechatMpJump: WechatMpJump;
|
||||
wechatPublicAutoReply: WechatPublicAutoReply;
|
||||
wechatPublicTag: WechatPublicTag;
|
||||
wechatPublicTemplate: WechatPublicTemplate;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { Channel, Weight } from "../../types/Message";
|
|||
import * as User from "../User/Schema";
|
||||
import * as Platform from "../Platform/Schema";
|
||||
import * as MessageSystem from "../MessageSystem/Schema";
|
||||
import * as WechatMpJump from "../WechatMpJump/Schema";
|
||||
type Router = {
|
||||
pathname: string;
|
||||
props?: Record<string, any>;
|
||||
|
|
@ -56,6 +57,8 @@ export type Schema = EntityShape & {
|
|||
platform?: Platform.Schema | null;
|
||||
messageSystem$message?: Array<MessageSystem.Schema>;
|
||||
messageSystem$message$$aggr?: AggregationResult<MessageSystem.Schema>;
|
||||
wechatMpJump$message?: Array<WechatMpJump.Schema>;
|
||||
wechatMpJump$message$$aggr?: AggregationResult<WechatMpJump.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
|
|
@ -81,6 +84,7 @@ type AttrFilter = {
|
|||
iState: Q_EnumValue<IState>;
|
||||
visitState: Q_EnumValue<VisitState>;
|
||||
messageSystem$message: MessageSystem.Filter & SubQueryPredicateMetadata;
|
||||
wechatMpJump$message: WechatMpJump.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
|
|
@ -112,6 +116,12 @@ export type Projection = {
|
|||
messageSystem$message$$aggr?: MessageSystem.Aggregation & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
wechatMpJump$message?: WechatMpJump.Selection & {
|
||||
$entity: "wechatMpJump";
|
||||
};
|
||||
wechatMpJump$message$$aggr?: WechatMpJump.Aggregation & {
|
||||
$entity: "wechatMpJump";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type MessageIdProjection = OneOf<{
|
||||
id: number;
|
||||
|
|
@ -195,6 +205,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
[K: string]: any;
|
||||
}) & {
|
||||
messageSystem$message?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">>>;
|
||||
wechatMpJump$message?: OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">> | OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
|
|
@ -226,6 +237,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "userId" | "plat
|
|||
})) & {
|
||||
[k: string]: any;
|
||||
messageSystem$message?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">>>;
|
||||
wechatMpJump$message?: OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<WechatMpJump.RemoveOperation["action"], Omit<WechatMpJump.RemoveOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">> | OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<WechatMpJump.RemoveOperation["action"], Omit<WechatMpJump.RemoveOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | ParticularAction | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import * as UserSystem from "../UserSystem/Schema";
|
|||
import * as UserWechatPublicTag from "../UserWechatPublicTag/Schema";
|
||||
import * as WechatLogin from "../WechatLogin/Schema";
|
||||
import * as WechatMenu from "../WechatMenu/Schema";
|
||||
import * as WechatMpJump from "../WechatMpJump/Schema";
|
||||
import * as WechatPublicAutoReply from "../WechatPublicAutoReply/Schema";
|
||||
import * as WechatPublicTag from "../WechatPublicTag/Schema";
|
||||
import * as WechatPublicTemplate from "../WechatPublicTemplate/Schema";
|
||||
|
|
@ -19,13 +20,13 @@ import * as WechatQrCode from "../WechatQrCode/Schema";
|
|||
import * as WechatUser from "../WechatUser/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
modiId: ForeignKey<"modi">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
modiId: ForeignKey<"modi">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
modi: Modi.Schema;
|
||||
user?: User.Schema;
|
||||
|
|
@ -34,6 +35,7 @@ export type Schema = EntityShape & {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Schema;
|
||||
wechatLogin?: WechatLogin.Schema;
|
||||
wechatMenu?: WechatMenu.Schema;
|
||||
wechatMpJump?: WechatMpJump.Schema;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Schema;
|
||||
wechatPublicTag?: WechatPublicTag.Schema;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Schema;
|
||||
|
|
@ -49,7 +51,7 @@ type AttrFilter = {
|
|||
$$updateAt$$: Q_DateValue;
|
||||
modiId: Q_StringValue;
|
||||
modi: Modi.Filter;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entityId: Q_StringValue;
|
||||
user: User.Filter;
|
||||
userEntityGrant: UserEntityGrant.Filter;
|
||||
|
|
@ -57,6 +59,7 @@ type AttrFilter = {
|
|||
userWechatPublicTag: UserWechatPublicTag.Filter;
|
||||
wechatLogin: WechatLogin.Filter;
|
||||
wechatMenu: WechatMenu.Filter;
|
||||
wechatMpJump: WechatMpJump.Filter;
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.Filter;
|
||||
wechatPublicTag: WechatPublicTag.Filter;
|
||||
wechatPublicTemplate: WechatPublicTemplate.Filter;
|
||||
|
|
@ -81,6 +84,7 @@ export type Projection = {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Projection;
|
||||
wechatLogin?: WechatLogin.Projection;
|
||||
wechatMenu?: WechatMenu.Projection;
|
||||
wechatMpJump?: WechatMpJump.Projection;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Projection;
|
||||
wechatPublicTag?: WechatPublicTag.Projection;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Projection;
|
||||
|
|
@ -111,6 +115,9 @@ type WechatLoginIdProjection = OneOf<{
|
|||
type WechatMenuIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatMpJumpIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatPublicAutoReplyIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
|
|
@ -154,6 +161,8 @@ export type SortAttr = {
|
|||
wechatLogin: WechatLogin.SortAttr;
|
||||
} | {
|
||||
wechatMenu: WechatMenu.SortAttr;
|
||||
} | {
|
||||
wechatMpJump: WechatMpJump.SortAttr;
|
||||
} | {
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.SortAttr;
|
||||
} | {
|
||||
|
|
@ -256,6 +265,18 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
entity: "wechatMenu";
|
||||
entityId: ForeignKey<"WechatMenu">;
|
||||
wechatMenu?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
wechatMpJump: WechatMpJump.CreateSingleOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
|
|
@ -360,6 +381,10 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
wechatMenu?: WechatMenu.CreateSingleOperation | WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.CreateSingleOperation | WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.CreateSingleOperation | WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
entityId?: never;
|
||||
|
|
@ -381,14 +406,15 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatMpJump" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
user?: never;
|
||||
userEntityGrant?: never;
|
||||
userSystem?: never;
|
||||
userWechatPublicTag?: never;
|
||||
wechatLogin?: never;
|
||||
wechatMenu?: never;
|
||||
wechatMpJump?: never;
|
||||
wechatPublicAutoReply?: never;
|
||||
wechatPublicTag?: never;
|
||||
wechatPublicTemplate?: never;
|
||||
|
|
@ -412,6 +438,8 @@ export type RemoveOperationData = {} & (({
|
|||
wechatLogin?: WechatLogin.UpdateOperation | WechatLogin.RemoveOperation;
|
||||
} | {
|
||||
wechatMenu?: WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
} | {
|
||||
|
|
@ -434,6 +462,7 @@ export type UserSystemIdSubQuery = Selection<UserSystemIdProjection>;
|
|||
export type UserWechatPublicTagIdSubQuery = Selection<UserWechatPublicTagIdProjection>;
|
||||
export type WechatLoginIdSubQuery = Selection<WechatLoginIdProjection>;
|
||||
export type WechatMenuIdSubQuery = Selection<WechatMenuIdProjection>;
|
||||
export type WechatMpJumpIdSubQuery = Selection<WechatMpJumpIdProjection>;
|
||||
export type WechatPublicAutoReplyIdSubQuery = Selection<WechatPublicAutoReplyIdProjection>;
|
||||
export type WechatPublicTagIdSubQuery = Selection<WechatPublicTagIdProjection>;
|
||||
export type WechatPublicTemplateIdSubQuery = Selection<WechatPublicTemplateIdProjection>;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export const desc = {
|
|||
params: {
|
||||
length: 32
|
||||
},
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatMpJump", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
},
|
||||
entityId: {
|
||||
notNull: true,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import * as UserSystem from "../UserSystem/Schema";
|
|||
import * as UserWechatPublicTag from "../UserWechatPublicTag/Schema";
|
||||
import * as WechatLogin from "../WechatLogin/Schema";
|
||||
import * as WechatMenu from "../WechatMenu/Schema";
|
||||
import * as WechatMpJump from "../WechatMpJump/Schema";
|
||||
import * as WechatPublicAutoReply from "../WechatPublicAutoReply/Schema";
|
||||
import * as WechatPublicTag from "../WechatPublicTag/Schema";
|
||||
import * as WechatPublicTemplate from "../WechatPublicTemplate/Schema";
|
||||
|
|
@ -19,13 +20,13 @@ import * as WechatQrCode from "../WechatQrCode/Schema";
|
|||
import * as WechatUser from "../WechatUser/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
operId: ForeignKey<"oper">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
operId: ForeignKey<"oper">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
oper: Oper.Schema;
|
||||
user?: User.Schema;
|
||||
|
|
@ -34,6 +35,7 @@ export type Schema = EntityShape & {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Schema;
|
||||
wechatLogin?: WechatLogin.Schema;
|
||||
wechatMenu?: WechatMenu.Schema;
|
||||
wechatMpJump?: WechatMpJump.Schema;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Schema;
|
||||
wechatPublicTag?: WechatPublicTag.Schema;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Schema;
|
||||
|
|
@ -49,7 +51,7 @@ type AttrFilter = {
|
|||
$$updateAt$$: Q_DateValue;
|
||||
operId: Q_StringValue;
|
||||
oper: Oper.Filter;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entityId: Q_StringValue;
|
||||
user: User.Filter;
|
||||
userEntityGrant: UserEntityGrant.Filter;
|
||||
|
|
@ -57,6 +59,7 @@ type AttrFilter = {
|
|||
userWechatPublicTag: UserWechatPublicTag.Filter;
|
||||
wechatLogin: WechatLogin.Filter;
|
||||
wechatMenu: WechatMenu.Filter;
|
||||
wechatMpJump: WechatMpJump.Filter;
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.Filter;
|
||||
wechatPublicTag: WechatPublicTag.Filter;
|
||||
wechatPublicTemplate: WechatPublicTemplate.Filter;
|
||||
|
|
@ -81,6 +84,7 @@ export type Projection = {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Projection;
|
||||
wechatLogin?: WechatLogin.Projection;
|
||||
wechatMenu?: WechatMenu.Projection;
|
||||
wechatMpJump?: WechatMpJump.Projection;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Projection;
|
||||
wechatPublicTag?: WechatPublicTag.Projection;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Projection;
|
||||
|
|
@ -111,6 +115,9 @@ type WechatLoginIdProjection = OneOf<{
|
|||
type WechatMenuIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatMpJumpIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatPublicAutoReplyIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
|
|
@ -154,6 +161,8 @@ export type SortAttr = {
|
|||
wechatLogin: WechatLogin.SortAttr;
|
||||
} | {
|
||||
wechatMenu: WechatMenu.SortAttr;
|
||||
} | {
|
||||
wechatMpJump: WechatMpJump.SortAttr;
|
||||
} | {
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.SortAttr;
|
||||
} | {
|
||||
|
|
@ -253,6 +262,18 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
entity: "wechatMenu";
|
||||
entityId: ForeignKey<"WechatMenu">;
|
||||
wechatMenu?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
wechatMpJump: WechatMpJump.CreateSingleOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
|
|
@ -351,6 +372,10 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
wechatMenu?: WechatMenu.CreateSingleOperation | WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.CreateSingleOperation | WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.CreateSingleOperation | WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
entityId?: never;
|
||||
|
|
@ -372,14 +397,15 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatMpJump" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
user?: never;
|
||||
userEntityGrant?: never;
|
||||
userSystem?: never;
|
||||
userWechatPublicTag?: never;
|
||||
wechatLogin?: never;
|
||||
wechatMenu?: never;
|
||||
wechatMpJump?: never;
|
||||
wechatPublicAutoReply?: never;
|
||||
wechatPublicTag?: never;
|
||||
wechatPublicTemplate?: never;
|
||||
|
|
@ -401,6 +427,8 @@ export type RemoveOperationData = {} & ({
|
|||
wechatLogin?: WechatLogin.UpdateOperation | WechatLogin.RemoveOperation;
|
||||
} | {
|
||||
wechatMenu?: WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
} | {
|
||||
|
|
@ -423,6 +451,7 @@ export type UserSystemIdSubQuery = Selection<UserSystemIdProjection>;
|
|||
export type UserWechatPublicTagIdSubQuery = Selection<UserWechatPublicTagIdProjection>;
|
||||
export type WechatLoginIdSubQuery = Selection<WechatLoginIdProjection>;
|
||||
export type WechatMenuIdSubQuery = Selection<WechatMenuIdProjection>;
|
||||
export type WechatMpJumpIdSubQuery = Selection<WechatMpJumpIdProjection>;
|
||||
export type WechatPublicAutoReplyIdSubQuery = Selection<WechatPublicAutoReplyIdProjection>;
|
||||
export type WechatPublicTagIdSubQuery = Selection<WechatPublicTagIdProjection>;
|
||||
export type WechatPublicTemplateIdSubQuery = Selection<WechatPublicTemplateIdProjection>;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export const desc = {
|
|||
params: {
|
||||
length: 32
|
||||
},
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatMpJump", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
},
|
||||
entityId: {
|
||||
notNull: true,
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import { desc as userSystemDesc } from "./UserSystem/Storage";
|
|||
import { desc as userWechatPublicTagDesc } from "./UserWechatPublicTag/Storage";
|
||||
import { desc as wechatLoginDesc } from "./WechatLogin/Storage";
|
||||
import { desc as wechatMenuDesc } from "./WechatMenu/Storage";
|
||||
import { desc as wechatMpJumpDesc } from "./WechatMpJump/Storage";
|
||||
import { desc as wechatPublicAutoReplyDesc } from "./WechatPublicAutoReply/Storage";
|
||||
import { desc as wechatPublicTagDesc } from "./WechatPublicTag/Storage";
|
||||
import { desc as wechatPublicTemplateDesc } from "./WechatPublicTemplate/Storage";
|
||||
|
|
@ -102,6 +103,7 @@ export const storageSchema = {
|
|||
userWechatPublicTag: userWechatPublicTagDesc,
|
||||
wechatLogin: wechatLoginDesc,
|
||||
wechatMenu: wechatMenuDesc,
|
||||
wechatMpJump: wechatMpJumpDesc,
|
||||
wechatPublicAutoReply: wechatPublicAutoReplyDesc,
|
||||
wechatPublicTag: wechatPublicTagDesc,
|
||||
wechatPublicTemplate: wechatPublicTemplateDesc,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,182 @@
|
|||
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey, JsonFilter, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, AggregationResult } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Boolean, Datetime, Int, String } from "oak-domain/lib/types/DataType";
|
||||
import { EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import * as Message from "../Message/Schema";
|
||||
import * as ModiEntity from "../ModiEntity/Schema";
|
||||
import * as OperEntity from "../OperEntity/Schema";
|
||||
type Jump_wxa = {
|
||||
path?: string;
|
||||
query?: string;
|
||||
env_version?: string;
|
||||
};
|
||||
export type OpSchema = EntityShape & {
|
||||
messageId?: ForeignKey<"message"> | null;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;
|
||||
expireInterval?: Int<2> | null;
|
||||
expiresAt?: Datetime | null;
|
||||
expired: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
messageId?: ForeignKey<"message"> | null;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;
|
||||
expireInterval?: Int<2> | null;
|
||||
expiresAt?: Datetime | null;
|
||||
expired: Boolean;
|
||||
message?: Message.Schema | null;
|
||||
modiEntity$entity?: Array<ModiEntity.Schema>;
|
||||
modiEntity$entity$$aggr?: AggregationResult<ModiEntity.Schema>;
|
||||
operEntity$entity?: Array<OperEntity.Schema>;
|
||||
operEntity$entity$$aggr?: AggregationResult<OperEntity.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_StringValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
messageId: Q_StringValue;
|
||||
message: Message.Filter;
|
||||
jump_wxa: JsonFilter<Jump_wxa>;
|
||||
openlink: Q_StringValue;
|
||||
expireType: Q_NumberValue;
|
||||
expireInterval: Q_NumberValue;
|
||||
expiresAt: Q_DateValue;
|
||||
expired: Q_BooleanValue;
|
||||
modiEntity$entity: ModiEntity.Filter & SubQueryPredicateMetadata;
|
||||
operEntity$entity: OperEntity.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
"#id"?: NodeId;
|
||||
[k: string]: any;
|
||||
id?: number;
|
||||
$$createAt$$?: number;
|
||||
$$updateAt$$?: number;
|
||||
$$seq$$?: number;
|
||||
messageId?: number;
|
||||
message?: Message.Projection;
|
||||
jump_wxa?: number | JsonProjection<Jump_wxa>;
|
||||
openlink?: number;
|
||||
expireType?: number;
|
||||
expireInterval?: number;
|
||||
expiresAt?: number;
|
||||
expired?: number;
|
||||
modiEntity$entity?: ModiEntity.Selection & {
|
||||
$entity: "modiEntity";
|
||||
};
|
||||
modiEntity$entity$$aggr?: ModiEntity.Aggregation & {
|
||||
$entity: "modiEntity";
|
||||
};
|
||||
operEntity$entity?: OperEntity.Selection & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
operEntity$entity$$aggr?: OperEntity.Aggregation & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type WechatMpJumpIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
type MessageIdProjection = OneOf<{
|
||||
messageId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
$$createAt$$: number;
|
||||
} | {
|
||||
$$seq$$: number;
|
||||
} | {
|
||||
$$updateAt$$: number;
|
||||
} | {
|
||||
messageId: number;
|
||||
} | {
|
||||
message: Message.SortAttr;
|
||||
} | {
|
||||
jump_wxa: number;
|
||||
} | {
|
||||
openlink: number;
|
||||
} | {
|
||||
expireType: number;
|
||||
} | {
|
||||
expireInterval: number;
|
||||
} | {
|
||||
expiresAt: number;
|
||||
} | {
|
||||
expired: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
export type SortNode = {
|
||||
$attr: SortAttr;
|
||||
$direction?: "asc" | "desc";
|
||||
};
|
||||
export type Sorter = SortNode[];
|
||||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "messageId">> & (({
|
||||
messageId?: never;
|
||||
message?: Message.CreateSingleOperation;
|
||||
} | {
|
||||
messageId: ForeignKey<"message">;
|
||||
message?: Message.UpdateOperation;
|
||||
} | {
|
||||
message?: never;
|
||||
messageId?: ForeignKey<"message">;
|
||||
})) & {
|
||||
modiEntity$entity?: OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
operEntity$entity?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "messageId">> & (({
|
||||
message?: Message.CreateSingleOperation;
|
||||
messageId?: never;
|
||||
} | {
|
||||
message?: Message.UpdateOperation;
|
||||
messageId?: never;
|
||||
} | {
|
||||
message?: Message.RemoveOperation;
|
||||
messageId?: never;
|
||||
} | {
|
||||
message?: never;
|
||||
messageId?: ForeignKey<"message"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
modiEntity$entity?: OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
operEntity$entity?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
message?: Message.UpdateOperation | Message.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type MessageIdSubQuery = Selection<MessageIdProjection>;
|
||||
export type WechatMpJumpIdSubQuery = Selection<WechatMpJumpIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<GenericAction> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
Create: CreateOperation;
|
||||
Update: UpdateOperation;
|
||||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
};
|
||||
export {};
|
||||
|
|
@ -0,0 +1 @@
|
|||
export {};
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { StorageDesc } from "oak-domain/lib/types/Storage";
|
||||
import { OpSchema } from "./Schema";
|
||||
export declare const desc: StorageDesc<OpSchema>;
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
import { genericActions as actions } from "oak-domain/lib/actions/action";
|
||||
export const desc = {
|
||||
attributes: {
|
||||
messageId: {
|
||||
type: "ref",
|
||||
ref: "message"
|
||||
},
|
||||
jump_wxa: {
|
||||
notNull: true,
|
||||
type: "object"
|
||||
},
|
||||
openlink: {
|
||||
notNull: true,
|
||||
type: "varchar",
|
||||
params: {
|
||||
length: 256
|
||||
}
|
||||
},
|
||||
expireType: {
|
||||
notNull: true,
|
||||
type: "int",
|
||||
params: {
|
||||
width: 1,
|
||||
signed: true
|
||||
}
|
||||
},
|
||||
expireInterval: {
|
||||
type: "int",
|
||||
params: {
|
||||
width: 2,
|
||||
signed: true
|
||||
}
|
||||
},
|
||||
expiresAt: {
|
||||
type: "datetime"
|
||||
},
|
||||
expired: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions,
|
||||
indexes: [
|
||||
{
|
||||
name: 'index_uuid',
|
||||
attributes: [
|
||||
{
|
||||
name: 'expired',
|
||||
},
|
||||
{
|
||||
name: 'expiresAt',
|
||||
},
|
||||
],
|
||||
}
|
||||
]
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "name": "短信跳小程序", "attr": { "message": "消息", "expired": "是否过期", "jump_wxa": "目标小程序信息", "openlink": "目标链接及参数", "expireType": "失效类型", "expireInterval": "到期失效的间隔", "expiresAt": "过期时间" } }
|
||||
|
|
@ -47,6 +47,7 @@ import * as UserSystem from "./UserSystem/Schema";
|
|||
import * as UserWechatPublicTag from "./UserWechatPublicTag/Schema";
|
||||
import * as WechatLogin from "./WechatLogin/Schema";
|
||||
import * as WechatMenu from "./WechatMenu/Schema";
|
||||
import * as WechatMpJump from "./WechatMpJump/Schema";
|
||||
import * as WechatPublicAutoReply from "./WechatPublicAutoReply/Schema";
|
||||
import * as WechatPublicTag from "./WechatPublicTag/Schema";
|
||||
import * as WechatPublicTemplate from "./WechatPublicTemplate/Schema";
|
||||
|
|
@ -296,6 +297,8 @@ export type LivestreamIdSubQuery = {
|
|||
export type MessageIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (MessageSystem.MessageIdSubQuery & {
|
||||
entity: "messageSystem";
|
||||
}) | (WechatMpJump.MessageIdSubQuery & {
|
||||
entity: "wechatMpJump";
|
||||
}) | (Message.MessageIdSubQuery & {
|
||||
entity: "message";
|
||||
}) | any;
|
||||
|
|
@ -473,6 +476,15 @@ export type WechatMenuIdSubQuery = {
|
|||
entity: "wechatMenu";
|
||||
}) | any;
|
||||
};
|
||||
export type WechatMpJumpIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ModiEntity.WechatMpJumpIdSubQuery & {
|
||||
entity: "modiEntity";
|
||||
}) | (OperEntity.WechatMpJumpIdSubQuery & {
|
||||
entity: "operEntity";
|
||||
}) | (WechatMpJump.WechatMpJumpIdSubQuery & {
|
||||
entity: "wechatMpJump";
|
||||
}) | any;
|
||||
};
|
||||
export type WechatPublicAutoReplyIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ModiEntity.WechatPublicAutoReplyIdSubQuery & {
|
||||
entity: "modiEntity";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
import { Trigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const triggers: Trigger<EntityDict, 'wechatMpJump', BRC>[];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import { assert } from 'oak-domain/lib/utils/assert';
|
||||
// import { wechatMpJump } from '@project/aspects/wechatMpJump';
|
||||
const triggers = [
|
||||
{
|
||||
name: '当创建WechatMpJump时,尝试为之创建一个wechatQrCode',
|
||||
entity: 'wechatMpJump',
|
||||
action: 'create',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, params) => {
|
||||
const { data, filter } = operation;
|
||||
const fn = async (wechatMpJumpData) => {
|
||||
const { jump_wxa, expiresAt, expireType, expireInterval } = wechatMpJumpData;
|
||||
Object.assign(wechatMpJumpData, {});
|
||||
};
|
||||
if (data instanceof Array) {
|
||||
assert('授权不存在一对多的情况');
|
||||
}
|
||||
else {
|
||||
await fn(data);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
];
|
||||
export default triggers;
|
||||
|
|
@ -12,6 +12,7 @@ import { createSession } from './session';
|
|||
import { getCurrentMenu, getMenu, createMenu, createConditionalMenu, deleteConditionalMenu, deleteMenu } from './wechatMenu';
|
||||
import { createTag, getTags, editTag, deleteTag, syncTag, oneKeySync } from './wechatPublicTag';
|
||||
import { getTagUsers, batchtagging, batchuntagging, getUserTags, getUsers, tagging, syncToLocale, syncToWechat } from './userWechatPublicTag';
|
||||
import { wechatMpJump } from './wechatMpJump';
|
||||
declare const aspectDict: {
|
||||
mergeUser: typeof mergeUser;
|
||||
switchTo: typeof switchTo;
|
||||
|
|
@ -65,5 +66,6 @@ declare const aspectDict: {
|
|||
tagging: typeof tagging;
|
||||
syncToLocale: typeof syncToLocale;
|
||||
syncToWechat: typeof syncToWechat;
|
||||
wechatMpJump: typeof wechatMpJump;
|
||||
};
|
||||
export default aspectDict;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ const session_1 = require("./session");
|
|||
const wechatMenu_1 = require("./wechatMenu");
|
||||
const wechatPublicTag_1 = require("./wechatPublicTag");
|
||||
const userWechatPublicTag_1 = require("./userWechatPublicTag");
|
||||
const wechatMpJump_1 = require("./wechatMpJump");
|
||||
const aspectDict = {
|
||||
mergeUser: user_1.mergeUser,
|
||||
switchTo: token_1.switchTo,
|
||||
|
|
@ -67,5 +68,6 @@ const aspectDict = {
|
|||
tagging: userWechatPublicTag_1.tagging,
|
||||
syncToLocale: userWechatPublicTag_1.syncToLocale,
|
||||
syncToWechat: userWechatPublicTag_1.syncToWechat,
|
||||
wechatMpJump: wechatMpJump_1.wechatMpJump,
|
||||
};
|
||||
exports.default = aspectDict;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
import { EntityDict } from "../oak-app-domain";
|
||||
import { BackendRuntimeContext } from "../context/BackendRuntimeContext";
|
||||
export declare function wechatMpJump<ED extends EntityDict, Cxt extends BackendRuntimeContext<ED>>(params: {
|
||||
applicationId: string;
|
||||
jump_wxa: {
|
||||
path: string;
|
||||
query: string;
|
||||
env_version: string;
|
||||
};
|
||||
expireType: number;
|
||||
expiresAt: number;
|
||||
expireInterval: number;
|
||||
}, context: Cxt): Promise<any>;
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.wechatMpJump = void 0;
|
||||
const lodash_1 = require("oak-domain/lib/utils/lodash");
|
||||
const Projection_1 = require("../types/Projection");
|
||||
const assert_1 = require("oak-domain/lib/utils/assert");
|
||||
const oak_external_sdk_1 = require("oak-external-sdk");
|
||||
async function wechatMpJump(params, context) {
|
||||
const { applicationId, jump_wxa, expireType, expiresAt, expireInterval } = params;
|
||||
(0, assert_1.assert)(applicationId);
|
||||
const [application] = await context.select('application', {
|
||||
data: (0, lodash_1.cloneDeep)(Projection_1.applicationProjection),
|
||||
filter: {
|
||||
id: applicationId,
|
||||
},
|
||||
}, {
|
||||
dontCollect: true,
|
||||
});
|
||||
(0, assert_1.assert)(application);
|
||||
const { type, config } = application;
|
||||
(0, assert_1.assert)(type === 'wechatMp');
|
||||
const config2 = config;
|
||||
const { appId, appSecret } = config2;
|
||||
const wechatInstance = oak_external_sdk_1.WechatSDK.getInstance(appId, 'wechatMp', appSecret);
|
||||
const result = await wechatInstance.getURLScheme({ jump_wxa, expireType, expiresAt, expireInterval });
|
||||
return result;
|
||||
}
|
||||
exports.wechatMpJump = wechatMpJump;
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import { Boolean, Datetime, Int, String } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { Schema as Message } from './Message';
|
||||
type Jump_wxa = {
|
||||
path?: string;
|
||||
query?: string;
|
||||
env_version?: string;
|
||||
};
|
||||
export interface Schema extends EntityShape {
|
||||
message?: Message;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;
|
||||
expireInterval?: Int<2>;
|
||||
expiresAt?: Datetime;
|
||||
expired: Boolean;
|
||||
}
|
||||
export {};
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '短信跳小程序',
|
||||
attr: {
|
||||
message: '消息',
|
||||
expired: '是否过期',
|
||||
jump_wxa: '目标小程序信息',
|
||||
openlink: "目标链接及参数",
|
||||
expireType: '失效类型',
|
||||
expireInterval: '到期失效的间隔',
|
||||
expiresAt: '过期时间',
|
||||
},
|
||||
},
|
||||
},
|
||||
indexes: [
|
||||
{
|
||||
name: 'index_uuid',
|
||||
attributes: [
|
||||
{
|
||||
name: 'expired',
|
||||
},
|
||||
{
|
||||
name: 'expiresAt',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -47,6 +47,7 @@ import { EntityDef as UserSystem } from "./UserSystem/Schema";
|
|||
import { EntityDef as UserWechatPublicTag } from "./UserWechatPublicTag/Schema";
|
||||
import { EntityDef as WechatLogin } from "./WechatLogin/Schema";
|
||||
import { EntityDef as WechatMenu } from "./WechatMenu/Schema";
|
||||
import { EntityDef as WechatMpJump } from "./WechatMpJump/Schema";
|
||||
import { EntityDef as WechatPublicAutoReply } from "./WechatPublicAutoReply/Schema";
|
||||
import { EntityDef as WechatPublicTag } from "./WechatPublicTag/Schema";
|
||||
import { EntityDef as WechatPublicTemplate } from "./WechatPublicTemplate/Schema";
|
||||
|
|
@ -102,6 +103,7 @@ export type EntityDict = {
|
|||
userWechatPublicTag: UserWechatPublicTag;
|
||||
wechatLogin: WechatLogin;
|
||||
wechatMenu: WechatMenu;
|
||||
wechatMpJump: WechatMpJump;
|
||||
wechatPublicAutoReply: WechatPublicAutoReply;
|
||||
wechatPublicTag: WechatPublicTag;
|
||||
wechatPublicTemplate: WechatPublicTemplate;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { Channel, Weight } from "../../types/Message";
|
|||
import * as User from "../User/Schema";
|
||||
import * as Platform from "../Platform/Schema";
|
||||
import * as MessageSystem from "../MessageSystem/Schema";
|
||||
import * as WechatMpJump from "../WechatMpJump/Schema";
|
||||
type Router = {
|
||||
pathname: string;
|
||||
props?: Record<string, any>;
|
||||
|
|
@ -56,6 +57,8 @@ export type Schema = EntityShape & {
|
|||
platform?: Platform.Schema | null;
|
||||
messageSystem$message?: Array<MessageSystem.Schema>;
|
||||
messageSystem$message$$aggr?: AggregationResult<MessageSystem.Schema>;
|
||||
wechatMpJump$message?: Array<WechatMpJump.Schema>;
|
||||
wechatMpJump$message$$aggr?: AggregationResult<WechatMpJump.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
|
|
@ -81,6 +84,7 @@ type AttrFilter = {
|
|||
iState: Q_EnumValue<IState>;
|
||||
visitState: Q_EnumValue<VisitState>;
|
||||
messageSystem$message: MessageSystem.Filter & SubQueryPredicateMetadata;
|
||||
wechatMpJump$message: WechatMpJump.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
|
|
@ -112,6 +116,12 @@ export type Projection = {
|
|||
messageSystem$message$$aggr?: MessageSystem.Aggregation & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
wechatMpJump$message?: WechatMpJump.Selection & {
|
||||
$entity: "wechatMpJump";
|
||||
};
|
||||
wechatMpJump$message$$aggr?: WechatMpJump.Aggregation & {
|
||||
$entity: "wechatMpJump";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type MessageIdProjection = OneOf<{
|
||||
id: number;
|
||||
|
|
@ -195,6 +205,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
[K: string]: any;
|
||||
}) & {
|
||||
messageSystem$message?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">>>;
|
||||
wechatMpJump$message?: OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">> | OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
|
|
@ -226,6 +237,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "userId" | "plat
|
|||
})) & {
|
||||
[k: string]: any;
|
||||
messageSystem$message?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "message" | "messageId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "message" | "messageId">, Omit<MessageSystem.Filter, "message" | "messageId">>>;
|
||||
wechatMpJump$message?: OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<WechatMpJump.RemoveOperation["action"], Omit<WechatMpJump.RemoveOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">[]> | Array<OakOperation<"create", Omit<WechatMpJump.CreateOperationData, "message" | "messageId">> | OakOperation<WechatMpJump.UpdateOperation["action"], Omit<WechatMpJump.UpdateOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">> | OakOperation<WechatMpJump.RemoveOperation["action"], Omit<WechatMpJump.RemoveOperationData, "message" | "messageId">, Omit<WechatMpJump.Filter, "message" | "messageId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | ParticularAction | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import * as UserSystem from "../UserSystem/Schema";
|
|||
import * as UserWechatPublicTag from "../UserWechatPublicTag/Schema";
|
||||
import * as WechatLogin from "../WechatLogin/Schema";
|
||||
import * as WechatMenu from "../WechatMenu/Schema";
|
||||
import * as WechatMpJump from "../WechatMpJump/Schema";
|
||||
import * as WechatPublicAutoReply from "../WechatPublicAutoReply/Schema";
|
||||
import * as WechatPublicTag from "../WechatPublicTag/Schema";
|
||||
import * as WechatPublicTemplate from "../WechatPublicTemplate/Schema";
|
||||
|
|
@ -19,13 +20,13 @@ import * as WechatQrCode from "../WechatQrCode/Schema";
|
|||
import * as WechatUser from "../WechatUser/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
modiId: ForeignKey<"modi">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
modiId: ForeignKey<"modi">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
modi: Modi.Schema;
|
||||
user?: User.Schema;
|
||||
|
|
@ -34,6 +35,7 @@ export type Schema = EntityShape & {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Schema;
|
||||
wechatLogin?: WechatLogin.Schema;
|
||||
wechatMenu?: WechatMenu.Schema;
|
||||
wechatMpJump?: WechatMpJump.Schema;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Schema;
|
||||
wechatPublicTag?: WechatPublicTag.Schema;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Schema;
|
||||
|
|
@ -49,7 +51,7 @@ type AttrFilter = {
|
|||
$$updateAt$$: Q_DateValue;
|
||||
modiId: Q_StringValue;
|
||||
modi: Modi.Filter;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entityId: Q_StringValue;
|
||||
user: User.Filter;
|
||||
userEntityGrant: UserEntityGrant.Filter;
|
||||
|
|
@ -57,6 +59,7 @@ type AttrFilter = {
|
|||
userWechatPublicTag: UserWechatPublicTag.Filter;
|
||||
wechatLogin: WechatLogin.Filter;
|
||||
wechatMenu: WechatMenu.Filter;
|
||||
wechatMpJump: WechatMpJump.Filter;
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.Filter;
|
||||
wechatPublicTag: WechatPublicTag.Filter;
|
||||
wechatPublicTemplate: WechatPublicTemplate.Filter;
|
||||
|
|
@ -81,6 +84,7 @@ export type Projection = {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Projection;
|
||||
wechatLogin?: WechatLogin.Projection;
|
||||
wechatMenu?: WechatMenu.Projection;
|
||||
wechatMpJump?: WechatMpJump.Projection;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Projection;
|
||||
wechatPublicTag?: WechatPublicTag.Projection;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Projection;
|
||||
|
|
@ -111,6 +115,9 @@ type WechatLoginIdProjection = OneOf<{
|
|||
type WechatMenuIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatMpJumpIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatPublicAutoReplyIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
|
|
@ -154,6 +161,8 @@ export type SortAttr = {
|
|||
wechatLogin: WechatLogin.SortAttr;
|
||||
} | {
|
||||
wechatMenu: WechatMenu.SortAttr;
|
||||
} | {
|
||||
wechatMpJump: WechatMpJump.SortAttr;
|
||||
} | {
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.SortAttr;
|
||||
} | {
|
||||
|
|
@ -256,6 +265,18 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
entity: "wechatMenu";
|
||||
entityId: ForeignKey<"WechatMenu">;
|
||||
wechatMenu?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
wechatMpJump: WechatMpJump.CreateSingleOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
|
|
@ -360,6 +381,10 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
wechatMenu?: WechatMenu.CreateSingleOperation | WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.CreateSingleOperation | WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.CreateSingleOperation | WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
entityId?: never;
|
||||
|
|
@ -381,14 +406,15 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatMpJump" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
user?: never;
|
||||
userEntityGrant?: never;
|
||||
userSystem?: never;
|
||||
userWechatPublicTag?: never;
|
||||
wechatLogin?: never;
|
||||
wechatMenu?: never;
|
||||
wechatMpJump?: never;
|
||||
wechatPublicAutoReply?: never;
|
||||
wechatPublicTag?: never;
|
||||
wechatPublicTemplate?: never;
|
||||
|
|
@ -412,6 +438,8 @@ export type RemoveOperationData = {} & (({
|
|||
wechatLogin?: WechatLogin.UpdateOperation | WechatLogin.RemoveOperation;
|
||||
} | {
|
||||
wechatMenu?: WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
} | {
|
||||
|
|
@ -434,6 +462,7 @@ export type UserSystemIdSubQuery = Selection<UserSystemIdProjection>;
|
|||
export type UserWechatPublicTagIdSubQuery = Selection<UserWechatPublicTagIdProjection>;
|
||||
export type WechatLoginIdSubQuery = Selection<WechatLoginIdProjection>;
|
||||
export type WechatMenuIdSubQuery = Selection<WechatMenuIdProjection>;
|
||||
export type WechatMpJumpIdSubQuery = Selection<WechatMpJumpIdProjection>;
|
||||
export type WechatPublicAutoReplyIdSubQuery = Selection<WechatPublicAutoReplyIdProjection>;
|
||||
export type WechatPublicTagIdSubQuery = Selection<WechatPublicTagIdProjection>;
|
||||
export type WechatPublicTemplateIdSubQuery = Selection<WechatPublicTemplateIdProjection>;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ exports.desc = {
|
|||
params: {
|
||||
length: 32
|
||||
},
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatMpJump", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
},
|
||||
entityId: {
|
||||
notNull: true,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import * as UserSystem from "../UserSystem/Schema";
|
|||
import * as UserWechatPublicTag from "../UserWechatPublicTag/Schema";
|
||||
import * as WechatLogin from "../WechatLogin/Schema";
|
||||
import * as WechatMenu from "../WechatMenu/Schema";
|
||||
import * as WechatMpJump from "../WechatMpJump/Schema";
|
||||
import * as WechatPublicAutoReply from "../WechatPublicAutoReply/Schema";
|
||||
import * as WechatPublicTag from "../WechatPublicTag/Schema";
|
||||
import * as WechatPublicTemplate from "../WechatPublicTemplate/Schema";
|
||||
|
|
@ -19,13 +20,13 @@ import * as WechatQrCode from "../WechatQrCode/Schema";
|
|||
import * as WechatUser from "../WechatUser/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
operId: ForeignKey<"oper">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
operId: ForeignKey<"oper">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
oper: Oper.Schema;
|
||||
user?: User.Schema;
|
||||
|
|
@ -34,6 +35,7 @@ export type Schema = EntityShape & {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Schema;
|
||||
wechatLogin?: WechatLogin.Schema;
|
||||
wechatMenu?: WechatMenu.Schema;
|
||||
wechatMpJump?: WechatMpJump.Schema;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Schema;
|
||||
wechatPublicTag?: WechatPublicTag.Schema;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Schema;
|
||||
|
|
@ -49,7 +51,7 @@ type AttrFilter = {
|
|||
$$updateAt$$: Q_DateValue;
|
||||
operId: Q_StringValue;
|
||||
oper: Oper.Filter;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entity: Q_EnumValue<"user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string>;
|
||||
entityId: Q_StringValue;
|
||||
user: User.Filter;
|
||||
userEntityGrant: UserEntityGrant.Filter;
|
||||
|
|
@ -57,6 +59,7 @@ type AttrFilter = {
|
|||
userWechatPublicTag: UserWechatPublicTag.Filter;
|
||||
wechatLogin: WechatLogin.Filter;
|
||||
wechatMenu: WechatMenu.Filter;
|
||||
wechatMpJump: WechatMpJump.Filter;
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.Filter;
|
||||
wechatPublicTag: WechatPublicTag.Filter;
|
||||
wechatPublicTemplate: WechatPublicTemplate.Filter;
|
||||
|
|
@ -81,6 +84,7 @@ export type Projection = {
|
|||
userWechatPublicTag?: UserWechatPublicTag.Projection;
|
||||
wechatLogin?: WechatLogin.Projection;
|
||||
wechatMenu?: WechatMenu.Projection;
|
||||
wechatMpJump?: WechatMpJump.Projection;
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.Projection;
|
||||
wechatPublicTag?: WechatPublicTag.Projection;
|
||||
wechatPublicTemplate?: WechatPublicTemplate.Projection;
|
||||
|
|
@ -111,6 +115,9 @@ type WechatLoginIdProjection = OneOf<{
|
|||
type WechatMenuIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatMpJumpIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
type WechatPublicAutoReplyIdProjection = OneOf<{
|
||||
entityId: number;
|
||||
}>;
|
||||
|
|
@ -154,6 +161,8 @@ export type SortAttr = {
|
|||
wechatLogin: WechatLogin.SortAttr;
|
||||
} | {
|
||||
wechatMenu: WechatMenu.SortAttr;
|
||||
} | {
|
||||
wechatMpJump: WechatMpJump.SortAttr;
|
||||
} | {
|
||||
wechatPublicAutoReply: WechatPublicAutoReply.SortAttr;
|
||||
} | {
|
||||
|
|
@ -253,6 +262,18 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
entity: "wechatMenu";
|
||||
entityId: ForeignKey<"WechatMenu">;
|
||||
wechatMenu?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
wechatMpJump: WechatMpJump.CreateSingleOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation;
|
||||
} | {
|
||||
entity: "wechatMpJump";
|
||||
entityId: ForeignKey<"WechatMpJump">;
|
||||
wechatMpJump?: never;
|
||||
} | {
|
||||
entity?: never;
|
||||
entityId?: never;
|
||||
|
|
@ -351,6 +372,10 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
wechatMenu?: WechatMenu.CreateSingleOperation | WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.CreateSingleOperation | WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.CreateSingleOperation | WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
entityId?: never;
|
||||
|
|
@ -372,14 +397,15 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
entityId?: never;
|
||||
entity?: never;
|
||||
} | {
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
entity?: ("user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatPublicTemplate" | "wechatQrCode" | "wechatUser" | string) | null;
|
||||
entityId?: ForeignKey<"User" | "UserEntityGrant" | "UserSystem" | "UserWechatPublicTag" | "WechatLogin" | "WechatMenu" | "WechatMpJump" | "WechatPublicAutoReply" | "WechatPublicTag" | "WechatPublicTemplate" | "WechatQrCode" | "WechatUser"> | null;
|
||||
user?: never;
|
||||
userEntityGrant?: never;
|
||||
userSystem?: never;
|
||||
userWechatPublicTag?: never;
|
||||
wechatLogin?: never;
|
||||
wechatMenu?: never;
|
||||
wechatMpJump?: never;
|
||||
wechatPublicAutoReply?: never;
|
||||
wechatPublicTag?: never;
|
||||
wechatPublicTemplate?: never;
|
||||
|
|
@ -401,6 +427,8 @@ export type RemoveOperationData = {} & ({
|
|||
wechatLogin?: WechatLogin.UpdateOperation | WechatLogin.RemoveOperation;
|
||||
} | {
|
||||
wechatMenu?: WechatMenu.UpdateOperation | WechatMenu.RemoveOperation;
|
||||
} | {
|
||||
wechatMpJump?: WechatMpJump.UpdateOperation | WechatMpJump.RemoveOperation;
|
||||
} | {
|
||||
wechatPublicAutoReply?: WechatPublicAutoReply.UpdateOperation | WechatPublicAutoReply.RemoveOperation;
|
||||
} | {
|
||||
|
|
@ -423,6 +451,7 @@ export type UserSystemIdSubQuery = Selection<UserSystemIdProjection>;
|
|||
export type UserWechatPublicTagIdSubQuery = Selection<UserWechatPublicTagIdProjection>;
|
||||
export type WechatLoginIdSubQuery = Selection<WechatLoginIdProjection>;
|
||||
export type WechatMenuIdSubQuery = Selection<WechatMenuIdProjection>;
|
||||
export type WechatMpJumpIdSubQuery = Selection<WechatMpJumpIdProjection>;
|
||||
export type WechatPublicAutoReplyIdSubQuery = Selection<WechatPublicAutoReplyIdProjection>;
|
||||
export type WechatPublicTagIdSubQuery = Selection<WechatPublicTagIdProjection>;
|
||||
export type WechatPublicTemplateIdSubQuery = Selection<WechatPublicTemplateIdProjection>;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ exports.desc = {
|
|||
params: {
|
||||
length: 32
|
||||
},
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
ref: ["user", "userEntityGrant", "userSystem", "userWechatPublicTag", "wechatLogin", "wechatMenu", "wechatMpJump", "wechatPublicAutoReply", "wechatPublicTag", "wechatPublicTemplate", "wechatQrCode", "wechatUser"]
|
||||
},
|
||||
entityId: {
|
||||
notNull: true,
|
||||
|
|
|
|||
|
|
@ -50,11 +50,12 @@ const Storage_46 = require("./UserSystem/Storage");
|
|||
const Storage_47 = require("./UserWechatPublicTag/Storage");
|
||||
const Storage_48 = require("./WechatLogin/Storage");
|
||||
const Storage_49 = require("./WechatMenu/Storage");
|
||||
const Storage_50 = require("./WechatPublicAutoReply/Storage");
|
||||
const Storage_51 = require("./WechatPublicTag/Storage");
|
||||
const Storage_52 = require("./WechatPublicTemplate/Storage");
|
||||
const Storage_53 = require("./WechatQrCode/Storage");
|
||||
const Storage_54 = require("./WechatUser/Storage");
|
||||
const Storage_50 = require("./WechatMpJump/Storage");
|
||||
const Storage_51 = require("./WechatPublicAutoReply/Storage");
|
||||
const Storage_52 = require("./WechatPublicTag/Storage");
|
||||
const Storage_53 = require("./WechatPublicTemplate/Storage");
|
||||
const Storage_54 = require("./WechatQrCode/Storage");
|
||||
const Storage_55 = require("./WechatUser/Storage");
|
||||
exports.storageSchema = {
|
||||
actionAuth: Storage_1.desc,
|
||||
i18n: Storage_2.desc,
|
||||
|
|
@ -105,9 +106,10 @@ exports.storageSchema = {
|
|||
userWechatPublicTag: Storage_47.desc,
|
||||
wechatLogin: Storage_48.desc,
|
||||
wechatMenu: Storage_49.desc,
|
||||
wechatPublicAutoReply: Storage_50.desc,
|
||||
wechatPublicTag: Storage_51.desc,
|
||||
wechatPublicTemplate: Storage_52.desc,
|
||||
wechatQrCode: Storage_53.desc,
|
||||
wechatUser: Storage_54.desc
|
||||
wechatMpJump: Storage_50.desc,
|
||||
wechatPublicAutoReply: Storage_51.desc,
|
||||
wechatPublicTag: Storage_52.desc,
|
||||
wechatPublicTemplate: Storage_53.desc,
|
||||
wechatQrCode: Storage_54.desc,
|
||||
wechatUser: Storage_55.desc
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,182 @@
|
|||
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey, JsonFilter, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, AggregationResult } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Boolean, Datetime, Int, String } from "oak-domain/lib/types/DataType";
|
||||
import { EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import * as Message from "../Message/Schema";
|
||||
import * as ModiEntity from "../ModiEntity/Schema";
|
||||
import * as OperEntity from "../OperEntity/Schema";
|
||||
type Jump_wxa = {
|
||||
path?: string;
|
||||
query?: string;
|
||||
env_version?: string;
|
||||
};
|
||||
export type OpSchema = EntityShape & {
|
||||
messageId?: ForeignKey<"message"> | null;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;
|
||||
expireInterval?: Int<2> | null;
|
||||
expiresAt?: Datetime | null;
|
||||
expired: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
messageId?: ForeignKey<"message"> | null;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;
|
||||
expireInterval?: Int<2> | null;
|
||||
expiresAt?: Datetime | null;
|
||||
expired: Boolean;
|
||||
message?: Message.Schema | null;
|
||||
modiEntity$entity?: Array<ModiEntity.Schema>;
|
||||
modiEntity$entity$$aggr?: AggregationResult<ModiEntity.Schema>;
|
||||
operEntity$entity?: Array<OperEntity.Schema>;
|
||||
operEntity$entity$$aggr?: AggregationResult<OperEntity.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_StringValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
messageId: Q_StringValue;
|
||||
message: Message.Filter;
|
||||
jump_wxa: JsonFilter<Jump_wxa>;
|
||||
openlink: Q_StringValue;
|
||||
expireType: Q_NumberValue;
|
||||
expireInterval: Q_NumberValue;
|
||||
expiresAt: Q_DateValue;
|
||||
expired: Q_BooleanValue;
|
||||
modiEntity$entity: ModiEntity.Filter & SubQueryPredicateMetadata;
|
||||
operEntity$entity: OperEntity.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
"#id"?: NodeId;
|
||||
[k: string]: any;
|
||||
id?: number;
|
||||
$$createAt$$?: number;
|
||||
$$updateAt$$?: number;
|
||||
$$seq$$?: number;
|
||||
messageId?: number;
|
||||
message?: Message.Projection;
|
||||
jump_wxa?: number | JsonProjection<Jump_wxa>;
|
||||
openlink?: number;
|
||||
expireType?: number;
|
||||
expireInterval?: number;
|
||||
expiresAt?: number;
|
||||
expired?: number;
|
||||
modiEntity$entity?: ModiEntity.Selection & {
|
||||
$entity: "modiEntity";
|
||||
};
|
||||
modiEntity$entity$$aggr?: ModiEntity.Aggregation & {
|
||||
$entity: "modiEntity";
|
||||
};
|
||||
operEntity$entity?: OperEntity.Selection & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
operEntity$entity$$aggr?: OperEntity.Aggregation & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type WechatMpJumpIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
type MessageIdProjection = OneOf<{
|
||||
messageId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
$$createAt$$: number;
|
||||
} | {
|
||||
$$seq$$: number;
|
||||
} | {
|
||||
$$updateAt$$: number;
|
||||
} | {
|
||||
messageId: number;
|
||||
} | {
|
||||
message: Message.SortAttr;
|
||||
} | {
|
||||
jump_wxa: number;
|
||||
} | {
|
||||
openlink: number;
|
||||
} | {
|
||||
expireType: number;
|
||||
} | {
|
||||
expireInterval: number;
|
||||
} | {
|
||||
expiresAt: number;
|
||||
} | {
|
||||
expired: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
export type SortNode = {
|
||||
$attr: SortAttr;
|
||||
$direction?: "asc" | "desc";
|
||||
};
|
||||
export type Sorter = SortNode[];
|
||||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "messageId">> & (({
|
||||
messageId?: never;
|
||||
message?: Message.CreateSingleOperation;
|
||||
} | {
|
||||
messageId: ForeignKey<"message">;
|
||||
message?: Message.UpdateOperation;
|
||||
} | {
|
||||
message?: never;
|
||||
messageId?: ForeignKey<"message">;
|
||||
})) & {
|
||||
modiEntity$entity?: OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
operEntity$entity?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "messageId">> & (({
|
||||
message?: Message.CreateSingleOperation;
|
||||
messageId?: never;
|
||||
} | {
|
||||
message?: Message.UpdateOperation;
|
||||
messageId?: never;
|
||||
} | {
|
||||
message?: Message.RemoveOperation;
|
||||
messageId?: never;
|
||||
} | {
|
||||
message?: never;
|
||||
messageId?: ForeignKey<"message"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
modiEntity$entity?: OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<ModiEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
operEntity$entity?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "entity" | "entityId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
message?: Message.UpdateOperation | Message.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type MessageIdSubQuery = Selection<MessageIdProjection>;
|
||||
export type WechatMpJumpIdSubQuery = Selection<WechatMpJumpIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<GenericAction> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
Create: CreateOperation;
|
||||
Update: UpdateOperation;
|
||||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
};
|
||||
export {};
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { StorageDesc } from "oak-domain/lib/types/Storage";
|
||||
import { OpSchema } from "./Schema";
|
||||
export declare const desc: StorageDesc<OpSchema>;
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.desc = void 0;
|
||||
const action_1 = require("oak-domain/lib/actions/action");
|
||||
exports.desc = {
|
||||
attributes: {
|
||||
messageId: {
|
||||
type: "ref",
|
||||
ref: "message"
|
||||
},
|
||||
jump_wxa: {
|
||||
notNull: true,
|
||||
type: "object"
|
||||
},
|
||||
openlink: {
|
||||
notNull: true,
|
||||
type: "varchar",
|
||||
params: {
|
||||
length: 256
|
||||
}
|
||||
},
|
||||
expireType: {
|
||||
notNull: true,
|
||||
type: "int",
|
||||
params: {
|
||||
width: 1,
|
||||
signed: true
|
||||
}
|
||||
},
|
||||
expireInterval: {
|
||||
type: "int",
|
||||
params: {
|
||||
width: 2,
|
||||
signed: true
|
||||
}
|
||||
},
|
||||
expiresAt: {
|
||||
type: "datetime"
|
||||
},
|
||||
expired: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions: action_1.genericActions,
|
||||
indexes: [
|
||||
{
|
||||
name: 'index_uuid',
|
||||
attributes: [
|
||||
{
|
||||
name: 'expired',
|
||||
},
|
||||
{
|
||||
name: 'expiresAt',
|
||||
},
|
||||
],
|
||||
}
|
||||
]
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "name": "短信跳小程序", "attr": { "message": "消息", "expired": "是否过期", "jump_wxa": "目标小程序信息", "openlink": "目标链接及参数", "expireType": "失效类型", "expireInterval": "到期失效的间隔", "expiresAt": "过期时间" } }
|
||||
|
|
@ -47,6 +47,7 @@ import * as UserSystem from "./UserSystem/Schema";
|
|||
import * as UserWechatPublicTag from "./UserWechatPublicTag/Schema";
|
||||
import * as WechatLogin from "./WechatLogin/Schema";
|
||||
import * as WechatMenu from "./WechatMenu/Schema";
|
||||
import * as WechatMpJump from "./WechatMpJump/Schema";
|
||||
import * as WechatPublicAutoReply from "./WechatPublicAutoReply/Schema";
|
||||
import * as WechatPublicTag from "./WechatPublicTag/Schema";
|
||||
import * as WechatPublicTemplate from "./WechatPublicTemplate/Schema";
|
||||
|
|
@ -296,6 +297,8 @@ export type LivestreamIdSubQuery = {
|
|||
export type MessageIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (MessageSystem.MessageIdSubQuery & {
|
||||
entity: "messageSystem";
|
||||
}) | (WechatMpJump.MessageIdSubQuery & {
|
||||
entity: "wechatMpJump";
|
||||
}) | (Message.MessageIdSubQuery & {
|
||||
entity: "message";
|
||||
}) | any;
|
||||
|
|
@ -473,6 +476,15 @@ export type WechatMenuIdSubQuery = {
|
|||
entity: "wechatMenu";
|
||||
}) | any;
|
||||
};
|
||||
export type WechatMpJumpIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ModiEntity.WechatMpJumpIdSubQuery & {
|
||||
entity: "modiEntity";
|
||||
}) | (OperEntity.WechatMpJumpIdSubQuery & {
|
||||
entity: "operEntity";
|
||||
}) | (WechatMpJump.WechatMpJumpIdSubQuery & {
|
||||
entity: "wechatMpJump";
|
||||
}) | any;
|
||||
};
|
||||
export type WechatPublicAutoReplyIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ModiEntity.WechatPublicAutoReplyIdSubQuery & {
|
||||
entity: "modiEntity";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
import { Trigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const triggers: Trigger<EntityDict, 'wechatMpJump', BRC>[];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const assert_1 = require("oak-domain/lib/utils/assert");
|
||||
// import { wechatMpJump } from '@project/aspects/wechatMpJump';
|
||||
const triggers = [
|
||||
{
|
||||
name: '当创建WechatMpJump时,尝试为之创建一个wechatQrCode',
|
||||
entity: 'wechatMpJump',
|
||||
action: 'create',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, params) => {
|
||||
const { data, filter } = operation;
|
||||
const fn = async (wechatMpJumpData) => {
|
||||
const { jump_wxa, expiresAt, expireType, expireInterval } = wechatMpJumpData;
|
||||
Object.assign(wechatMpJumpData, {});
|
||||
};
|
||||
if (data instanceof Array) {
|
||||
(0, assert_1.assert)('授权不存在一对多的情况');
|
||||
}
|
||||
else {
|
||||
await fn(data);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
];
|
||||
exports.default = triggers;
|
||||
|
|
@ -56,6 +56,9 @@ import {
|
|||
syncToLocale,
|
||||
syncToWechat,
|
||||
} from './userWechatPublicTag';
|
||||
import {
|
||||
wechatMpJump,
|
||||
} from './wechatMpJump';
|
||||
|
||||
const aspectDict = {
|
||||
mergeUser,
|
||||
|
|
@ -110,6 +113,7 @@ const aspectDict = {
|
|||
tagging,
|
||||
syncToLocale,
|
||||
syncToWechat,
|
||||
wechatMpJump,
|
||||
};
|
||||
|
||||
export default aspectDict;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
import { EntityDict } from "../oak-app-domain";
|
||||
import { BackendRuntimeContext } from "../context/BackendRuntimeContext";
|
||||
import { OakUserException } from 'oak-domain/lib/types';
|
||||
import { cloneDeep } from 'oak-domain/lib/utils/lodash';
|
||||
import { applicationProjection } from '../types/Projection';
|
||||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
import { assert } from 'oak-domain/lib/utils/assert';
|
||||
import {
|
||||
AppType,
|
||||
WechatPublicConfig,
|
||||
WechatMpConfig,
|
||||
} from '../oak-app-domain/Application/Schema';
|
||||
import {
|
||||
WechatPublicInstance,
|
||||
WechatMpInstance,
|
||||
WechatSDK,
|
||||
} from 'oak-external-sdk';
|
||||
export async function wechatMpJump<
|
||||
ED extends EntityDict,
|
||||
Cxt extends BackendRuntimeContext<ED>
|
||||
>(
|
||||
params: {
|
||||
applicationId: string;
|
||||
jump_wxa: { path: string, query: string, env_version: string };
|
||||
expireType: number;
|
||||
expiresAt: number;
|
||||
expireInterval: number;
|
||||
},
|
||||
context: Cxt
|
||||
): Promise<any> {
|
||||
const { applicationId, jump_wxa, expireType, expiresAt, expireInterval } = params;
|
||||
assert(applicationId);
|
||||
const [application] = await context.select(
|
||||
'application',
|
||||
{
|
||||
data: cloneDeep(applicationProjection),
|
||||
filter: {
|
||||
id: applicationId,
|
||||
},
|
||||
},
|
||||
{
|
||||
dontCollect: true,
|
||||
}
|
||||
);
|
||||
assert(application);
|
||||
const { type, config } = application!;
|
||||
assert(type === 'wechatMp');
|
||||
|
||||
const config2 = config as WechatMpConfig;
|
||||
const { appId, appSecret } = config2;
|
||||
|
||||
const wechatInstance = WechatSDK.getInstance(
|
||||
appId,
|
||||
'wechatMp',
|
||||
appSecret
|
||||
) as WechatMpInstance;
|
||||
|
||||
const result = await wechatInstance.getURLScheme({ jump_wxa, expireType, expiresAt, expireInterval });
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
@ -21,16 +21,16 @@ export default OakComponent({
|
|||
},
|
||||
listeners: {
|
||||
'visitState,userId'(prev, next) {
|
||||
const userId2 = this.features.token.getUserId(true);
|
||||
if (next.userId === userId2) {
|
||||
if (next.visitState === 'unvisited') {
|
||||
this.execute('visit', false);
|
||||
}
|
||||
}
|
||||
const userId2 = this.features.token.getUserId(true);
|
||||
if (next.userId === userId2) {
|
||||
if (next.visitState === 'unvisited') {
|
||||
this.execute('visit', false);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
goPage() {
|
||||
async goPage() {
|
||||
const { router } = this.state;
|
||||
const pathname = router?.pathname;
|
||||
const props = router?.props || {};
|
||||
|
|
@ -38,15 +38,29 @@ export default OakComponent({
|
|||
if (!pathname) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await this.redirectTo(
|
||||
{
|
||||
url: pathname,
|
||||
...props,
|
||||
|
||||
this.redirectTo(
|
||||
{
|
||||
url: pathname,
|
||||
...props,
|
||||
},
|
||||
state,
|
||||
true
|
||||
);
|
||||
},
|
||||
state,
|
||||
true
|
||||
);
|
||||
}
|
||||
catch (err: any) {
|
||||
if (process.env.OAK_PLATFORM === 'wechatMp') {
|
||||
if (err?.errMsg?.includes('navigateTo:fail')) {
|
||||
this.features.message.setMessage({
|
||||
type: 'warning',
|
||||
content: '该功能请去电脑端操作,网址https://www.gecomebox.com/console/',
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
import { Boolean, Text, Datetime, Int, String } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { LocaleDef } from 'oak-domain/lib/types/Locale';
|
||||
import { Index } from 'oak-domain/lib/types/Storage';
|
||||
import { Schema as Message } from './Message';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
|
||||
type Jump_wxa = {
|
||||
path?: string;
|
||||
query?: string;
|
||||
env_version?: string;
|
||||
};
|
||||
export interface Schema extends EntityShape {
|
||||
message?: Message;
|
||||
jump_wxa: Jump_wxa;
|
||||
openlink: String<256>;
|
||||
expireType: Int<1>;//到期失效的 scheme 码失效类型,失效时间:0,失效间隔天数:1 ,默认0
|
||||
expireInterval?: Int<2>;//expire_type 为 1 时必填,失效的间隔天数
|
||||
expiresAt?: Datetime;//expire_type 为 0 时必填,失效的时间
|
||||
expired: Boolean;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const entityDesc: EntityDesc<
|
||||
Schema,
|
||||
'',
|
||||
'',
|
||||
{
|
||||
}
|
||||
> = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '短信跳小程序',
|
||||
attr: {
|
||||
message: '消息',
|
||||
expired: '是否过期',
|
||||
jump_wxa: '目标小程序信息',
|
||||
openlink: "目标链接及参数",
|
||||
expireType: '失效类型',
|
||||
expireInterval: '到期失效的间隔',
|
||||
expiresAt: '过期时间',
|
||||
|
||||
},
|
||||
},
|
||||
},
|
||||
indexes: [
|
||||
{
|
||||
name: 'index_uuid',
|
||||
attributes: [
|
||||
{
|
||||
name: 'expired',
|
||||
},
|
||||
{
|
||||
name: 'expiresAt',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
Loading…
Reference in New Issue