From 4389f8d5a2dec0aa63160e5a351ba5bf6c077f09 Mon Sep 17 00:00:00 2001 From: lxy Date: Fri, 8 Aug 2025 09:45:19 +0800 Subject: [PATCH] =?UTF-8?q?settlePlan=20=E5=A2=9E=E5=8A=A0=20=E7=BB=93?= =?UTF-8?q?=E7=AE=97=E6=97=B6=E9=97=B4=E3=80=81=E5=85=B3=E9=97=AD=E6=97=B6?= =?UTF-8?q?=E9=97=B4=20=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- es/entities/SettlePlan.d.ts | 2 ++ es/entities/SettlePlan.js | 2 ++ es/oak-app-domain/SettlePlan/Storage.js | 6 +++++ es/oak-app-domain/SettlePlan/_baseSchema.d.ts | 8 +++++++ .../SettlePlan/locales/zh_CN.json | 4 +++- es/triggers/settlePlan.js | 22 +++++++++++++++++-- lib/entities/SettlePlan.d.ts | 2 ++ lib/entities/SettlePlan.js | 2 ++ lib/oak-app-domain/SettlePlan/Storage.js | 6 +++++ .../SettlePlan/_baseSchema.d.ts | 8 +++++++ .../SettlePlan/locales/zh_CN.json | 4 +++- lib/triggers/settlePlan.js | 22 +++++++++++++++++-- src/entities/SettlePlan.ts | 4 ++++ src/triggers/settlePlan.ts | 20 +++++++++++++++-- upgrade/3.1.3/settlePlan.sql | 3 +++ 15 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 upgrade/3.1.3/settlePlan.sql 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