返回提交历史
Modified
src/services/serversideVendorsService.ts
+33
-4
XFEstudio/SpaceNinjaServer
chore: improve getOfferId to avoid unwanted collisions (#4445)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4445 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
87c4ea91
代码差异
1 个文件
+33
-4
@@ -228,16 +228,45 @@ const getCycleDurationRange = (manifest: IVendor): IRange | undefined => {
228
228
return res.maxValue != 0 ? res : undefined;
229
229
};
230
230
231
type TOfferId = string;
231
interface IOfferIdentifiers {
232
storeItem: string;
233
quantity: number;
234
firstItemPriceType?: string;
235
}
232
236
233
const getOfferId = (offer: IVendorOffer | IItemManifest): TOfferId => {
237
const getOfferIdentifiers = (offer: IVendorOffer | IItemManifest): IOfferIdentifiers => {
238
let obj: IOfferIdentifiers;
234
239
if ("storeItem" in offer) {
235
240
// IVendorOffer
236
return offer.storeItem + "x" + offer.quantity;
241
obj = {
242
storeItem: offer.storeItem,
243
quantity: offer.quantity
244
};
245
if ((offer.itemPrices?.length ?? 0) > 0) {
246
obj.firstItemPriceType = offer.itemPrices![0].ItemType;
247
}
237
248
} else {
238
249
// IItemManifest
239
return offer.StoreItem + "x" + offer.QuantityMultiplier;
250
obj = {
251
storeItem: offer.StoreItem,
252
quantity: offer.QuantityMultiplier
253
};
254
if ((offer.ItemPrices?.length ?? 0) > 0) {
255
obj.firstItemPriceType = offer.ItemPrices![0].ItemType;
256
}
257
}
258
return obj;
259
};
260
261
type TOfferId = string;
262
263
const getOfferId = (offer: IVendorOffer | IItemManifest): TOfferId => {
264
const { storeItem, quantity, firstItemPriceType } = getOfferIdentifiers(offer);
265
let str = storeItem + "x" + quantity;
266
if (firstItemPriceType) {
267
str += ":" + firstItemPriceType;
240
268
}
269
return str;
241
270
};
242
271
243
272
let vendorManifestsUsingFullStock = false;