diff --git a/es/components/order/pay/index.js b/es/components/order/pay/index.js index 721793a8..26bd7a1c 100644 --- a/es/components/order/pay/index.js +++ b/es/components/order/pay/index.js @@ -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 }) { diff --git a/es/components/sysAccount/survey/index.js b/es/components/sysAccount/survey/index.js index 1b898fa5..170d5318 100644 --- a/es/components/sysAccount/survey/index.js +++ b/es/components/sysAccount/survey/index.js @@ -156,7 +156,7 @@ export default OakComponent({ }, }, filter: { - settled: 0, + settled: 0, //todo 部分settle的order是否需要统计在内 price: { $gt: 0, }, diff --git a/es/entities/ApAccount.js b/es/entities/ApAccount.js index 9bd9ca3f..3ac66f80 100644 --- a/es/entities/ApAccount.js +++ b/es/entities/ApAccount.js @@ -30,7 +30,7 @@ export const entityDesc = { keyType: '指定应用私钥类型', gateway: "支付宝网关地址", wsServiceUrl: 'websocket服务地址', - timeout: "网关超时时间", + timeout: "网关超时时间", //(单位毫秒),默认值是 5000 needEncrypt: "是否需要AES加解密", encryptKey: 'AES密钥', //调用AES加解密相关接口时需要 }, diff --git a/es/oak-app-domain/ActionAuth/Storage.js b/es/oak-app-domain/ActionAuth/Storage.js index c00c97f5..44aefb81 100644 --- a/es/oak-app-domain/ActionAuth/Storage.js +++ b/es/oak-app-domain/ActionAuth/Storage.js @@ -15,7 +15,6 @@ export const desc = { type: "object" } }, - static: true, actionType: "crud", actions, indexes: [ diff --git a/es/oak-app-domain/Application/_baseSchema.d.ts b/es/oak-app-domain/Application/_baseSchema.d.ts index b09c6e49..863611a8 100644 --- a/es/oak-app-domain/Application/_baseSchema.d.ts +++ b/es/oak-app-domain/Application/_baseSchema.d.ts @@ -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; diff --git a/es/oak-app-domain/ChangePasswordTemp/Storage.js b/es/oak-app-domain/ChangePasswordTemp/Storage.js index 88e4e947..cf34855f 100644 --- a/es/oak-app-domain/ChangePasswordTemp/Storage.js +++ b/es/oak-app-domain/ChangePasswordTemp/Storage.js @@ -18,6 +18,12 @@ export const desc = { length: 32 } }, + prevPasswordSha1: { + type: "text" + }, + newPasswordSha1: { + type: "text" + }, result: { notNull: true, type: "enum", diff --git a/es/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts b/es/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts index 623588f4..f051e406 100644 --- a/es/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts +++ b/es/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts @@ -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; export type OpProjection = { @@ -32,6 +36,8 @@ export type OpProjection = { userId?: number; prevPassword?: number; newPassword?: number; + prevPasswordSha1?: number; + newPasswordSha1?: number; result?: number; } & Partial>; 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>; diff --git a/es/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json b/es/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json index d01a6b8d..3e1822a2 100644 --- a/es/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json +++ b/es/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json @@ -4,6 +4,8 @@ "user": "用户", "prevPassword": "原密码", "newPassword": "新密码", + "prevPasswordSha1": "原sha1加密密码", + "newPasswordSha1": "新sha1加密密码", "result": "修改结果" }, "v": { diff --git a/es/oak-app-domain/EntityDict.d.ts b/es/oak-app-domain/EntityDict.d.ts index e918fbd9..eb085c0f 100644 --- a/es/oak-app-domain/EntityDict.d.ts +++ b/es/oak-app-domain/EntityDict.d.ts @@ -117,12 +117,14 @@ export type ActionAuth = { Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", ActionAuth["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: ActionAuth["CreateSingle"] | ActionAuth["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; @@ -400,11 +402,17 @@ export type Path = { Sorter: Path["SortNode"][]; Selection: OakSelection<"select", Path["Projection"], Path["Filter"], Path["Sorter"]>; Aggregation: DeduceAggregation; - CreateOperationData: FormCreateData; + CreateOperationData: FormCreateData | Omit[]> | OakOperation, ActionAuth["Filter"]>)[]; + relationAuth$path?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; + }>; CreateSingle: OakOperation<"create", Path["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Path["CreateSingle"] | Path["CreateMulti"]; - UpdateOperationData: FormUpdateData; + UpdateOperationData: FormUpdateData | Omit[]> | OakOperation, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[]; + relationAuth$path?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; + }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"], Path["Sorter"]>; @@ -490,6 +498,9 @@ export type Relation = { platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation; session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation; toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation; + actionAuth$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, ActionAuth["Filter"]>)[]; + relationAuth$sourceRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; + relationAuth$destRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; userEntityClaim$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]>)[]; userRelation$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]>)[]; }>; @@ -500,6 +511,9 @@ export type Relation = { platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation | OakOperation<"remove", Platform["RemoveOperationData"], Platform["Filter"]>; session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation | OakOperation<"remove", Session["RemoveOperationData"], Session["Filter"]>; toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation | OakOperation<"remove", ToDo["RemoveOperationData"], ToDo["Filter"]>; + actionAuth$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[]; + relationAuth$sourceRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; + relationAuth$destRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; userEntityClaim$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[]; userRelation$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]> | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>)[]; }>; @@ -541,6 +555,7 @@ export type RelationAuth = { Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation; destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", RelationAuth["CreateOperationData"]>; @@ -548,6 +563,7 @@ export type RelationAuth = { Create: RelationAuth["CreateSingle"] | RelationAuth["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>; destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; }>; Update: OakOperation; diff --git a/es/oak-app-domain/ExtraFile/Storage.js b/es/oak-app-domain/ExtraFile/Storage.js index f302483a..49c9d05e 100644 --- a/es/oak-app-domain/ExtraFile/Storage.js +++ b/es/oak-app-domain/ExtraFile/Storage.js @@ -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, diff --git a/es/oak-app-domain/ExtraFile/Style.js b/es/oak-app-domain/ExtraFile/Style.js index 27be6b68..26b8c36c 100644 --- a/es/oak-app-domain/ExtraFile/Style.js +++ b/es/oak-app-domain/ExtraFile/Style.js @@ -1,6 +1,7 @@ export const style = { color: { origin: { + s3: '#FFA500', qiniu: '#37caff', wechat: '#2aae67', ctyun: '#ff0000', diff --git a/es/oak-app-domain/ExtraFile/_baseSchema.d.ts b/es/oak-app-domain/ExtraFile/_baseSchema.d.ts index a58c04f9..6149c854 100644 --- a/es/oak-app-domain/ExtraFile/_baseSchema.d.ts +++ b/es/oak-app-domain/ExtraFile/_baseSchema.d.ts @@ -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; diff --git a/es/oak-app-domain/ExtraFile/locales/zh_CN.json b/es/oak-app-domain/ExtraFile/locales/zh_CN.json index 499576a2..1bbcf749 100644 --- a/es/oak-app-domain/ExtraFile/locales/zh_CN.json +++ b/es/oak-app-domain/ExtraFile/locales/zh_CN.json @@ -30,7 +30,8 @@ "aliyun": "阿里云", "tencent": "腾讯云", "local": "本地", - "unknown": "未知" + "unknown": "未知", + "s3": "S3" }, "type": { "image": "图像", diff --git a/es/oak-app-domain/I18n/Storage.js b/es/oak-app-domain/I18n/Storage.js index fdd6b871..aa5cee37 100644 --- a/es/oak-app-domain/I18n/Storage.js +++ b/es/oak-app-domain/I18n/Storage.js @@ -34,7 +34,6 @@ export const desc = { type: "object" } }, - static: true, actionType: "crud", actions, indexes: [ diff --git a/es/oak-app-domain/Passport/_baseSchema.d.ts b/es/oak-app-domain/Passport/_baseSchema.d.ts index a63db40d..72cfb8b5 100644 --- a/es/oak-app-domain/Passport/_baseSchema.d.ts +++ b/es/oak-app-domain/Passport/_baseSchema.d.ts @@ -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; - config: JsonFilter; + config: JsonFilter; enabled: Q_BooleanValue; } & ExprOp; export type OpProjection = { @@ -55,7 +63,7 @@ export type OpProjection = { $$seq$$?: number; systemId?: number; type?: number; - config?: number | JsonProjection; + config?: number | JsonProjection; enabled?: number; } & Partial>; export type OpSortAttr = Partial<{ diff --git a/es/oak-app-domain/Path/Storage.js b/es/oak-app-domain/Path/Storage.js index d3562b8c..ced46248 100644 --- a/es/oak-app-domain/Path/Storage.js +++ b/es/oak-app-domain/Path/Storage.js @@ -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: [ diff --git a/es/oak-app-domain/Path/_baseSchema.d.ts b/es/oak-app-domain/Path/_baseSchema.d.ts index 8b80c743..8801ba0b 100644 --- a/es/oak-app-domain/Path/_baseSchema.d.ts +++ b/es/oak-app-domain/Path/_baseSchema.d.ts @@ -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; } & { diff --git a/es/oak-app-domain/RelationAuth/Storage.js b/es/oak-app-domain/RelationAuth/Storage.js index 72fd67db..8e4d8fc6 100644 --- a/es/oak-app-domain/RelationAuth/Storage.js +++ b/es/oak-app-domain/RelationAuth/Storage.js @@ -17,7 +17,6 @@ export const desc = { ref: "relation" } }, - static: true, actionType: "crud", actions, indexes: [ diff --git a/es/oak-app-domain/System/Storage.js b/es/oak-app-domain/System/Storage.js index 92df1cec..33d477ea 100644 --- a/es/oak-app-domain/System/Storage.js +++ b/es/oak-app-domain/System/Storage.js @@ -19,8 +19,7 @@ export const desc = { type: "ref", ref: "platform" }, - folder // 提现的loss在用户提现时计算 - : { + folder: { type: "varchar", params: { length: 16 diff --git a/es/utils/payClazz/AliPay/AliPay.js b/es/utils/payClazz/AliPay/AliPay.js index 799331cb..be4bd5c5 100644 --- a/es/utils/payClazz/AliPay/AliPay.js +++ b/es/utils/payClazz/AliPay/AliPay.js @@ -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, diff --git a/es/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js b/es/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js index bf82b7d9..92207a0b 100644 --- a/es/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js +++ b/es/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js @@ -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: { diff --git a/lib/entities/ApAccount.js b/lib/entities/ApAccount.js index cac54556..7461bfbc 100644 --- a/lib/entities/ApAccount.js +++ b/lib/entities/ApAccount.js @@ -33,7 +33,7 @@ exports.entityDesc = { keyType: '指定应用私钥类型', gateway: "支付宝网关地址", wsServiceUrl: 'websocket服务地址', - timeout: "网关超时时间", + timeout: "网关超时时间", //(单位毫秒),默认值是 5000 needEncrypt: "是否需要AES加解密", encryptKey: 'AES密钥', //调用AES加解密相关接口时需要 }, diff --git a/lib/oak-app-domain/ActionAuth/Storage.js b/lib/oak-app-domain/ActionAuth/Storage.js index dd1c1f74..492f275f 100644 --- a/lib/oak-app-domain/ActionAuth/Storage.js +++ b/lib/oak-app-domain/ActionAuth/Storage.js @@ -18,7 +18,6 @@ exports.desc = { type: "object" } }, - static: true, actionType: "crud", actions: action_1.genericActions, indexes: [ diff --git a/lib/oak-app-domain/Application/_baseSchema.d.ts b/lib/oak-app-domain/Application/_baseSchema.d.ts index b09c6e49..863611a8 100644 --- a/lib/oak-app-domain/Application/_baseSchema.d.ts +++ b/lib/oak-app-domain/Application/_baseSchema.d.ts @@ -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; diff --git a/lib/oak-app-domain/ChangePasswordTemp/Storage.js b/lib/oak-app-domain/ChangePasswordTemp/Storage.js index 7da5a3d5..325689b3 100644 --- a/lib/oak-app-domain/ChangePasswordTemp/Storage.js +++ b/lib/oak-app-domain/ChangePasswordTemp/Storage.js @@ -21,6 +21,12 @@ exports.desc = { length: 32 } }, + prevPasswordSha1: { + type: "text" + }, + newPasswordSha1: { + type: "text" + }, result: { notNull: true, type: "enum", diff --git a/lib/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts b/lib/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts index 623588f4..f051e406 100644 --- a/lib/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts +++ b/lib/oak-app-domain/ChangePasswordTemp/_baseSchema.d.ts @@ -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; export type OpProjection = { @@ -32,6 +36,8 @@ export type OpProjection = { userId?: number; prevPassword?: number; newPassword?: number; + prevPasswordSha1?: number; + newPasswordSha1?: number; result?: number; } & Partial>; 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>; diff --git a/lib/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json b/lib/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json index d01a6b8d..3e1822a2 100644 --- a/lib/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json +++ b/lib/oak-app-domain/ChangePasswordTemp/locales/zh_CN.json @@ -4,6 +4,8 @@ "user": "用户", "prevPassword": "原密码", "newPassword": "新密码", + "prevPasswordSha1": "原sha1加密密码", + "newPasswordSha1": "新sha1加密密码", "result": "修改结果" }, "v": { diff --git a/lib/oak-app-domain/EntityDict.d.ts b/lib/oak-app-domain/EntityDict.d.ts index e918fbd9..eb085c0f 100644 --- a/lib/oak-app-domain/EntityDict.d.ts +++ b/lib/oak-app-domain/EntityDict.d.ts @@ -117,12 +117,14 @@ export type ActionAuth = { Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", ActionAuth["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: ActionAuth["CreateSingle"] | ActionAuth["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>; }>; Update: OakOperation; RemoveOperationData: {}; @@ -400,11 +402,17 @@ export type Path = { Sorter: Path["SortNode"][]; Selection: OakSelection<"select", Path["Projection"], Path["Filter"], Path["Sorter"]>; Aggregation: DeduceAggregation; - CreateOperationData: FormCreateData; + CreateOperationData: FormCreateData | Omit[]> | OakOperation, ActionAuth["Filter"]>)[]; + relationAuth$path?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; + }>; CreateSingle: OakOperation<"create", Path["CreateOperationData"]>; CreateMulti: OakOperation<"create", Array>; Create: Path["CreateSingle"] | Path["CreateMulti"]; - UpdateOperationData: FormUpdateData; + UpdateOperationData: FormUpdateData | Omit[]> | OakOperation, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[]; + relationAuth$path?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; + }>; Update: OakOperation; RemoveOperationData: {}; Remove: OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"], Path["Sorter"]>; @@ -490,6 +498,9 @@ export type Relation = { platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation; session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation; toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation; + actionAuth$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, ActionAuth["Filter"]>)[]; + relationAuth$sourceRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; + relationAuth$destRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]>)[]; userEntityClaim$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]>)[]; userRelation$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]>)[]; }>; @@ -500,6 +511,9 @@ export type Relation = { platform?: OakOperation<"create", Platform["CreateOperationData"]> | OakOperation | OakOperation<"remove", Platform["RemoveOperationData"], Platform["Filter"]>; session?: OakOperation<"create", Session["CreateOperationData"]> | OakOperation | OakOperation<"remove", Session["RemoveOperationData"], Session["Filter"]>; toDo?: OakOperation<"create", ToDo["CreateOperationData"]> | OakOperation | OakOperation<"remove", ToDo["RemoveOperationData"], ToDo["Filter"]>; + actionAuth$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, ActionAuth["Filter"]> | OakOperation<"remove", ActionAuth["RemoveOperationData"], ActionAuth["Filter"]>)[]; + relationAuth$sourceRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; + relationAuth$destRelation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, RelationAuth["Filter"]> | OakOperation<"remove", RelationAuth["RemoveOperationData"], RelationAuth["Filter"]>)[]; userEntityClaim$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserEntityClaim["Filter"]> | OakOperation<"remove", UserEntityClaim["RemoveOperationData"], UserEntityClaim["Filter"]>)[]; userRelation$relation?: (OakOperation<"create", Omit | Omit[]> | OakOperation, UserRelation["Filter"]> | OakOperation<"remove", UserRelation["RemoveOperationData"], UserRelation["Filter"]>)[]; }>; @@ -541,6 +555,7 @@ export type RelationAuth = { Aggregation: DeduceAggregation; CreateOperationData: FormCreateData | OakOperation; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation; destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation; }>; CreateSingle: OakOperation<"create", RelationAuth["CreateOperationData"]>; @@ -548,6 +563,7 @@ export type RelationAuth = { Create: RelationAuth["CreateSingle"] | RelationAuth["CreateMulti"]; UpdateOperationData: FormUpdateData | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; + path?: OakOperation<"create", Path["CreateOperationData"]> | OakOperation | OakOperation<"remove", Path["RemoveOperationData"], Path["Filter"]>; destRelation?: OakOperation<"create", Relation["CreateOperationData"]> | OakOperation | OakOperation<"remove", Relation["RemoveOperationData"], Relation["Filter"]>; }>; Update: OakOperation; diff --git a/lib/oak-app-domain/ExtraFile/Storage.js b/lib/oak-app-domain/ExtraFile/Storage.js index 43df4f80..70e9b6c4 100644 --- a/lib/oak-app-domain/ExtraFile/Storage.js +++ b/lib/oak-app-domain/ExtraFile/Storage.js @@ -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, diff --git a/lib/oak-app-domain/ExtraFile/Style.js b/lib/oak-app-domain/ExtraFile/Style.js index 1299afdb..d440bc8e 100644 --- a/lib/oak-app-domain/ExtraFile/Style.js +++ b/lib/oak-app-domain/ExtraFile/Style.js @@ -4,6 +4,7 @@ exports.style = void 0; exports.style = { color: { origin: { + s3: '#FFA500', qiniu: '#37caff', wechat: '#2aae67', ctyun: '#ff0000', diff --git a/lib/oak-app-domain/ExtraFile/_baseSchema.d.ts b/lib/oak-app-domain/ExtraFile/_baseSchema.d.ts index a58c04f9..6149c854 100644 --- a/lib/oak-app-domain/ExtraFile/_baseSchema.d.ts +++ b/lib/oak-app-domain/ExtraFile/_baseSchema.d.ts @@ -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; diff --git a/lib/oak-app-domain/ExtraFile/locales/zh_CN.json b/lib/oak-app-domain/ExtraFile/locales/zh_CN.json index 499576a2..1bbcf749 100644 --- a/lib/oak-app-domain/ExtraFile/locales/zh_CN.json +++ b/lib/oak-app-domain/ExtraFile/locales/zh_CN.json @@ -30,7 +30,8 @@ "aliyun": "阿里云", "tencent": "腾讯云", "local": "本地", - "unknown": "未知" + "unknown": "未知", + "s3": "S3" }, "type": { "image": "图像", diff --git a/lib/oak-app-domain/I18n/Storage.js b/lib/oak-app-domain/I18n/Storage.js index 5e5fed31..a320afc2 100644 --- a/lib/oak-app-domain/I18n/Storage.js +++ b/lib/oak-app-domain/I18n/Storage.js @@ -37,7 +37,6 @@ exports.desc = { type: "object" } }, - static: true, actionType: "crud", actions: action_1.genericActions, indexes: [ diff --git a/lib/oak-app-domain/Passport/_baseSchema.d.ts b/lib/oak-app-domain/Passport/_baseSchema.d.ts index a63db40d..72cfb8b5 100644 --- a/lib/oak-app-domain/Passport/_baseSchema.d.ts +++ b/lib/oak-app-domain/Passport/_baseSchema.d.ts @@ -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; - config: JsonFilter; + config: JsonFilter; enabled: Q_BooleanValue; } & ExprOp; export type OpProjection = { @@ -55,7 +63,7 @@ export type OpProjection = { $$seq$$?: number; systemId?: number; type?: number; - config?: number | JsonProjection; + config?: number | JsonProjection; enabled?: number; } & Partial>; export type OpSortAttr = Partial<{ diff --git a/lib/oak-app-domain/Path/Storage.js b/lib/oak-app-domain/Path/Storage.js index 30e5cb42..b2d3c6fb 100644 --- a/lib/oak-app-domain/Path/Storage.js +++ b/lib/oak-app-domain/Path/Storage.js @@ -19,7 +19,6 @@ exports.desc = { } }, recursive: { - notNull: true, type: "boolean" }, sourceEntity: { @@ -36,7 +35,6 @@ exports.desc = { } } }, - static: true, actionType: "crud", actions: action_1.genericActions, indexes: [ diff --git a/lib/oak-app-domain/Path/_baseSchema.d.ts b/lib/oak-app-domain/Path/_baseSchema.d.ts index 8b80c743..8801ba0b 100644 --- a/lib/oak-app-domain/Path/_baseSchema.d.ts +++ b/lib/oak-app-domain/Path/_baseSchema.d.ts @@ -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; } & { diff --git a/lib/oak-app-domain/RelationAuth/Storage.js b/lib/oak-app-domain/RelationAuth/Storage.js index d47538ab..94b4052d 100644 --- a/lib/oak-app-domain/RelationAuth/Storage.js +++ b/lib/oak-app-domain/RelationAuth/Storage.js @@ -20,7 +20,6 @@ exports.desc = { ref: "relation" } }, - static: true, actionType: "crud", actions: action_1.genericActions, indexes: [ diff --git a/lib/oak-app-domain/System/Storage.js b/lib/oak-app-domain/System/Storage.js index 423f8f47..5d309538 100644 --- a/lib/oak-app-domain/System/Storage.js +++ b/lib/oak-app-domain/System/Storage.js @@ -22,8 +22,7 @@ exports.desc = { type: "ref", ref: "platform" }, - folder // 提现的loss在用户提现时计算 - : { + folder: { type: "varchar", params: { length: 16 diff --git a/lib/triggers/withdraw.d.ts b/lib/triggers/withdraw.d.ts index 979a44c8..e69f8d6e 100644 --- a/lib/triggers/withdraw.d.ts +++ b/lib/triggers/withdraw.d.ts @@ -6,6 +6,6 @@ import { BRC } from '../types/RuntimeCxt'; * @param context * @param refunds */ -export declare function updateWithdrawState(context: BRC, id: string): Promise<1 | 0>; +export declare function updateWithdrawState(context: BRC, id: string): Promise<0 | 1>; declare const triggers: Trigger[]; export default triggers; diff --git a/lib/utils/payClazz/AliPay/AliPay.js b/lib/utils/payClazz/AliPay/AliPay.js index 5c1fbfb7..2e2ef58b 100644 --- a/lib/utils/payClazz/AliPay/AliPay.js +++ b/lib/utils/payClazz/AliPay/AliPay.js @@ -193,10 +193,10 @@ class AliPay extends AliPay_debug_1.default { 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, diff --git a/lib/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js b/lib/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js index e6634291..f947ad45 100644 --- a/lib/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js +++ b/lib/utils/shipClazz/WechatMpShip/WechatMpShip.debug.js @@ -160,9 +160,9 @@ 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: { diff --git a/package.json b/package.json index 42855213..54ac1777 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oak-pay-business", - "version": "3.2.0", + "version": "3.3.1", "description": "", "files": [ "lib/**/*", @@ -31,10 +31,10 @@ "alipay-sdk": "^4.14.0", "classnames": "^2.3.1", "dayjs": "^1.11.5", - "oak-domain": "^5.1.27", - "oak-external-sdk": "^2.3.10", - "oak-frontend-base": "^5.3.37", - "oak-general-business": "~5.8.1", + "oak-domain": "^5.1.28", + "oak-external-sdk": "^2.3.11", + "oak-frontend-base": "^5.3.38", + "oak-general-business": "~5.9.2", "react-markdown": "^9.0.3", "wechat-pay-nodejs": "^0.2.3" },