diff --git a/es/entities/SettlePlan.d.ts b/es/entities/SettlePlan.d.ts index bc132847..a8bfa826 100644 --- a/es/entities/SettlePlan.d.ts +++ b/es/entities/SettlePlan.d.ts @@ -6,6 +6,8 @@ export interface Schema extends EntityShape { when?: Datetime; order: Order; price: Price; + settledAt?: Datetime; + closedAt?: Datetime; } type IState = 'unsettled' | 'settled' | 'closed'; type IAction = 'settle' | 'close'; diff --git a/es/entities/SettlePlan.js b/es/entities/SettlePlan.js index 79047b8c..8a91d250 100644 --- a/es/entities/SettlePlan.js +++ b/es/entities/SettlePlan.js @@ -15,6 +15,8 @@ export const entityDesc = { order: '订单', price: '结算金额', iState: '结算计划状态', + settledAt: '结算时间', + closedAt: '关闭时间' }, action: { settle: '结算', diff --git a/es/oak-app-domain/SettlePlan/Storage.js b/es/oak-app-domain/SettlePlan/Storage.js index 376b8b8c..0c3563d3 100644 --- a/es/oak-app-domain/SettlePlan/Storage.js +++ b/es/oak-app-domain/SettlePlan/Storage.js @@ -13,6 +13,12 @@ export const desc = { notNull: true, type: "money" }, + settledAt: { + type: "datetime" + }, + closedAt: { + type: "datetime" + }, iState: { type: "enum", enumeration: ["unsettled", "settled", "closed"] diff --git a/es/oak-app-domain/SettlePlan/_baseSchema.d.ts b/es/oak-app-domain/SettlePlan/_baseSchema.d.ts index e7778b8d..39835f8b 100644 --- a/es/oak-app-domain/SettlePlan/_baseSchema.d.ts +++ b/es/oak-app-domain/SettlePlan/_baseSchema.d.ts @@ -7,6 +7,8 @@ export type OpSchema = EntityShape & { when?: Datetime | null; orderId: ForeignKey<"order">; price: Price; + settledAt?: Datetime | null; + closedAt?: Datetime | null; iState?: IState | null; } & { [A in ExpressionKey]?: any; @@ -20,6 +22,8 @@ export type OpFilter = { when: Q_DateValue; orderId: Q_StringValue; price: Q_NumberValue; + settledAt: Q_DateValue; + closedAt: Q_DateValue; iState: Q_EnumValue; } & ExprOp; export type OpProjection = { @@ -32,6 +36,8 @@ export type OpProjection = { when?: number; orderId?: number; price?: number; + settledAt?: number; + closedAt?: number; iState?: number; } & Partial>; export type OpSortAttr = Partial<{ @@ -42,6 +48,8 @@ export type OpSortAttr = Partial<{ when: number; orderId: number; price: number; + settledAt: number; + closedAt: number; iState: number; [k: string]: any; } | ExprOp>; diff --git a/es/oak-app-domain/SettlePlan/locales/zh_CN.json b/es/oak-app-domain/SettlePlan/locales/zh_CN.json index 5a0db78b..83524ceb 100644 --- a/es/oak-app-domain/SettlePlan/locales/zh_CN.json +++ b/es/oak-app-domain/SettlePlan/locales/zh_CN.json @@ -4,7 +4,9 @@ "when": "结算时间", "order": "订单", "price": "结算金额", - "iState": "结算计划状态" + "iState": "结算计划状态", + "settledAt": "结算时间", + "closedAt": "关闭时间" }, "action": { "settle": "结算", diff --git a/es/triggers/settlePlan.js b/es/triggers/settlePlan.js index 675ecab7..32b752f3 100644 --- a/es/triggers/settlePlan.js +++ b/es/triggers/settlePlan.js @@ -69,7 +69,7 @@ const triggers = [ asRoot: true, priority: 99, fn: async ({ operation }, context, option) => { - const { filter } = operation; + const { filter, data } = operation; const settlePlans = await context.select('settlePlan', { data: { id: 1, @@ -119,6 +119,15 @@ const triggers = [ }, option); } } + //为settlePlan赋上settledAt + if (data instanceof Array) { + for (const d of data) { + d.settledAt = now; + } + } + else { + data.settledAt = now; + } return settlePlans.length; }, }, @@ -176,7 +185,7 @@ const triggers = [ asRoot: true, priority: 99, fn: async ({ operation }, context, option) => { - const { filter } = operation; + const { filter, data } = operation; const settlePlans = await context.select('settlePlan', { data: { id: 1, @@ -215,6 +224,15 @@ const triggers = [ } }, option); } + //为settlePlan赋上closedAt + if (data instanceof Array) { + for (const d of data) { + d.closedAt = now; + } + } + else { + data.closedAt = now; + } return settlePlans.length; }, }, diff --git a/lib/entities/SettlePlan.d.ts b/lib/entities/SettlePlan.d.ts index bc132847..a8bfa826 100644 --- a/lib/entities/SettlePlan.d.ts +++ b/lib/entities/SettlePlan.d.ts @@ -6,6 +6,8 @@ export interface Schema extends EntityShape { when?: Datetime; order: Order; price: Price; + settledAt?: Datetime; + closedAt?: Datetime; } type IState = 'unsettled' | 'settled' | 'closed'; type IAction = 'settle' | 'close'; diff --git a/lib/entities/SettlePlan.js b/lib/entities/SettlePlan.js index 5d9fe535..8d0ed2bb 100644 --- a/lib/entities/SettlePlan.js +++ b/lib/entities/SettlePlan.js @@ -18,6 +18,8 @@ exports.entityDesc = { order: '订单', price: '结算金额', iState: '结算计划状态', + settledAt: '结算时间', + closedAt: '关闭时间' }, action: { settle: '结算', diff --git a/lib/oak-app-domain/SettlePlan/Storage.js b/lib/oak-app-domain/SettlePlan/Storage.js index 487437e3..5c6d4a01 100644 --- a/lib/oak-app-domain/SettlePlan/Storage.js +++ b/lib/oak-app-domain/SettlePlan/Storage.js @@ -16,6 +16,12 @@ exports.desc = { notNull: true, type: "money" }, + settledAt: { + type: "datetime" + }, + closedAt: { + type: "datetime" + }, iState: { type: "enum", enumeration: ["unsettled", "settled", "closed"] diff --git a/lib/oak-app-domain/SettlePlan/_baseSchema.d.ts b/lib/oak-app-domain/SettlePlan/_baseSchema.d.ts index e7778b8d..39835f8b 100644 --- a/lib/oak-app-domain/SettlePlan/_baseSchema.d.ts +++ b/lib/oak-app-domain/SettlePlan/_baseSchema.d.ts @@ -7,6 +7,8 @@ export type OpSchema = EntityShape & { when?: Datetime | null; orderId: ForeignKey<"order">; price: Price; + settledAt?: Datetime | null; + closedAt?: Datetime | null; iState?: IState | null; } & { [A in ExpressionKey]?: any; @@ -20,6 +22,8 @@ export type OpFilter = { when: Q_DateValue; orderId: Q_StringValue; price: Q_NumberValue; + settledAt: Q_DateValue; + closedAt: Q_DateValue; iState: Q_EnumValue; } & ExprOp; export type OpProjection = { @@ -32,6 +36,8 @@ export type OpProjection = { when?: number; orderId?: number; price?: number; + settledAt?: number; + closedAt?: number; iState?: number; } & Partial>; export type OpSortAttr = Partial<{ @@ -42,6 +48,8 @@ export type OpSortAttr = Partial<{ when: number; orderId: number; price: number; + settledAt: number; + closedAt: number; iState: number; [k: string]: any; } | ExprOp>; diff --git a/lib/oak-app-domain/SettlePlan/locales/zh_CN.json b/lib/oak-app-domain/SettlePlan/locales/zh_CN.json index 5a0db78b..83524ceb 100644 --- a/lib/oak-app-domain/SettlePlan/locales/zh_CN.json +++ b/lib/oak-app-domain/SettlePlan/locales/zh_CN.json @@ -4,7 +4,9 @@ "when": "结算时间", "order": "订单", "price": "结算金额", - "iState": "结算计划状态" + "iState": "结算计划状态", + "settledAt": "结算时间", + "closedAt": "关闭时间" }, "action": { "settle": "结算", diff --git a/lib/triggers/settlePlan.js b/lib/triggers/settlePlan.js index 406c0b30..3d3af747 100644 --- a/lib/triggers/settlePlan.js +++ b/lib/triggers/settlePlan.js @@ -72,7 +72,7 @@ const triggers = [ asRoot: true, priority: 99, fn: async ({ operation }, context, option) => { - const { filter } = operation; + const { filter, data } = operation; const settlePlans = await context.select('settlePlan', { data: { id: 1, @@ -122,6 +122,15 @@ const triggers = [ }, option); } } + //为settlePlan赋上settledAt + if (data instanceof Array) { + for (const d of data) { + d.settledAt = now; + } + } + else { + data.settledAt = now; + } return settlePlans.length; }, }, @@ -179,7 +188,7 @@ const triggers = [ asRoot: true, priority: 99, fn: async ({ operation }, context, option) => { - const { filter } = operation; + const { filter, data } = operation; const settlePlans = await context.select('settlePlan', { data: { id: 1, @@ -218,6 +227,15 @@ const triggers = [ } }, option); } + //为settlePlan赋上closedAt + if (data instanceof Array) { + for (const d of data) { + d.closedAt = now; + } + } + else { + data.closedAt = now; + } return settlePlans.length; }, }, diff --git a/src/entities/SettlePlan.ts b/src/entities/SettlePlan.ts index 849fb868..188edc9a 100644 --- a/src/entities/SettlePlan.ts +++ b/src/entities/SettlePlan.ts @@ -10,6 +10,8 @@ export interface Schema extends EntityShape { when?: Datetime; order: Order; price: Price; + settledAt?: Datetime; + closedAt?: Datetime; }; type IState = 'unsettled' | 'settled' | 'closed'; @@ -36,6 +38,8 @@ export const entityDesc: EntityDesc[] = [ asRoot: true, priority: 99, fn: async ({ operation }, context, option) => { - const { filter } = operation; + const { filter, data } = operation; const settlePlans = await context.select('settlePlan', { data: { id: 1, @@ -126,6 +126,14 @@ const triggers: Trigger[] = [ }, option); } } + //为settlePlan赋上settledAt + if (data instanceof Array) { + for (const d of data) { + d.settledAt = now; + } + } else { + data.settledAt = now; + } return settlePlans.length; }, }, @@ -185,7 +193,7 @@ const triggers: Trigger[] = [ asRoot: true, priority: 99, fn: async ({ operation }, context, option) => { - const { filter } = operation; + const { filter, data } = operation; const settlePlans = await context.select('settlePlan', { data: { id: 1, @@ -224,6 +232,14 @@ const triggers: Trigger[] = [ } }, option); } + //为settlePlan赋上closedAt + if (data instanceof Array) { + for (const d of data) { + d.closedAt = now; + } + } else { + data.closedAt = now; + } return settlePlans.length; }, }, diff --git a/upgrade/3.1.3/settlePlan.sql b/upgrade/3.1.3/settlePlan.sql new file mode 100644 index 00000000..fd630218 --- /dev/null +++ b/upgrade/3.1.3/settlePlan.sql @@ -0,0 +1,3 @@ +-- settlePlan -- +ALTER TABLE `settlePlan` ADD COLUMN `settledAt` bigint NULL DEFAULT NULL; +ALTER TABLE `settlePlan` ADD COLUMN `closedAt` bigint NULL DEFAULT NULL; \ No newline at end of file