@chevre/domain 21.20.0-alpha.56 → 21.20.0-alpha.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/chevre/service/offer/product.d.ts +2 -0
- package/lib/chevre/service/offer/product.js +10 -22
- package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +42 -3
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +17 -19
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +1 -6
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +1 -13
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +2 -0
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +45 -68
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +29 -7
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +3 -19
- package/package.json +2 -2
|
@@ -4,6 +4,7 @@ import type { MongoRepository as ActionRepo } from '../../repo/action';
|
|
|
4
4
|
import type { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
5
5
|
import type { MongoRepository as OfferRepo } from '../../repo/offer';
|
|
6
6
|
import type { MongoRepository as OfferCatalogRepo } from '../../repo/offerCatalog';
|
|
7
|
+
import type { MongoRepository as OrderInTransactionRepo } from '../../repo/orderInTransaction';
|
|
7
8
|
import type { RedisRepository as OrderNumberRepo } from '../../repo/orderNumber';
|
|
8
9
|
import type { MongoRepository as OwnershipInfoRepo } from '../../repo/ownershipInfo';
|
|
9
10
|
import type { MongoRepository as ProductRepo } from '../../repo/product';
|
|
@@ -19,6 +20,7 @@ export interface IAuthorizeOperationRepos {
|
|
|
19
20
|
assetTransaction: AssetTransactionRepo;
|
|
20
21
|
offer: OfferRepo;
|
|
21
22
|
offerCatalog: OfferCatalogRepo;
|
|
23
|
+
orderInTransaction: OrderInTransactionRepo;
|
|
22
24
|
orderNumber: OrderNumberRepo;
|
|
23
25
|
ownershipInfo: OwnershipInfoRepo;
|
|
24
26
|
product: ProductRepo;
|
|
@@ -16,6 +16,7 @@ const accountTransactionIdentifier_1 = require("../../factory/accountTransaction
|
|
|
16
16
|
const availableProductTypes_1 = require("../../factory/availableProductTypes");
|
|
17
17
|
const RegisterServiceTransaction = require("../assetTransaction/registerService");
|
|
18
18
|
const placeOrderInProgress_1 = require("../transaction/placeOrderInProgress");
|
|
19
|
+
const any_1 = require("./any");
|
|
19
20
|
const factory_1 = require("./product/factory");
|
|
20
21
|
const searchProductOffers_1 = require("./product/searchProductOffers");
|
|
21
22
|
exports.ERROR_MESSAGE_ALREADY_REGISTERED = 'Already registered';
|
|
@@ -121,6 +122,7 @@ function authorize(params) {
|
|
|
121
122
|
acceptedOffer = yield createServiceOutputIdentifier({ acceptedOffer, product })(repos);
|
|
122
123
|
let requestBody;
|
|
123
124
|
let responseBody;
|
|
125
|
+
let result;
|
|
124
126
|
// まず取引番号発行
|
|
125
127
|
const { transactionNumber } = yield repos.transactionNumber.publishByTimestamp({
|
|
126
128
|
startDate: new Date()
|
|
@@ -134,14 +136,8 @@ function authorize(params) {
|
|
|
134
136
|
const action = yield repos.action.start(actionAttributes);
|
|
135
137
|
try {
|
|
136
138
|
// 会員の場合のみ排他ロック
|
|
137
|
-
if (params.agent.typeOf === factory.personType.Person) {
|
|
138
|
-
|
|
139
|
-
// await processLockRegisterMembershipService({
|
|
140
|
-
// agent: params.agent,
|
|
141
|
-
// product: product,
|
|
142
|
-
// purpose: { typeOf: transaction.typeOf, id: transaction.id }
|
|
143
|
-
// })(repos);
|
|
144
|
-
}
|
|
139
|
+
// if (params.agent.typeOf === factory.personType.Person) {
|
|
140
|
+
// }
|
|
145
141
|
// サービス登録開始
|
|
146
142
|
const startParams = (0, factory_1.createRegisterServiceStartParams)({
|
|
147
143
|
project: { typeOf: factory.organizationType.Project, id: params.project.id },
|
|
@@ -151,7 +147,12 @@ function authorize(params) {
|
|
|
151
147
|
});
|
|
152
148
|
requestBody = startParams;
|
|
153
149
|
responseBody = yield RegisterServiceTransaction.start(startParams)(repos);
|
|
154
|
-
|
|
150
|
+
result = (0, factory_1.createResult)({ project: action.project, requestBody, responseBody, acceptedOffer });
|
|
151
|
+
yield (0, any_1.acceptOffer)({
|
|
152
|
+
project: transaction.project,
|
|
153
|
+
purpose: { id: transaction.id },
|
|
154
|
+
acceptedOffers: result.acceptedOffers
|
|
155
|
+
})(repos);
|
|
155
156
|
}
|
|
156
157
|
catch (error) {
|
|
157
158
|
try {
|
|
@@ -160,21 +161,8 @@ function authorize(params) {
|
|
|
160
161
|
catch (__) {
|
|
161
162
|
// no op
|
|
162
163
|
}
|
|
163
|
-
try {
|
|
164
|
-
// 廃止(2023-12-07~)
|
|
165
|
-
// await processUnlockRegisterMembershipService({
|
|
166
|
-
// agent: params.agent,
|
|
167
|
-
// product: { id: String(product.id) },
|
|
168
|
-
// purpose: { typeOf: transaction.typeOf, id: transaction.id }
|
|
169
|
-
// })(repos);
|
|
170
|
-
}
|
|
171
|
-
catch (error) {
|
|
172
|
-
// 失敗したら仕方ない
|
|
173
|
-
}
|
|
174
164
|
throw error;
|
|
175
165
|
}
|
|
176
|
-
// アクションを完了
|
|
177
|
-
const result = (0, factory_1.createResult)({ project: action.project, requestBody, responseBody, acceptedOffer });
|
|
178
166
|
return yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: result });
|
|
179
167
|
});
|
|
180
168
|
}
|
|
@@ -100,6 +100,23 @@ function onAssetTransactionStatusChanged(params) {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
break;
|
|
103
|
+
case factory.assetTransactionType.RegisterService:
|
|
104
|
+
if (typeof orderNumber === 'string' && typeof confirmationNumber === 'string') {
|
|
105
|
+
const deliverable = yield isDeliverable({
|
|
106
|
+
project: { id: params.project.id },
|
|
107
|
+
orderNumber,
|
|
108
|
+
assetTransactionType: params.object.typeOf
|
|
109
|
+
})(repos);
|
|
110
|
+
if (deliverable) {
|
|
111
|
+
yield processing2inTransit({
|
|
112
|
+
project: { id: params.project.id },
|
|
113
|
+
// confirmationNumber,
|
|
114
|
+
orderNumber,
|
|
115
|
+
useOnOrderStatusChanged: params.useOnOrderStatusChanged
|
|
116
|
+
})(repos);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
103
120
|
default:
|
|
104
121
|
// no op
|
|
105
122
|
}
|
|
@@ -235,7 +252,8 @@ function paymentDue2Processing(params) {
|
|
|
235
252
|
yield (0, onOrderStatusChanged_1.onOrderProcessing)({
|
|
236
253
|
order: Object.assign(Object.assign({}, order), { acceptedOffers,
|
|
237
254
|
numAcceptedOffers,
|
|
238
|
-
moneyTransferTransactionNumbers,
|
|
255
|
+
moneyTransferTransactionNumbers, itemOfferedTypeOf: itemOfferedTypeOfs[0], // 1つしかない前提
|
|
256
|
+
serialNumbers, orderStatus: factory.orderStatus.OrderProcessing // 強制的にOrderProcessingとして処理する
|
|
239
257
|
}),
|
|
240
258
|
placeOrderTransaction
|
|
241
259
|
})({
|
|
@@ -297,8 +315,10 @@ function isDeliverable(params) {
|
|
|
297
315
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
298
316
|
let allReserveTransactionConfirmed = false;
|
|
299
317
|
let allMoneyTransferTransactionConfirmed = false;
|
|
318
|
+
let allRegisterServiceTransactionConfirmed = false;
|
|
300
319
|
if (params.assetTransactionType === factory.assetTransactionType.Reserve) {
|
|
301
320
|
allMoneyTransferTransactionConfirmed = true;
|
|
321
|
+
allRegisterServiceTransactionConfirmed = true;
|
|
302
322
|
// 注文のreservationNumberを取得
|
|
303
323
|
const reservationNumbers = yield repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.itemOffered.reservationNumber');
|
|
304
324
|
if (reservationNumbers.length > 0) {
|
|
@@ -317,8 +337,9 @@ function isDeliverable(params) {
|
|
|
317
337
|
}
|
|
318
338
|
else if (params.assetTransactionType === factory.assetTransactionType.MoneyTransfer) {
|
|
319
339
|
allReserveTransactionConfirmed = true;
|
|
340
|
+
allRegisterServiceTransactionConfirmed = true;
|
|
320
341
|
// 注文のMoneyTransferTransaction.transactionNumberを取得
|
|
321
|
-
const moneyTransferTransactionNumbers = yield repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.
|
|
342
|
+
const moneyTransferTransactionNumbers = yield repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
|
|
322
343
|
if (moneyTransferTransactionNumbers.length > 0) {
|
|
323
344
|
debug('is deliverable?...', params.orderNumber, 'moneyTransferTransactionNumbers:', moneyTransferTransactionNumbers);
|
|
324
345
|
const referencedMoneyTransferTransactions = yield repos.assetTransaction.search({
|
|
@@ -334,7 +355,25 @@ function isDeliverable(params) {
|
|
|
334
355
|
allMoneyTransferTransactionConfirmed = true;
|
|
335
356
|
}
|
|
336
357
|
}
|
|
337
|
-
|
|
358
|
+
else if (params.assetTransactionType === factory.assetTransactionType.RegisterService) {
|
|
359
|
+
allReserveTransactionConfirmed = true;
|
|
360
|
+
allMoneyTransferTransactionConfirmed = true;
|
|
361
|
+
const registerServiceTransactionNumbers = yield repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
|
|
362
|
+
if (registerServiceTransactionNumbers.length > 0) {
|
|
363
|
+
const referencedRegisterServiceTransactions = yield repos.assetTransaction.search({
|
|
364
|
+
project: { id: { $eq: params.project.id } },
|
|
365
|
+
typeOf: factory.assetTransactionType.RegisterService,
|
|
366
|
+
transactionNumber: { $in: registerServiceTransactionNumbers }
|
|
367
|
+
}, ['status']);
|
|
368
|
+
allRegisterServiceTransactionConfirmed =
|
|
369
|
+
referencedRegisterServiceTransactions.length === registerServiceTransactionNumbers.length
|
|
370
|
+
&& referencedRegisterServiceTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
allRegisterServiceTransactionConfirmed = true;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return allReserveTransactionConfirmed && allMoneyTransferTransactionConfirmed && allRegisterServiceTransactionConfirmed;
|
|
338
377
|
});
|
|
339
378
|
}
|
|
340
379
|
function processing2inTransit(params) {
|
|
@@ -50,28 +50,26 @@ function creteOrder4inform(order) {
|
|
|
50
50
|
*/
|
|
51
51
|
function createOnOrderSentTasksByTransaction(params) {
|
|
52
52
|
const potentialActions = params.potentialActions;
|
|
53
|
-
const now = new Date();
|
|
53
|
+
// const now = new Date();
|
|
54
54
|
const taskAttributes = [];
|
|
55
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
56
|
-
/* istanbul ignore else */
|
|
57
55
|
if (potentialActions !== undefined) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
56
|
+
// サービス登録廃止(2024-01-30~)
|
|
57
|
+
// if (Array.isArray(potentialActions.registerService)) {
|
|
58
|
+
// taskAttributes.push(...potentialActions.registerService.map(
|
|
59
|
+
// (a): factory.task.IAttributes<factory.taskName.ConfirmRegisterService> => {
|
|
60
|
+
// return {
|
|
61
|
+
// project: a.project,
|
|
62
|
+
// name: factory.taskName.ConfirmRegisterService,
|
|
63
|
+
// status: factory.taskStatus.Ready,
|
|
64
|
+
// runsAt: now, // なるはやで実行
|
|
65
|
+
// remainingNumberOfTries: 10,
|
|
66
|
+
// numberOfTried: 0,
|
|
67
|
+
// executionResults: [],
|
|
68
|
+
// data: a
|
|
69
|
+
// };
|
|
70
|
+
// }));
|
|
71
|
+
// }
|
|
72
72
|
// 通貨転送廃止(2024-01-29~)
|
|
73
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
74
|
-
/* istanbul ignore else */
|
|
75
73
|
// if (Array.isArray(potentialActions.moneyTransfer)) {
|
|
76
74
|
// taskAttributes.push(...potentialActions.moneyTransfer.map(
|
|
77
75
|
// (a): factory.task.IAttributes<factory.taskName.ConfirmMoneyTransfer> => {
|
|
@@ -15,10 +15,5 @@ declare function createConfirmReservationActionObject4COAByOrder(params: {
|
|
|
15
15
|
acceptedOffers: IAcceptedOffer[];
|
|
16
16
|
};
|
|
17
17
|
}): factory.task.confirmReserveTransaction.IObject4COAOptimized[];
|
|
18
|
-
declare function createConfirmRegisterServiceActionObjectByOrder(params: {
|
|
19
|
-
order: factory.order.IOrder & {
|
|
20
|
-
acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
21
|
-
};
|
|
22
|
-
}): factory.action.interact.confirm.registerService.IObject[];
|
|
23
18
|
type IExternalOrder = Pick<factory.order.IOrder, 'project' | 'typeOf' | 'seller' | 'customer' | 'confirmationNumber' | 'orderNumber' | 'price' | 'priceCurrency' | 'orderDate' | 'name' | 'orderStatus' | 'orderedItem' | 'paymentMethods'>;
|
|
24
|
-
export { IAcceptedOffer, IExternalOrder, createInformTasks, createConfirmReservationActionObject4ChevreByOrder, createConfirmReservationActionObject4COAByOrder
|
|
19
|
+
export { IAcceptedOffer, IExternalOrder, createInformTasks, createConfirmReservationActionObject4ChevreByOrder, createConfirmReservationActionObject4COAByOrder };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.createConfirmReservationActionObject4COAByOrder = exports.createConfirmReservationActionObject4ChevreByOrder = exports.createInformTasks = void 0;
|
|
5
5
|
const google_libphonenumber_1 = require("google-libphonenumber");
|
|
6
6
|
const util_1 = require("util");
|
|
7
7
|
const factory = require("../../../../factory");
|
|
@@ -167,15 +167,3 @@ function createConfirmReservationActionObject4COAByOrder(params) {
|
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
169
|
exports.createConfirmReservationActionObject4COAByOrder = createConfirmReservationActionObject4COAByOrder;
|
|
170
|
-
function createConfirmRegisterServiceActionObjectByOrder(params) {
|
|
171
|
-
// いったん保留
|
|
172
|
-
const chevreTransactionNumbers = [];
|
|
173
|
-
return [...new Set(chevreTransactionNumbers)].map((transactionNumber) => {
|
|
174
|
-
return {
|
|
175
|
-
endDate: params.order.orderDate,
|
|
176
|
-
transactionNumber,
|
|
177
|
-
typeOf: factory.assetTransactionType.RegisterService
|
|
178
|
-
};
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
exports.createConfirmRegisterServiceActionObjectByOrder = createConfirmRegisterServiceActionObjectByOrder;
|
|
@@ -8,6 +8,8 @@ declare function onOrderProcessing(params: {
|
|
|
8
8
|
acceptedOffers: IAcceptedOffer[];
|
|
9
9
|
numAcceptedOffers: number;
|
|
10
10
|
moneyTransferTransactionNumbers: string[];
|
|
11
|
+
itemOfferedTypeOf: factory.order.IItemOffered['typeOf'];
|
|
12
|
+
serialNumbers: string[];
|
|
11
13
|
};
|
|
12
14
|
placeOrderTransaction?: IPlaceOrderTransaction;
|
|
13
15
|
}): (repos: {
|
|
@@ -45,7 +45,6 @@ function onOrderProcessing(params) {
|
|
|
45
45
|
case factory.orderStatus.OrderProcessing:
|
|
46
46
|
tasks = [
|
|
47
47
|
...(0, factory_1.createInformTasks)(params.order)
|
|
48
|
-
// ...await createConfirmRegisterServiceTransactionTasks(params.order, simpleOrder)(repos) // ひとまず保留
|
|
49
48
|
];
|
|
50
49
|
break;
|
|
51
50
|
default:
|
|
@@ -54,9 +53,17 @@ function onOrderProcessing(params) {
|
|
|
54
53
|
yield repos.task.saveMany(tasks, { emitImmediately: true });
|
|
55
54
|
switch (params.order.orderStatus) {
|
|
56
55
|
case factory.orderStatus.OrderProcessing:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
if (params.order.itemOfferedTypeOf === factory.actionType.MoneyTransfer) {
|
|
57
|
+
yield createConfirmMoneyTransferTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
58
|
+
}
|
|
59
|
+
else if (params.order.itemOfferedTypeOf === factory.reservationType.BusReservation
|
|
60
|
+
|| params.order.itemOfferedTypeOf === factory.reservationType.EventReservation) {
|
|
61
|
+
// 冗長なconfirmReserveTransactionタスク作成を回避(2023-08-25~)
|
|
62
|
+
yield createConfirmReserveTransactionTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
63
|
+
}
|
|
64
|
+
else if (params.order.itemOfferedTypeOf === factory.permit.PermitType.Permit) {
|
|
65
|
+
yield createConfirmRegisterServiceTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
66
|
+
}
|
|
60
67
|
yield createGivePointAwardTaskIfNotExist({
|
|
61
68
|
potentialActions: (_h = (_g = (_f = params.placeOrderTransaction) === null || _f === void 0 ? void 0 : _f.potentialActions) === null || _g === void 0 ? void 0 : _g.order) === null || _h === void 0 ? void 0 : _h.potentialActions
|
|
62
69
|
})(repos);
|
|
@@ -111,7 +118,7 @@ function createConfirmReserveTransactionTasksIfNotExist(order, simpleOrder) {
|
|
|
111
118
|
function createConfirmMoneyTransferTasksIfNotExist(order, simpleOrder) {
|
|
112
119
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
113
120
|
const taskRunsAt = new Date();
|
|
114
|
-
yield Promise.all(order.
|
|
121
|
+
yield Promise.all(order.serialNumbers.map((moneyTransferTransactionNumber) => __awaiter(this, void 0, void 0, function* () {
|
|
115
122
|
const data = {
|
|
116
123
|
project: order.project,
|
|
117
124
|
typeOf: factory.actionType.ConfirmAction,
|
|
@@ -124,7 +131,7 @@ function createConfirmMoneyTransferTasksIfNotExist(order, simpleOrder) {
|
|
|
124
131
|
purpose: simpleOrder
|
|
125
132
|
};
|
|
126
133
|
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmMoneyTransfer, data.purpose.typeOf, simpleOrder.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
127
|
-
const
|
|
134
|
+
const confirmMoneyTransferTransactionTask = {
|
|
128
135
|
identifier: taskIdentifier,
|
|
129
136
|
project: order.project,
|
|
130
137
|
name: factory.taskName.ConfirmMoneyTransfer,
|
|
@@ -135,71 +142,41 @@ function createConfirmMoneyTransferTasksIfNotExist(order, simpleOrder) {
|
|
|
135
142
|
executionResults: [],
|
|
136
143
|
data
|
|
137
144
|
};
|
|
138
|
-
yield repos.task.createIfNotExistByIdentifier(
|
|
145
|
+
yield repos.task.createIfNotExistByIdentifier(confirmMoneyTransferTransactionTask, { emitImmediately: true });
|
|
146
|
+
})));
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
function createConfirmRegisterServiceTasksIfNotExist(order, simpleOrder) {
|
|
150
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
const taskRunsAt = new Date();
|
|
152
|
+
yield Promise.all(order.serialNumbers.map((registerServiceTransactionNumber) => __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
const data = {
|
|
154
|
+
project: order.project,
|
|
155
|
+
typeOf: factory.actionType.ConfirmAction,
|
|
156
|
+
object: {
|
|
157
|
+
endDate: order.orderDate,
|
|
158
|
+
transactionNumber: registerServiceTransactionNumber,
|
|
159
|
+
typeOf: factory.assetTransactionType.RegisterService
|
|
160
|
+
},
|
|
161
|
+
agent: order.project,
|
|
162
|
+
purpose: simpleOrder
|
|
163
|
+
};
|
|
164
|
+
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmRegisterService, data.purpose.typeOf, simpleOrder.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
165
|
+
const confirmRegisterServiceTask = {
|
|
166
|
+
identifier: taskIdentifier,
|
|
167
|
+
project: order.project,
|
|
168
|
+
name: factory.taskName.ConfirmRegisterService,
|
|
169
|
+
status: factory.taskStatus.Ready,
|
|
170
|
+
runsAt: taskRunsAt,
|
|
171
|
+
remainingNumberOfTries: 10,
|
|
172
|
+
numberOfTried: 0,
|
|
173
|
+
executionResults: [],
|
|
174
|
+
data
|
|
175
|
+
};
|
|
176
|
+
yield repos.task.createIfNotExistByIdentifier(confirmRegisterServiceTask, { emitImmediately: true });
|
|
139
177
|
})));
|
|
140
178
|
});
|
|
141
179
|
}
|
|
142
|
-
// function createConfirmRegisterServiceTransactionTasks(
|
|
143
|
-
// order: factory.order.IOrder & {
|
|
144
|
-
// acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
|
|
145
|
-
// },
|
|
146
|
-
// simpleOrder: factory.order.ISimpleOrder
|
|
147
|
-
// ) {
|
|
148
|
-
// return async (repos: {
|
|
149
|
-
// task: TaskRepo;
|
|
150
|
-
// }): Promise<factory.task.IAttributes<factory.taskName.ConfirmRegisterServiceTransaction>[]> => {
|
|
151
|
-
// const taskRunsAt = new Date();
|
|
152
|
-
// if (USE_CONFIRM_REGISTER_SERVICE_TRANSACTION) {
|
|
153
|
-
// const confirmObjects = createConfirmRegisterServiceActionObjectByOrder({ order });
|
|
154
|
-
// const tasks: factory.task.IAttributes<factory.taskName.ConfirmRegisterServiceTransaction>[] = [];
|
|
155
|
-
// await Promise.all(confirmObjects.map(async (confirmObject) => {
|
|
156
|
-
// // 冗長なタスク作成を回避
|
|
157
|
-
// const existingTasks = await repos.task.search(
|
|
158
|
-
// {
|
|
159
|
-
// limit: 1,
|
|
160
|
-
// page: 1,
|
|
161
|
-
// project: { id: { $eq: order.project.id } },
|
|
162
|
-
// name: factory.taskName.ConfirmReserveTransaction,
|
|
163
|
-
// data: {
|
|
164
|
-
// object: { transactionNumber: { $eq: confirmObject.transactionNumber } },
|
|
165
|
-
// purpose: { orderNumber: { $eq: order.orderNumber } }
|
|
166
|
-
// }
|
|
167
|
-
// },
|
|
168
|
-
// {
|
|
169
|
-
// data: 0, executionResults: 0, name: 0, numberOfTried: 0,
|
|
170
|
-
// remainingNumberOfTries: 0, runsAt: 0, status: 0
|
|
171
|
-
// }
|
|
172
|
-
// );
|
|
173
|
-
// if (existingTasks.length === 0) {
|
|
174
|
-
// const data: factory.task.IData<factory.taskName.ConfirmRegisterServiceTransaction> = {
|
|
175
|
-
// project: order.project,
|
|
176
|
-
// typeOf: factory.actionType.ConfirmAction,
|
|
177
|
-
// object: confirmObject,
|
|
178
|
-
// agent: order.project,
|
|
179
|
-
// purpose: simpleOrder,
|
|
180
|
-
// instrument: {
|
|
181
|
-
// typeOf: 'WebAPI',
|
|
182
|
-
// identifier: factory.service.webAPI.Identifier.Chevre
|
|
183
|
-
// }
|
|
184
|
-
// };
|
|
185
|
-
// tasks.push({
|
|
186
|
-
// project: order.project,
|
|
187
|
-
// name: factory.taskName.ConfirmRegisterServiceTransaction,
|
|
188
|
-
// status: factory.taskStatus.Ready,
|
|
189
|
-
// runsAt: taskRunsAt,
|
|
190
|
-
// remainingNumberOfTries: 10,
|
|
191
|
-
// numberOfTried: 0,
|
|
192
|
-
// executionResults: [],
|
|
193
|
-
// data
|
|
194
|
-
// });
|
|
195
|
-
// }
|
|
196
|
-
// }));
|
|
197
|
-
// return tasks;
|
|
198
|
-
// } else {
|
|
199
|
-
// return [];
|
|
200
|
-
// }
|
|
201
|
-
// };
|
|
202
|
-
// }
|
|
203
180
|
function createGivePointAwardTaskIfNotExist(params) {
|
|
204
181
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
205
182
|
var _a;
|
|
@@ -12,6 +12,6 @@ export declare function confirmRegisterServiceTransaction(params: factory.action
|
|
|
12
12
|
assetTransaction: AssetTransactionRepo;
|
|
13
13
|
task: TaskRepo;
|
|
14
14
|
}) => Promise<void>;
|
|
15
|
-
export declare function onRegistered(
|
|
15
|
+
export declare function onRegistered(params: factory.action.interact.confirm.registerService.IAttributes): (repos: {
|
|
16
16
|
task: TaskRepo;
|
|
17
17
|
}) => Promise<void>;
|
|
@@ -83,17 +83,39 @@ function confirmRegisterServiceTransaction(params) {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
exports.confirmRegisterServiceTransaction = confirmRegisterServiceTransaction;
|
|
86
|
-
function onRegistered(
|
|
86
|
+
function onRegistered(params) {
|
|
87
87
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
88
88
|
const taskAttributes = [];
|
|
89
|
-
// 次のメンバーシップ注文タスクを作成
|
|
90
|
-
// 廃止(2023-08-18~)
|
|
91
|
-
// const orderProgramMembershipTasks = actionAttributes.potentialActions?.orderProgramMembership;
|
|
92
|
-
// if (Array.isArray(orderProgramMembershipTasks)) {
|
|
93
|
-
// taskAttributes.push(...orderProgramMembershipTasks);
|
|
94
|
-
// }
|
|
95
89
|
// タスク保管
|
|
96
90
|
yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
|
|
91
|
+
if (params.purpose.typeOf === factory.order.OrderType.Order) {
|
|
92
|
+
// タスク冪等作成
|
|
93
|
+
const onAssetTransactionStatusChangedTaskData = {
|
|
94
|
+
project: { id: params.project.id, typeOf: factory.organizationType.Project },
|
|
95
|
+
object: {
|
|
96
|
+
typeOf: params.object.typeOf,
|
|
97
|
+
transactionNumber: params.object.transactionNumber,
|
|
98
|
+
status: factory.transactionStatusType.Confirmed
|
|
99
|
+
},
|
|
100
|
+
purpose: {
|
|
101
|
+
confirmationNumber: '',
|
|
102
|
+
orderNumber: params.purpose.orderNumber,
|
|
103
|
+
typeOf: factory.order.OrderType.Order
|
|
104
|
+
},
|
|
105
|
+
useOnOrderStatusChanged: true
|
|
106
|
+
};
|
|
107
|
+
const onAssetTransactionStatusChangedTask = {
|
|
108
|
+
project: { id: params.project.id, typeOf: factory.organizationType.Project },
|
|
109
|
+
name: factory.taskName.OnAssetTransactionStatusChanged,
|
|
110
|
+
status: factory.taskStatus.Ready,
|
|
111
|
+
runsAt: new Date(),
|
|
112
|
+
remainingNumberOfTries: 10,
|
|
113
|
+
numberOfTried: 0,
|
|
114
|
+
executionResults: [],
|
|
115
|
+
data: onAssetTransactionStatusChangedTaskData
|
|
116
|
+
};
|
|
117
|
+
yield repos.task.createOnAssetTransactionStatusChangedTaskIfNotExist(onAssetTransactionStatusChangedTask, { emitImmediately: true });
|
|
118
|
+
}
|
|
97
119
|
});
|
|
98
120
|
}
|
|
99
121
|
exports.onRegistered = onRegistered;
|
|
@@ -12,40 +12,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.createPotentialActions = void 0;
|
|
13
13
|
const givePointAward_1 = require("./potentialActions/givePointAward");
|
|
14
14
|
// import { createMoneyTransferActions } from './potentialActions/moneyTransfer';
|
|
15
|
-
|
|
15
|
+
// import { createRegisterServiceActions } from './potentialActions/registerService';
|
|
16
16
|
const sendEmailMessage_1 = require("./potentialActions/sendEmailMessage");
|
|
17
|
-
// import { createMaskedCustomer } from '../../../factory/order';
|
|
18
17
|
/**
|
|
19
18
|
* 取引のポストアクションを作成する
|
|
20
19
|
*/
|
|
21
20
|
function createPotentialActions(params) {
|
|
22
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const registerServiceActions =
|
|
22
|
+
// const registerServiceActions = await createRegisterServiceActions(params);
|
|
24
23
|
// 通貨転送アクション
|
|
25
24
|
// const moneyTransferActions = await createMoneyTransferActions(params);
|
|
26
25
|
// ポイントインセンティブに対する承認アクションの分だけ、ポイントインセンティブ付与アクションを作成する
|
|
27
26
|
const givePointAwardActions = yield (0, givePointAward_1.createGivePointAwardActions)(params);
|
|
28
27
|
// 注文配送メール送信設定
|
|
29
28
|
const sendEmailMessageActions = yield (0, sendEmailMessage_1.createSendEmailMessageActions)(params);
|
|
30
|
-
// const maskedCustomer = createMaskedCustomer(params.order, { noProfile: true });
|
|
31
|
-
// const simpleOrder: factory.order.ISimpleOrder = {
|
|
32
|
-
// typeOf: params.order.typeOf,
|
|
33
|
-
// seller: {
|
|
34
|
-
// id: params.order.seller.id,
|
|
35
|
-
// typeOf: params.order.seller.typeOf,
|
|
36
|
-
// name: params.order.seller.name
|
|
37
|
-
// },
|
|
38
|
-
// // mask
|
|
39
|
-
// customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
|
|
40
|
-
// orderNumber: params.order.orderNumber,
|
|
41
|
-
// price: params.order.price,
|
|
42
|
-
// priceCurrency: params.order.priceCurrency,
|
|
43
|
-
// orderDate: params.order.orderDate
|
|
44
|
-
// };
|
|
45
29
|
const sendOrderActionAttributes = {
|
|
46
30
|
potentialActions: {
|
|
47
31
|
// moneyTransfer: moneyTransferActions, // 廃止(2024-01-29~)
|
|
48
|
-
registerService: registerServiceActions,
|
|
32
|
+
// registerService: registerServiceActions, // 廃止(2024-01-30~)
|
|
49
33
|
sendEmailMessage: sendEmailMessageActions
|
|
50
34
|
}
|
|
51
35
|
};
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/credential-providers": "3.433.0",
|
|
13
|
-
"@chevre/factory": "4.352.0-alpha.
|
|
13
|
+
"@chevre/factory": "4.352.0-alpha.14",
|
|
14
14
|
"@cinerino/sdk": "5.9.0-alpha.2",
|
|
15
15
|
"@motionpicture/coa-service": "9.3.0-alpha.4",
|
|
16
16
|
"@motionpicture/gmo-service": "5.3.0-alpha.2",
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"postversion": "git push origin --tags",
|
|
112
112
|
"prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
|
|
113
113
|
},
|
|
114
|
-
"version": "21.20.0-alpha.
|
|
114
|
+
"version": "21.20.0-alpha.57"
|
|
115
115
|
}
|