build
This commit is contained in:
parent
1c205e6849
commit
9ef22c7df4
|
|
@ -24,10 +24,10 @@ export default OakComponent({
|
|||
},
|
||||
isList: false,
|
||||
properties: {
|
||||
accountId: '',
|
||||
accountAvailMax: 0,
|
||||
accountId: '', // 是否可以使用帐户中的余额抵扣
|
||||
accountAvailMax: 0, // 本次交易可以使用的帐户中的Avail max值,调用者自己保证此数值的一致性,不要扣成负数
|
||||
onSetPays: (pays) => undefined,
|
||||
accountTips: '',
|
||||
accountTips: '', // 使用余额支付的提示说明
|
||||
autoStartPay: false,
|
||||
},
|
||||
formData({ data }) {
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ export default OakComponent({
|
|||
},
|
||||
},
|
||||
filter: {
|
||||
settled: 0,
|
||||
settled: 0, //todo 部分settle的order是否需要统计在内
|
||||
price: {
|
||||
$gt: 0,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export const entityDesc = {
|
|||
keyType: '指定应用私钥类型',
|
||||
gateway: "支付宝网关地址",
|
||||
wsServiceUrl: 'websocket服务地址',
|
||||
timeout: "网关超时时间",
|
||||
timeout: "网关超时时间", //(单位毫秒),默认值是 5000
|
||||
needEncrypt: "是否需要AES加解密",
|
||||
encryptKey: 'AES密钥', //调用AES加解密相关接口时需要
|
||||
},
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ export const desc = {
|
|||
type: "object"
|
||||
}
|
||||
},
|
||||
static: true,
|
||||
actionType: "crud",
|
||||
actions,
|
||||
indexes: [
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/E
|
|||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { String, Text } from "oak-domain/lib/types/DataType";
|
||||
import { Style } from "oak-general-business/lib/types/Style";
|
||||
export type Passport = "email" | "mobile" | "wechat" | "wechatPublic" | "wechatNative";
|
||||
export type AppType = "web" | "wechatMp" | "wechatPublic" | "native";
|
||||
export type WechatMpConfig = {
|
||||
type: "wechatMp";
|
||||
|
|
@ -19,7 +18,6 @@ export type WechatMpConfig = {
|
|||
mode: "clear" | "compatible" | "safe";
|
||||
dataFormat: "json" | "xml";
|
||||
};
|
||||
passport?: Passport[];
|
||||
};
|
||||
export type WebConfig = {
|
||||
type: "web";
|
||||
|
|
@ -33,7 +31,6 @@ export type WebConfig = {
|
|||
appId: string;
|
||||
appSecret: string;
|
||||
};
|
||||
passport?: Passport[];
|
||||
location: {
|
||||
protocol: "http:" | "https:";
|
||||
hostname: string;
|
||||
|
|
@ -56,7 +53,6 @@ export type WechatPublicConfig = {
|
|||
appId: string;
|
||||
originalId: string;
|
||||
};
|
||||
passport?: Passport[];
|
||||
location: {
|
||||
protocol: "http:" | "https:";
|
||||
hostname: string;
|
||||
|
|
@ -65,7 +61,6 @@ export type WechatPublicConfig = {
|
|||
};
|
||||
export type NativeConfig = {
|
||||
type: "native";
|
||||
passport?: Passport[];
|
||||
wechatNative?: {
|
||||
appId: string;
|
||||
appSecret: string;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,12 @@ export const desc = {
|
|||
length: 32
|
||||
}
|
||||
},
|
||||
prevPasswordSha1: {
|
||||
type: "text"
|
||||
},
|
||||
newPasswordSha1: {
|
||||
type: "text"
|
||||
},
|
||||
result: {
|
||||
notNull: true,
|
||||
type: "enum",
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ import { ForeignKey } from "oak-domain/lib/types/DataType";
|
|||
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { String } from "oak-domain/lib/types/DataType";
|
||||
import { String, Text } from "oak-domain/lib/types/DataType";
|
||||
export type OpSchema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
prevPassword?: String<32> | null;
|
||||
newPassword?: String<32> | null;
|
||||
prevPasswordSha1?: Text | null;
|
||||
newPasswordSha1?: Text | null;
|
||||
result: "success" | "fail";
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
@ -20,6 +22,8 @@ export type OpFilter = {
|
|||
userId: Q_StringValue;
|
||||
prevPassword: Q_StringValue;
|
||||
newPassword: Q_StringValue;
|
||||
prevPasswordSha1: Q_StringValue;
|
||||
newPasswordSha1: Q_StringValue;
|
||||
result: Q_EnumValue<"success" | "fail">;
|
||||
} & ExprOp<OpAttr | string>;
|
||||
export type OpProjection = {
|
||||
|
|
@ -32,6 +36,8 @@ export type OpProjection = {
|
|||
userId?: number;
|
||||
prevPassword?: number;
|
||||
newPassword?: number;
|
||||
prevPasswordSha1?: number;
|
||||
newPasswordSha1?: number;
|
||||
result?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
export type OpSortAttr = Partial<{
|
||||
|
|
@ -42,6 +48,8 @@ export type OpSortAttr = Partial<{
|
|||
userId: number;
|
||||
prevPassword: number;
|
||||
newPassword: number;
|
||||
prevPasswordSha1: number;
|
||||
newPasswordSha1: number;
|
||||
result: number;
|
||||
[k: string]: any;
|
||||
} | ExprOp<OpAttr | string>>;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
"user": "用户",
|
||||
"prevPassword": "原密码",
|
||||
"newPassword": "新密码",
|
||||
"prevPasswordSha1": "原sha1加密密码",
|
||||
"newPasswordSha1": "新sha1加密密码",
|
||||
"result": "修改结果"
|
||||
},
|
||||
"v": {
|
||||
|
|
|
|||
|
|
@ -117,12 +117,14 @@ export type ActionAuth = {
|
|||
Aggregation: DeduceAggregation<ActionAuth["Projection"], ActionAuth["Filter"], ActionAuth["Sorter"]>;
|
||||
CreateOperationData: FormCreateData<BaseActionAuth.OpSchema & {
|
||||
relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]>;
|
||||
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]>;
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", ActionAuth["CreateOperationData"]>;
|
||||
CreateMulti: OakOperation<"create", Array<ActionAuth["CreateOperationData"]>>;
|
||||
Create: ActionAuth["CreateSingle"] | ActionAuth["CreateMulti"];
|
||||
UpdateOperationData: FormUpdateData<BaseActionAuth.OpSchema & {
|
||||
relation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]> | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>;
|
||||
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]> | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>;
|
||||
}>;
|
||||
Update: OakOperation<BaseActionAuth.OpUpdateAction, ActionAuth["UpdateOperationData"], ActionAuth["Filter"], ActionAuth["Sorter"]>;
|
||||
RemoveOperationData: {};
|
||||
|
|
@ -400,11 +402,17 @@ export type Path = {
|
|||
Sorter: Path["SortNode"][];
|
||||
Selection: OakSelection<"select", Path["Projection"], Path["Filter"], Path["Sorter"]>;
|
||||
Aggregation: DeduceAggregation<Path["Projection"], Path["Filter"], Path["Sorter"]>;
|
||||
CreateOperationData: FormCreateData<BasePath.OpSchema>;
|
||||
CreateOperationData: FormCreateData<BasePath.OpSchema & {
|
||||
actionAuth$path?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "path"> | Omit<ActionAuth["CreateOperationData"], "path">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "path">, ActionAuth["Filter"]>)[];
|
||||
relationAuth$path?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "path"> | Omit<RelationAuth["CreateOperationData"], "path">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "path">, RelationAuth["Filter"]>)[];
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", Path["CreateOperationData"]>;
|
||||
CreateMulti: OakOperation<"create", Array<Path["CreateOperationData"]>>;
|
||||
Create: Path["CreateSingle"] | Path["CreateMulti"];
|
||||
UpdateOperationData: FormUpdateData<BasePath.OpSchema>;
|
||||
UpdateOperationData: FormUpdateData<BasePath.OpSchema & {
|
||||
actionAuth$path?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "path"> | Omit<ActionAuth["CreateOperationData"], "path">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "path">, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[];
|
||||
relationAuth$path?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "path"> | Omit<RelationAuth["CreateOperationData"], "path">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "path">, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[];
|
||||
}>;
|
||||
Update: OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"], Path["Sorter"]>;
|
||||
RemoveOperationData: {};
|
||||
Remove: OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"], Path["Sorter"]>;
|
||||
|
|
@ -490,6 +498,9 @@ export type Relation = {
|
|||
platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation<BasePlatform.OpUpdateAction, Platform["UpdateOperationData"], Platform["Filter"]>;
|
||||
session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation<BaseSession.OpUpdateAction, Session["UpdateOperationData"], Session["Filter"]>;
|
||||
toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation<BaseToDo.OpUpdateAction, ToDo["UpdateOperationData"], ToDo["Filter"]>;
|
||||
actionAuth$relation?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "relation"> | Omit<ActionAuth["CreateOperationData"], "relation">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "relation">, ActionAuth["Filter"]>)[];
|
||||
relationAuth$sourceRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "sourceRelation"> | Omit<RelationAuth["CreateOperationData"], "sourceRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "sourceRelation">, RelationAuth["Filter"]>)[];
|
||||
relationAuth$destRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "destRelation"> | Omit<RelationAuth["CreateOperationData"], "destRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "destRelation">, RelationAuth["Filter"]>)[];
|
||||
userEntityClaim$relation?: (OakOperation<"create", Omit<UserEntityClaim["CreateOperationData"], "relation"> | Omit<UserEntityClaim["CreateOperationData"], "relation">[]> | OakOperation<BaseUserEntityClaim.OpUpdateAction, Omit<UserEntityClaim["UpdateOperationData"], "relation">, UserEntityClaim["Filter"]>)[];
|
||||
userRelation$relation?: (OakOperation<"create", Omit<UserRelation["CreateOperationData"], "relation"> | Omit<UserRelation["CreateOperationData"], "relation">[]> | OakOperation<BaseUserRelation.OpUpdateAction, Omit<UserRelation["UpdateOperationData"], "relation">, UserRelation["Filter"]>)[];
|
||||
}>;
|
||||
|
|
@ -500,6 +511,9 @@ export type Relation = {
|
|||
platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation<BasePlatform.OpUpdateAction, Platform["UpdateOperationData"], Platform["Filter"]> | OakOperation<"remove", Platform["RemoveOperationData"], Platform["Filter"]>;
|
||||
session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation<BaseSession.OpUpdateAction, Session["UpdateOperationData"], Session["Filter"]> | OakOperation<"remove", Session["RemoveOperationData"], Session["Filter"]>;
|
||||
toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation<BaseToDo.OpUpdateAction, ToDo["UpdateOperationData"], ToDo["Filter"]> | OakOperation<"remove", ToDo["RemoveOperationData"], ToDo["Filter"]>;
|
||||
actionAuth$relation?: (OakOperation<"create", Omit<ActionAuth["CreateOperationData"], "relation"> | Omit<ActionAuth["CreateOperationData"], "relation">[]> | OakOperation<BaseActionAuth.OpUpdateAction, Omit<ActionAuth["UpdateOperationData"], "relation">, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[];
|
||||
relationAuth$sourceRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "sourceRelation"> | Omit<RelationAuth["CreateOperationData"], "sourceRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "sourceRelation">, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[];
|
||||
relationAuth$destRelation?: (OakOperation<"create", Omit<RelationAuth["CreateOperationData"], "destRelation"> | Omit<RelationAuth["CreateOperationData"], "destRelation">[]> | OakOperation<BaseRelationAuth.OpUpdateAction, Omit<RelationAuth["UpdateOperationData"], "destRelation">, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[];
|
||||
userEntityClaim$relation?: (OakOperation<"create", Omit<UserEntityClaim["CreateOperationData"], "relation"> | Omit<UserEntityClaim["CreateOperationData"], "relation">[]> | OakOperation<BaseUserEntityClaim.OpUpdateAction, Omit<UserEntityClaim["UpdateOperationData"], "relation">, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[];
|
||||
userRelation$relation?: (OakOperation<"create", Omit<UserRelation["CreateOperationData"], "relation"> | Omit<UserRelation["CreateOperationData"], "relation">[]> | OakOperation<BaseUserRelation.OpUpdateAction, Omit<UserRelation["UpdateOperationData"], "relation">, UserRelation["Filter"]> | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>)[];
|
||||
}>;
|
||||
|
|
@ -541,6 +555,7 @@ export type RelationAuth = {
|
|||
Aggregation: DeduceAggregation<RelationAuth["Projection"], RelationAuth["Filter"], RelationAuth["Sorter"]>;
|
||||
CreateOperationData: FormCreateData<BaseRelationAuth.OpSchema & {
|
||||
sourceRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]>;
|
||||
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]>;
|
||||
destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]>;
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", RelationAuth["CreateOperationData"]>;
|
||||
|
|
@ -548,6 +563,7 @@ export type RelationAuth = {
|
|||
Create: RelationAuth["CreateSingle"] | RelationAuth["CreateMulti"];
|
||||
UpdateOperationData: FormUpdateData<BaseRelationAuth.OpSchema & {
|
||||
sourceRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]> | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>;
|
||||
path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation<BasePath.OpUpdateAction, Path["UpdateOperationData"], Path["Filter"]> | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>;
|
||||
destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation<BaseRelation.OpUpdateAction, Relation["UpdateOperationData"], Relation["Filter"]> | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>;
|
||||
}>;
|
||||
Update: OakOperation<BaseRelationAuth.OpUpdateAction, RelationAuth["UpdateOperationData"], RelationAuth["Filter"], RelationAuth["Sorter"]>;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ export const desc = {
|
|||
origin: {
|
||||
notNull: true,
|
||||
type: "enum",
|
||||
enumeration: ["qiniu", "wechat", "ctyun", "aliyun", "tencent", "local", "unknown"]
|
||||
enumeration: ["qiniu", "wechat", "ctyun", "aliyun", "tencent", "local", "unknown", "s3"]
|
||||
},
|
||||
type: {
|
||||
notNull: true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
export const style = {
|
||||
color: {
|
||||
origin: {
|
||||
s3: '#FFA500',
|
||||
qiniu: '#37caff',
|
||||
wechat: '#2aae67',
|
||||
ctyun: '#ff0000',
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/E
|
|||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { String, Text, Int, Float, Boolean } from "oak-domain/lib/types/DataType";
|
||||
export type OpSchema = EntityShape & {
|
||||
origin: "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown";
|
||||
origin: "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown" | "s3";
|
||||
type: "image" | "video" | "audio" | "file";
|
||||
bucket?: String<32> | null;
|
||||
objectId?: String<64> | null;
|
||||
|
|
@ -33,7 +33,7 @@ export type OpFilter = {
|
|||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_NumberValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
origin: Q_EnumValue<"qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown">;
|
||||
origin: Q_EnumValue<"qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown" | "s3">;
|
||||
type: Q_EnumValue<"image" | "video" | "audio" | "file">;
|
||||
bucket: Q_StringValue;
|
||||
objectId: Q_StringValue;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@
|
|||
"aliyun": "阿里云",
|
||||
"tencent": "腾讯云",
|
||||
"local": "本地",
|
||||
"unknown": "未知"
|
||||
"unknown": "未知",
|
||||
"s3": "S3"
|
||||
},
|
||||
"type": {
|
||||
"image": "图像",
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ export const desc = {
|
|||
type: "object"
|
||||
}
|
||||
},
|
||||
static: true,
|
||||
actionType: "crud",
|
||||
actions,
|
||||
indexes: [
|
||||
|
|
|
|||
|
|
@ -27,10 +27,18 @@ export type PfwConfig = {
|
|||
export type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
export type PwdConfig = {
|
||||
mode: "all" | "plain" | "sha1";
|
||||
min: number;
|
||||
max: number;
|
||||
verify?: boolean;
|
||||
regexs?: string[];
|
||||
tip?: string;
|
||||
};
|
||||
export type OpSchema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig) | null;
|
||||
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig) | null;
|
||||
enabled: Boolean;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
@ -43,7 +51,7 @@ export type OpFilter = {
|
|||
$$updateAt$$: Q_DateValue;
|
||||
systemId: Q_StringValue;
|
||||
type: Q_EnumValue<Type>;
|
||||
config: JsonFilter<SmsConfig | EmailConfig | PfwConfig | MfwConfig>;
|
||||
config: JsonFilter<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig>;
|
||||
enabled: Q_BooleanValue;
|
||||
} & ExprOp<OpAttr | string>;
|
||||
export type OpProjection = {
|
||||
|
|
@ -55,7 +63,7 @@ export type OpProjection = {
|
|||
$$seq$$?: number;
|
||||
systemId?: number;
|
||||
type?: number;
|
||||
config?: number | JsonProjection<SmsConfig | EmailConfig | PfwConfig | MfwConfig>;
|
||||
config?: number | JsonProjection<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig>;
|
||||
enabled?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
export type OpSortAttr = Partial<{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ export const desc = {
|
|||
}
|
||||
},
|
||||
recursive: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
},
|
||||
sourceEntity: {
|
||||
|
|
@ -33,7 +32,6 @@ export const desc = {
|
|||
}
|
||||
}
|
||||
},
|
||||
static: true,
|
||||
actionType: "crud",
|
||||
actions,
|
||||
indexes: [
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { String, Boolean } from "oak-domain/lib/types/DataType";
|
|||
export type OpSchema = EntityShape & {
|
||||
destEntity: String<32>;
|
||||
value: String<256>;
|
||||
recursive: Boolean;
|
||||
recursive?: Boolean | null;
|
||||
sourceEntity: String<32>;
|
||||
desc?: String<256> | null;
|
||||
} & {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ export const desc = {
|
|||
ref: "relation"
|
||||
}
|
||||
},
|
||||
static: true,
|
||||
actionType: "crud",
|
||||
actions,
|
||||
indexes: [
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ export const desc = {
|
|||
type: "ref",
|
||||
ref: "platform"
|
||||
},
|
||||
folder // 提现的loss在用户提现时计算
|
||||
: {
|
||||
folder: {
|
||||
type: "varchar",
|
||||
params: {
|
||||
length: 16
|
||||
|
|
|
|||
|
|
@ -190,10 +190,10 @@ export default class AliPay extends AliPayDebug {
|
|||
const qrCodeWidth = this.apProduct.config?.qrCodeWidth || 100;
|
||||
const params = {
|
||||
bizContent: {
|
||||
subject: pay.order?.desc || (pay.orderId ? '订单支付' : '帐户充值'),
|
||||
out_trade_no: out_trade_no,
|
||||
total_amount: totalAmount,
|
||||
product_code: 'FAST_INSTANT_TRADE_PAY',
|
||||
subject: pay.order?.desc || (pay.orderId ? '订单支付' : '帐户充值'), // 订单标题
|
||||
out_trade_no: out_trade_no, // 商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复
|
||||
total_amount: totalAmount, // 订单总金额,单位为元
|
||||
product_code: 'FAST_INSTANT_TRADE_PAY', // 销售产品码,商家和支付宝签约的产品码
|
||||
notify_url: payNotifyUrl,
|
||||
qr_pay_mode: qrPayMode,
|
||||
qrcode_width: qrCodeWidth,
|
||||
|
|
|
|||
|
|
@ -157,9 +157,9 @@ export default class WechatMpShipDebug {
|
|||
name: from.name,
|
||||
mobile: from.phone,
|
||||
// country: from!.area!.parent!.parent!.name!, //国家
|
||||
province: from.area.parent.parent.name,
|
||||
city: from.area.parent.name,
|
||||
area: from.area.name,
|
||||
province: from.area.parent.parent.name, //省份
|
||||
city: from.area.parent.name, //市
|
||||
area: from.area.name, // 区
|
||||
address: from.detail, //详细地址
|
||||
},
|
||||
receiver: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
import { Checker } from 'oak-domain/lib/types';
|
||||
import { RuntimeCxt } from '../types/RuntimeCxt';
|
||||
declare const checkers: Checker<EntityDict, keyof EntityDict, RuntimeCxt>[];
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/E
|
|||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { String, Text } from "oak-domain/lib/types/DataType";
|
||||
import { Style } from "oak-general-business/lib/types/Style";
|
||||
export type Passport = "email" | "mobile" | "wechat" | "wechatPublic" | "wechatNative";
|
||||
export type AppType = "web" | "wechatMp" | "wechatPublic" | "native";
|
||||
export type WechatMpConfig = {
|
||||
type: "wechatMp";
|
||||
|
|
@ -19,7 +18,6 @@ export type WechatMpConfig = {
|
|||
mode: "clear" | "compatible" | "safe";
|
||||
dataFormat: "json" | "xml";
|
||||
};
|
||||
passport?: Passport[];
|
||||
};
|
||||
export type WebConfig = {
|
||||
type: "web";
|
||||
|
|
@ -33,7 +31,6 @@ export type WebConfig = {
|
|||
appId: string;
|
||||
appSecret: string;
|
||||
};
|
||||
passport?: Passport[];
|
||||
location: {
|
||||
protocol: "http:" | "https:";
|
||||
hostname: string;
|
||||
|
|
@ -56,7 +53,6 @@ export type WechatPublicConfig = {
|
|||
appId: string;
|
||||
originalId: string;
|
||||
};
|
||||
passport?: Passport[];
|
||||
location: {
|
||||
protocol: "http:" | "https:";
|
||||
hostname: string;
|
||||
|
|
@ -65,7 +61,6 @@ export type WechatPublicConfig = {
|
|||
};
|
||||
export type NativeConfig = {
|
||||
type: "native";
|
||||
passport?: Passport[];
|
||||
wechatNative?: {
|
||||
appId: string;
|
||||
appSecret: string;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,12 @@ exports.desc = {
|
|||
length: 32
|
||||
}
|
||||
},
|
||||
prevPasswordSha1: {
|
||||
type: "text"
|
||||
},
|
||||
newPasswordSha1: {
|
||||
type: "text"
|
||||
},
|
||||
result: {
|
||||
notNull: true,
|
||||
type: "enum",
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ import { ForeignKey } from "oak-domain/lib/types/DataType";
|
|||
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { String } from "oak-domain/lib/types/DataType";
|
||||
import { String, Text } from "oak-domain/lib/types/DataType";
|
||||
export type OpSchema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
prevPassword?: String<32> | null;
|
||||
newPassword?: String<32> | null;
|
||||
prevPasswordSha1?: Text | null;
|
||||
newPasswordSha1?: Text | null;
|
||||
result: "success" | "fail";
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
@ -20,6 +22,8 @@ export type OpFilter = {
|
|||
userId: Q_StringValue;
|
||||
prevPassword: Q_StringValue;
|
||||
newPassword: Q_StringValue;
|
||||
prevPasswordSha1: Q_StringValue;
|
||||
newPasswordSha1: Q_StringValue;
|
||||
result: Q_EnumValue<"success" | "fail">;
|
||||
} & ExprOp<OpAttr | string>;
|
||||
export type OpProjection = {
|
||||
|
|
@ -32,6 +36,8 @@ export type OpProjection = {
|
|||
userId?: number;
|
||||
prevPassword?: number;
|
||||
newPassword?: number;
|
||||
prevPasswordSha1?: number;
|
||||
newPasswordSha1?: number;
|
||||
result?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
export type OpSortAttr = Partial<{
|
||||
|
|
@ -42,6 +48,8 @@ export type OpSortAttr = Partial<{
|
|||
userId: number;
|
||||
prevPassword: number;
|
||||
newPassword: number;
|
||||
prevPasswordSha1: number;
|
||||
newPasswordSha1: number;
|
||||
result: number;
|
||||
[k: string]: any;
|
||||
} | ExprOp<OpAttr | string>>;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
"user": "用户",
|
||||
"prevPassword": "原密码",
|
||||
"newPassword": "新密码",
|
||||
"prevPasswordSha1": "原sha1加密密码",
|
||||
"newPasswordSha1": "新sha1加密密码",
|
||||
"result": "修改结果"
|
||||
},
|
||||
"v": {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ exports.desc = {
|
|||
origin: {
|
||||
notNull: true,
|
||||
type: "enum",
|
||||
enumeration: ["qiniu", "wechat", "ctyun", "aliyun", "tencent", "local", "unknown"]
|
||||
enumeration: ["qiniu", "wechat", "ctyun", "aliyun", "tencent", "local", "unknown", "s3"]
|
||||
},
|
||||
type: {
|
||||
notNull: true,
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ exports.style = void 0;
|
|||
exports.style = {
|
||||
color: {
|
||||
origin: {
|
||||
s3: '#FFA500',
|
||||
qiniu: '#37caff',
|
||||
wechat: '#2aae67',
|
||||
ctyun: '#ff0000',
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/E
|
|||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { String, Text, Int, Float, Boolean } from "oak-domain/lib/types/DataType";
|
||||
export type OpSchema = EntityShape & {
|
||||
origin: "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown";
|
||||
origin: "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown" | "s3";
|
||||
type: "image" | "video" | "audio" | "file";
|
||||
bucket?: String<32> | null;
|
||||
objectId?: String<64> | null;
|
||||
|
|
@ -33,7 +33,7 @@ export type OpFilter = {
|
|||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_NumberValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
origin: Q_EnumValue<"qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown">;
|
||||
origin: Q_EnumValue<"qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "local" | "unknown" | "s3">;
|
||||
type: Q_EnumValue<"image" | "video" | "audio" | "file">;
|
||||
bucket: Q_StringValue;
|
||||
objectId: Q_StringValue;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@
|
|||
"aliyun": "阿里云",
|
||||
"tencent": "腾讯云",
|
||||
"local": "本地",
|
||||
"unknown": "未知"
|
||||
"unknown": "未知",
|
||||
"s3": "S3"
|
||||
},
|
||||
"type": {
|
||||
"image": "图像",
|
||||
|
|
|
|||
|
|
@ -27,10 +27,18 @@ export type PfwConfig = {
|
|||
export type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
export type PwdConfig = {
|
||||
mode: "all" | "plain" | "sha1";
|
||||
min: number;
|
||||
max: number;
|
||||
verify?: boolean;
|
||||
regexs?: string[];
|
||||
tip?: string;
|
||||
};
|
||||
export type OpSchema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig) | null;
|
||||
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig) | null;
|
||||
enabled: Boolean;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
@ -43,7 +51,7 @@ export type OpFilter = {
|
|||
$$updateAt$$: Q_DateValue;
|
||||
systemId: Q_StringValue;
|
||||
type: Q_EnumValue<Type>;
|
||||
config: JsonFilter<SmsConfig | EmailConfig | PfwConfig | MfwConfig>;
|
||||
config: JsonFilter<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig>;
|
||||
enabled: Q_BooleanValue;
|
||||
} & ExprOp<OpAttr | string>;
|
||||
export type OpProjection = {
|
||||
|
|
@ -55,7 +63,7 @@ export type OpProjection = {
|
|||
$$seq$$?: number;
|
||||
systemId?: number;
|
||||
type?: number;
|
||||
config?: number | JsonProjection<SmsConfig | EmailConfig | PfwConfig | MfwConfig>;
|
||||
config?: number | JsonProjection<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig>;
|
||||
enabled?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
export type OpSortAttr = Partial<{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Importation, Exportation } from "oak-domain/lib/types/Port";
|
||||
import { EntityDict } from "@oak-app-domain";
|
||||
import { EntityDict } from "../oak-app-domain/index";
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
export declare const importations: Importation<EntityDict, keyof EntityDict, any, BRC>[];
|
||||
export declare const exportations: Exportation<EntityDict, keyof EntityDict, any, BRC>[];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Routine } from 'oak-domain/lib/types/Timer';
|
||||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const startRoutines: Array<Routine<EntityDict, keyof EntityDict, BRC>>;
|
||||
export default startRoutines;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Timer } from 'oak-domain/lib/types/Timer';
|
||||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const _default: Timer<EntityDict, keyof EntityDict, BRC>[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Timer } from 'oak-domain/lib/types/Timer';
|
||||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const timers: Array<Timer<EntityDict, 'ship', BRC>>;
|
||||
export default timers;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ const tslib_1 = require("tslib");
|
|||
const uuid_1 = require("oak-domain/lib/utils/uuid");
|
||||
const assert_1 = tslib_1.__importDefault(require("assert"));
|
||||
const payClazz_1 = require("../utils/payClazz");
|
||||
const constants_1 = require("@project/config/constants");
|
||||
const constants_1 = require("../config/constants");
|
||||
const triggers = [
|
||||
/* {
|
||||
entity: 'deposit',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
import { Trigger } from 'oak-domain/lib/types';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const triggers: Trigger<EntityDict, keyof EntityDict, BRC>[];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { OakException, OpRecord } from 'oak-domain/lib/types';
|
||||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
/**
|
||||
* 退款时级联创建的opers的price总和小于本次退款金额-订单未结算金额
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Watcher } from 'oak-domain/lib/types';
|
||||
import { EntityDict } from '@oak-app-domain';
|
||||
import { EntityDict } from '../oak-app-domain/index';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const watchers: Watcher<EntityDict, keyof EntityDict, BRC>[];
|
||||
export default watchers;
|
||||
|
|
|
|||
Loading…
Reference in New Issue