@chevre/domain 20.4.0-alpha.34 → 20.4.0-alpha.35
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.
|
@@ -22,7 +22,7 @@ async function main() {
|
|
|
22
22
|
const productRepo = new chevre.repository.Product(mongoose.connection);
|
|
23
23
|
|
|
24
24
|
const { ticketOffers } = await chevre.service.offer.event.searchEventTicketOffers({
|
|
25
|
-
event: { id: '
|
|
25
|
+
event: { id: 'ale6qiedq' },
|
|
26
26
|
onlyValid: true,
|
|
27
27
|
validateOfferRateLimit: true,
|
|
28
28
|
addSortIndex: true,
|
|
@@ -26,7 +26,7 @@ function searchTicketOffersByItemOffered(params) {
|
|
|
26
26
|
if (typeof catalogId !== 'string') {
|
|
27
27
|
throw new factory.errors.NotFound('itemOffered.hasOfferCatalog');
|
|
28
28
|
}
|
|
29
|
-
const
|
|
29
|
+
const { offers, sortedOfferIds } = yield repos.offer.findOffersByOfferCatalogId({
|
|
30
30
|
ids: params.ids,
|
|
31
31
|
offerCatalog: { id: catalogId },
|
|
32
32
|
availableAtOrFrom: { id: (_d = params.store) === null || _d === void 0 ? void 0 : _d.id },
|
|
@@ -38,9 +38,7 @@ function searchTicketOffersByItemOffered(params) {
|
|
|
38
38
|
page: params.page,
|
|
39
39
|
sort: false
|
|
40
40
|
});
|
|
41
|
-
|
|
42
|
-
const sortedOfferIds = findOffersByOfferCatalogIdResult.sortedOfferIds;
|
|
43
|
-
return { availableOffers, sortedOfferIds };
|
|
41
|
+
return { availableOffers: offers, sortedOfferIds };
|
|
44
42
|
});
|
|
45
43
|
}
|
|
46
44
|
/**
|
|
@@ -74,10 +72,13 @@ function searchEventTicketOffersByEvent(params) {
|
|
|
74
72
|
unacceptedPaymentMethod,
|
|
75
73
|
excludeAppliesToMovieTicket
|
|
76
74
|
})(repos);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
// 冗長な検索について最適化(2023-03-03~)
|
|
76
|
+
const { soundFormatChargeSpecs, videoFormatChargeSpecs, movieTicketTypeChargeSpecs } = yield searchPriceSpecs4event({
|
|
77
|
+
project: { id: event.project.id },
|
|
78
|
+
soundFormatTypes,
|
|
79
|
+
videoFormatTypes,
|
|
80
|
+
availableOffers
|
|
81
|
+
})(repos);
|
|
81
82
|
const offers4event = [];
|
|
82
83
|
// 単価オファーから興行オファーを生成(順に処理)
|
|
83
84
|
for (const availableOffer of availableOffers) {
|
|
@@ -114,8 +115,8 @@ function searchEventTicketOffersByEvent(params) {
|
|
|
114
115
|
offers4event.push((0, factory_1.createCompoundPriceSpec4event)({
|
|
115
116
|
eligibleQuantity: eventOffers.eligibleQuantity,
|
|
116
117
|
offer: availableOffer,
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
videoFormatChargeSpecs,
|
|
119
|
+
soundFormatChargeSpecs,
|
|
119
120
|
movieTicketTypeChargeSpecs,
|
|
120
121
|
videoFormatTypes,
|
|
121
122
|
availability,
|
|
@@ -134,7 +135,6 @@ function getUnacceptedPaymentMethodByEvent(params) {
|
|
|
134
135
|
const eventOffers = params.event.offers;
|
|
135
136
|
const unacceptedPaymentMethodByEvent = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.unacceptedPaymentMethod;
|
|
136
137
|
// 施設コンテンツを参照する必要はない(2022-10-31~)
|
|
137
|
-
// イベントにunacceptedPaymentMethod設定があれば上書き
|
|
138
138
|
if (Array.isArray(unacceptedPaymentMethodByEvent)) {
|
|
139
139
|
unacceptedPaymentMethod = unacceptedPaymentMethodByEvent;
|
|
140
140
|
}
|
|
@@ -142,38 +142,57 @@ function getUnacceptedPaymentMethodByEvent(params) {
|
|
|
142
142
|
}
|
|
143
143
|
function searchPriceSpecs4event(params) {
|
|
144
144
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
codeValue: { $in: params.soundFormatTypes },
|
|
152
|
-
'inCodeSet.identifier': { $eq: factory.categoryCode.CategorySetIdentifier.SoundFormatType }
|
|
153
|
-
}
|
|
145
|
+
let soundFormatChargeSpecs = [];
|
|
146
|
+
let videoFormatChargeSpecs = [];
|
|
147
|
+
let movieTicketTypeChargeSpecs = [];
|
|
148
|
+
const movieTicketServiceTypes = [...new Set(params.availableOffers.reduce((a, b) => {
|
|
149
|
+
if (!Array.isArray(b.priceSpecification.appliesToMovieTicket)) {
|
|
150
|
+
return a;
|
|
154
151
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
152
|
+
return [
|
|
153
|
+
...a,
|
|
154
|
+
...b.priceSpecification.appliesToMovieTicket.map((movieTicket) => movieTicket.serviceType)
|
|
155
|
+
];
|
|
156
|
+
}, []))];
|
|
157
|
+
if (params.soundFormatTypes.length > 0) {
|
|
158
|
+
soundFormatChargeSpecs =
|
|
159
|
+
yield repos.priceSpecification.search({
|
|
160
|
+
project: { id: { $eq: params.project.id } },
|
|
161
|
+
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification,
|
|
162
|
+
appliesToCategoryCode: {
|
|
163
|
+
$elemMatch: {
|
|
164
|
+
codeValue: { $in: params.soundFormatTypes },
|
|
165
|
+
'inCodeSet.identifier': { $eq: factory.categoryCode.CategorySetIdentifier.SoundFormatType }
|
|
166
|
+
}
|
|
165
167
|
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if ((params.videoFormatTypes.length > 0)) {
|
|
171
|
+
videoFormatChargeSpecs =
|
|
172
|
+
yield repos.priceSpecification.search({
|
|
173
|
+
project: { id: { $eq: params.project.id } },
|
|
174
|
+
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification,
|
|
175
|
+
appliesToCategoryCode: {
|
|
176
|
+
$elemMatch: {
|
|
177
|
+
codeValue: { $in: params.videoFormatTypes },
|
|
178
|
+
'inCodeSet.identifier': { $eq: factory.categoryCode.CategorySetIdentifier.VideoFormatType }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
// 存在する適用決済カード区分の分だけ検索する(2023-03-03~)
|
|
183
|
+
if (movieTicketServiceTypes.length > 0) {
|
|
184
|
+
movieTicketTypeChargeSpecs =
|
|
185
|
+
yield repos.priceSpecification.search({
|
|
186
|
+
project: { id: { $eq: params.project.id } },
|
|
187
|
+
typeOf: factory.priceSpecificationType.MovieTicketTypeChargeSpecification,
|
|
188
|
+
appliesToVideoFormats: params.videoFormatTypes,
|
|
189
|
+
appliesToMovieTicket: {
|
|
190
|
+
serviceTypes: movieTicketServiceTypes
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return { soundFormatChargeSpecs, videoFormatChargeSpecs, movieTicketTypeChargeSpecs };
|
|
177
196
|
});
|
|
178
197
|
}
|
|
179
198
|
function checkAvailability(params) {
|
|
@@ -5,8 +5,8 @@ declare function createCompoundPriceSpec4event(params: {
|
|
|
5
5
|
eligibleQuantity: factory.quantitativeValue.IQuantitativeValue<factory.unitCode.C62>;
|
|
6
6
|
offer: factory.unitPriceOffer.IUnitPriceOffer;
|
|
7
7
|
movieTicketTypeChargeSpecs: IMovieTicketTypeChargeSpecification[];
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
videoFormatChargeSpecs: ICategoryCodeChargeSpecification[];
|
|
9
|
+
soundFormatChargeSpecs: ICategoryCodeChargeSpecification[];
|
|
10
10
|
videoFormatTypes: string[];
|
|
11
11
|
availability?: factory.itemAvailability;
|
|
12
12
|
addOn: factory.product.ITicketAddOn[] | factory.product.IMinimizedTicketAddOn[];
|
|
@@ -23,8 +23,8 @@ function createCompoundPriceSpec4event(params) {
|
|
|
23
23
|
// 区分加算料金を適用しないオプションを追加(2023-01-26~)
|
|
24
24
|
const ignoreCategoryCodeChargeSpec = ((_a = params.offer.settings) === null || _a === void 0 ? void 0 : _a.ignoreCategoryCodeChargeSpec) === true;
|
|
25
25
|
if (!ignoreCategoryCodeChargeSpec) {
|
|
26
|
-
videoFormatChargeSpecComponents = params.
|
|
27
|
-
soundFormatChargeSpecComponents = params.
|
|
26
|
+
videoFormatChargeSpecComponents = params.videoFormatChargeSpecs.map(categoryCodeChargePriceSpec2component);
|
|
27
|
+
soundFormatChargeSpecComponents = params.soundFormatChargeSpecs.map(categoryCodeChargePriceSpec2component);
|
|
28
28
|
}
|
|
29
29
|
const mvtkPriceComponents = [];
|
|
30
30
|
// 複数決済カード対応(2022-07-11~)
|
package/package.json
CHANGED