From bd6636c4fe744ca133bb6b57f25ce3ed1bbe7e15 Mon Sep 17 00:00:00 2001 From: Xc Date: Wed, 12 Feb 2025 11:41:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86order=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=94=B9=E5=8F=98=E6=97=B6=E5=AF=B9=E8=AE=A2=E9=98=85?= =?UTF-8?q?=E8=80=85=E7=9A=84=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- es/config/constants.d.ts | 1 + es/config/constants.js | 1 + es/triggers/order.js | 13 +++++++++++++ lib/config/constants.d.ts | 1 + lib/config/constants.js | 1 + lib/triggers/order.js | 13 +++++++++++++ src/config/constants.ts | 1 + src/triggers/order.ts | 15 +++++++++++++++ 8 files changed, 46 insertions(+) diff --git a/es/config/constants.d.ts b/es/config/constants.d.ts index 21ba42b9..619e871f 100644 --- a/es/config/constants.d.ts +++ b/es/config/constants.d.ts @@ -1,5 +1,6 @@ export declare const DATA_SUBSCRIBER_KEYS: { payStateChanged: string; + orderStateChanged: string; accountNumberChanged: string; shipStateChanged: string; }; diff --git a/es/config/constants.js b/es/config/constants.js index d383a0a3..403a717f 100644 --- a/es/config/constants.js +++ b/es/config/constants.js @@ -1,5 +1,6 @@ export const DATA_SUBSCRIBER_KEYS = { payStateChanged: 'oak-pay-business-psc', + orderStateChanged: 'oak-pay-business-osc', accountNumberChanged: 'oak-pay-business-anc', shipStateChanged: 'oak-pay-business-ssc', }; diff --git a/es/triggers/order.js b/es/triggers/order.js index 84eeb0f6..44000f44 100644 --- a/es/triggers/order.js +++ b/es/triggers/order.js @@ -1,4 +1,5 @@ import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid'; +import { DATA_SUBSCRIBER_KEYS } from '../config/constants'; import assert from 'assert'; const triggers = [ { @@ -138,5 +139,17 @@ const triggers = [ return cnt; }, }, + { + name: '订单状态改变时,向订阅者发送消息', + entity: 'order', + action: ['startPaying', 'payAll', 'payPartially', 'payNone', 'timeout', 'cancel', 'startRefunding', 'refundAll', 'refundPartially', 'refundNone'], + when: 'after', + fn: async ({ operation }, context, option) => { + const { filter, id } = operation; + assert(filter.id); + context.saveOperationToEvent(id, `${DATA_SUBSCRIBER_KEYS.orderStateChanged}-${filter.id}`); + return 1; + } + }, ]; export default triggers; diff --git a/lib/config/constants.d.ts b/lib/config/constants.d.ts index 21ba42b9..619e871f 100644 --- a/lib/config/constants.d.ts +++ b/lib/config/constants.d.ts @@ -1,5 +1,6 @@ export declare const DATA_SUBSCRIBER_KEYS: { payStateChanged: string; + orderStateChanged: string; accountNumberChanged: string; shipStateChanged: string; }; diff --git a/lib/config/constants.js b/lib/config/constants.js index f4043676..ffa673b9 100644 --- a/lib/config/constants.js +++ b/lib/config/constants.js @@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.DATA_SUBSCRIBER_KEYS = void 0; exports.DATA_SUBSCRIBER_KEYS = { payStateChanged: 'oak-pay-business-psc', + orderStateChanged: 'oak-pay-business-osc', accountNumberChanged: 'oak-pay-business-anc', shipStateChanged: 'oak-pay-business-ssc', }; diff --git a/lib/triggers/order.js b/lib/triggers/order.js index f6e18f71..32cfec98 100644 --- a/lib/triggers/order.js +++ b/lib/triggers/order.js @@ -2,6 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const uuid_1 = require("oak-domain/lib/utils/uuid"); +const constants_1 = require("../config/constants"); const assert_1 = tslib_1.__importDefault(require("assert")); const triggers = [ { @@ -141,5 +142,17 @@ const triggers = [ return cnt; }, }, + { + name: '订单状态改变时,向订阅者发送消息', + entity: 'order', + action: ['startPaying', 'payAll', 'payPartially', 'payNone', 'timeout', 'cancel', 'startRefunding', 'refundAll', 'refundPartially', 'refundNone'], + when: 'after', + fn: async ({ operation }, context, option) => { + const { filter, id } = operation; + (0, assert_1.default)(filter.id); + context.saveOperationToEvent(id, `${constants_1.DATA_SUBSCRIBER_KEYS.orderStateChanged}-${filter.id}`); + return 1; + } + }, ]; exports.default = triggers; diff --git a/src/config/constants.ts b/src/config/constants.ts index d383a0a3..403a717f 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -1,5 +1,6 @@ export const DATA_SUBSCRIBER_KEYS = { payStateChanged: 'oak-pay-business-psc', + orderStateChanged: 'oak-pay-business-osc', accountNumberChanged: 'oak-pay-business-anc', shipStateChanged: 'oak-pay-business-ssc', }; diff --git a/src/triggers/order.ts b/src/triggers/order.ts index e08a74f1..448ecaad 100644 --- a/src/triggers/order.ts +++ b/src/triggers/order.ts @@ -1,5 +1,6 @@ import { CreateTriggerInTxn, Trigger, UpdateTriggerInTxn } from 'oak-domain/lib/types/Trigger'; import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid'; +import { DATA_SUBSCRIBER_KEYS } from '../config/constants'; import { EntityDict } from '../oak-app-domain'; import { BRC } from '../types/RuntimeCxt'; import assert from 'assert'; @@ -155,6 +156,20 @@ const triggers: Trigger[] = [ return cnt; }, }, + { + name: '订单状态改变时,向订阅者发送消息', + entity: 'order', + action: ['startPaying', 'payAll', 'payPartially', 'payNone', 'timeout', 'cancel', 'startRefunding', 'refundAll', 'refundPartially', 'refundNone'], + when: 'after', + fn: async ({ operation }, context, option) => { + const { filter, id } = operation as EntityDict['order']['Update']; + + assert(filter!.id!); + + context.saveOperationToEvent(id, `${DATA_SUBSCRIBER_KEYS.orderStateChanged}-${filter!.id!}`); + return 1; + } + } as UpdateTriggerInTxn, ]; export default triggers; \ No newline at end of file