diff --git a/game-server/app/servers/battle/handler/auctionHandler.ts b/game-server/app/servers/battle/handler/auctionHandler.ts index 2f7ae8eda..81dd01c13 100644 --- a/game-server/app/servers/battle/handler/auctionHandler.ts +++ b/game-server/app/servers/battle/handler/auctionHandler.ts @@ -1,6 +1,6 @@ import { DividendModel } from './../../../db/Dividend'; import { Application, BackendSession, ChannelService, HandlerService, } from "pinus"; -import { AUCTION_STAGE, DEBUG_MAGIC_WORD, STATUS, OFFER_RATIO, CURRENCY_BY_TYPE, CURRENCY_TYPE, DATA_NAME, LOT_STATUS } from "../../../consts"; +import { AUCTION_STAGE, DEBUG_MAGIC_WORD, STATUS, CURRENCY_BY_TYPE, CURRENCY_TYPE, DATA_NAME, LOT_STATUS } from "../../../consts"; import { LotModel } from "../../../db/Lot"; import { ItemReward } from "../../../domain/dbGeneral"; import { resResult } from "../../../pubUtils/util"; @@ -15,6 +15,8 @@ import { openGuildRefine } from '../../../services/guildRefineService'; import { unlockTrain } from '../../../services/guildTrainService'; import { UserGuildModel } from '../../../db/UserGuild'; import { UserGuildApplyModel } from '../../../db/UserGuildApply'; +import * as dicParam from '../../../pubUtils/dicParam'; +import { getAuctionRewardByPoolId } from '../../../pubUtils/data'; export default function (app: Application) { new HandlerService(app, {}); @@ -67,7 +69,7 @@ export class AuctionHandler { res.releaseCallback(); return resResult(STATUS.LOT_OFFER_SERIAL); } - let newPrice = Math.floor(curPrice * OFFER_RATIO); + let newPrice = Math.floor(curPrice * dicParam.GUILD_AUCTION.AUCTION_PRICE_RISE); let maxFlag = max; if (newPrice >= maxPrice) { newPrice = maxPrice; @@ -214,8 +216,8 @@ export class AuctionHandler { } // ! 测试接口 - async debugAddLots(msg: { magicWord: string, sourceType: number, sourceCode: string, rewards: ItemReward[] }, session: BackendSession) { - const { magicWord, sourceType, sourceCode, rewards } = msg; + async debugAddLots(msg: { magicWord: string, sourceType: number, sourceCode: string, poolId: number }, session: BackendSession) { + const { magicWord, sourceType, sourceCode, poolId } = msg; if (magicWord !== DEBUG_MAGIC_WORD) { return resResult(STATUS.TOKEN_ERR); } @@ -242,6 +244,8 @@ export class AuctionHandler { await UserGuildApplyModel.deleteApply(roleId); // 删除玩家所有对其他公会的申请 } + let rewards = getAuctionRewardByPoolId(poolId); + if(!rewards) return resResult(STATUS.WRONG_PARMS); const result = await genAuction(guildCode, sourceType, sourceCode, serverId, rewards); if (!result) { return resResult(STATUS.WRONG_PARMS); diff --git a/game-server/app/services/auctionService.ts b/game-server/app/services/auctionService.ts index 746fd0e29..93e1e40b3 100644 --- a/game-server/app/services/auctionService.ts +++ b/game-server/app/services/auctionService.ts @@ -1,17 +1,17 @@ -import { MailModel, MailType } from './../db/Mail'; import { DividendModel } from './../db/Dividend'; -import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_STATUS, LOT_STATUS, MAIL_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, STATUS, DIVIDENDWEEKENDRATE, DIVIDENDMAXRATIO, DIVIDENDPOSITIONMAXRATIO, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD, AUCTION_SOURCE } from './../consts'; +import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_STATUS, LOT_STATUS, MAIL_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, DIVIDENDMAXRATIO, DIVIDENDPOSITIONMAXRATIO, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD, AUCTION_SOURCE } from './../consts'; import { DividendRec, ItemReward } from "../domain/dbGeneral"; -import { genCode, resResult } from '../pubUtils/util'; +import { genCode } from '../pubUtils/util'; import { LotModel, LotParam } from '../db/Lot'; -import { getZeroPointD, getTimeFunD } from '../pubUtils/timeUtil'; +import { getTimeFunD } from '../pubUtils/timeUtil'; import { gameData, getGoodById } from '../pubUtils/data'; import { DividendParam, DividendType } from '../db/Dividend'; -import { pushMail } from '../pubUtils/interface'; import { sendMailByContent } from './mailService'; -import { pinus, BackendSession, FrontendOrBackendSession } from 'pinus'; +import { FrontendOrBackendSession } from 'pinus'; import { participants } from './guildActivityService'; import { Member } from '../domain/battleField/guildActivity'; +import * as dicParam from '../pubUtils/dicParam'; +import { RewardInter } from '../pubUtils/interface'; // ! 获取底价,假数据 export function getBasePrice(gid: number, count: number) { @@ -142,7 +142,7 @@ export function getBossAuctionEnd() { * @param {number} serverId * @param {ItemReward[]} rewards */ -export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: ItemReward[]) { +export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: { goods: RewardInter, basePrice: number, maxPrice: number}[]) { let begin = auctionBegin(); let end = auctionEnd(); if(sourceType == AUCTION_SOURCE.BOSS) { // 军团boss本 @@ -150,13 +150,13 @@ export async function genAuction(guildCode: string, sourceType: number, sourceCo end = getBossAuctionEnd(); } const guildEnd = guildAuctionEnd(); - const lotsData: LotParam[] = rewards.map(reward => { - const { id, count } = reward; + const lotsData: LotParam[] = rewards.map(({ goods, basePrice, maxPrice }) => { + const { id, count } = goods; const code = genCode(LOT_CODE_LEN); return { auctionStage: AUCTION_STAGE.DEFAULT, sourceType, sourceCode, serverId, guildCode, code, gid: id, count, begin, end, status: LOT_STATUS.DEFAULT, - maxPrice: getMaxPrice(id, count), curPrice: getBasePrice(id, count), + maxPrice, curPrice: basePrice, } }); const lots = await LotModel.createRecs(lotsData); @@ -179,7 +179,7 @@ function posDividend(totalPrice: number, roleRatio: number, totalRatio: number) function weekendDividend(posNum: number, date: Date) { const day = date.getDay(); - return (day === 0 || day === 6) ? Math.floor(posNum * DIVIDENDWEEKENDRATE) : 0; + return (day === 0 || day === 6) ? Math.floor(posNum * dicParam.GUILD_AUCTION.DIVIDEND_WEEKEND_RATE) : 0; } function dividendRate(data: Member) { @@ -197,7 +197,7 @@ export async function calculateDividend(dividend: DividendType) { if (!dividend) return null; const { code, guildCode, sourceType, sourceCode, lots, totalPrice, status, begin } = dividend; if (status === DIVIDEND_STATUS.SENT) return dividend; - const calcuTotalPrice = lots.reduce((acc, lot) => { return acc + lot.price }, 0); + const calcuTotalPrice = lots.reduce((acc, lot) => { return acc + lot.price }, 0) * dicParam.GUILD_AUCTION.DIVIDEND_RATE; if (calcuTotalPrice !== totalPrice) { await DividendModel.updateDividend(code, { totalPrice: calcuTotalPrice }); // 更新 totalPrice diff --git a/game-server/app/services/guildActivityService.ts b/game-server/app/services/guildActivityService.ts index 79cbe2418..ce111206e 100644 --- a/game-server/app/services/guildActivityService.ts +++ b/game-server/app/services/guildActivityService.ts @@ -393,7 +393,7 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb rank, score: guildScore, remainGateHp: gateHp, members, memberCnt: members.length, auctionType: AUCTION_SOURCE.GATE, - rewards + rewards: rewards.map(cur => cur.goods) }); // 结算功勋等奖励 let dic = gameData.guildActivity.get(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY); @@ -455,7 +455,7 @@ export async function cityActivitySettleReward(cityId: number, serverId: number) memberCnt: members.length, members, isSuccess, isCompleted: true, rank: guildRank, damage: num, remainGateHp: gateHp, - rewards, + rewards: rewards.map(cur => cur.goods), auctionType: AUCTION_SOURCE.CITY, }); @@ -690,7 +690,7 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W let rec = await GuildActivityRecordModel.updateInfo(guildCode, { memberCnt: members.length, members, isSuccess, isCompleted: true, rank: myGuildRank, - rewards, + rewards: rewards.map(cur => cur.goods), woodenHorse, }); if (rec) { diff --git a/shared/consts/constModules/auctionConst.ts b/shared/consts/constModules/auctionConst.ts index 5ab4afbd1..76fc34e60 100644 --- a/shared/consts/constModules/auctionConst.ts +++ b/shared/consts/constModules/auctionConst.ts @@ -50,9 +50,7 @@ export const AUCTION_BID_STATUS = { SUC: 2, // 竞拍成功 } -export const OFFER_RATIO = 1.1; export const BID_REC_COUNT = 100; export const GUILD_LOTS_REC_COUNT = 100; -export const DIVIDENDWEEKENDRATE = 0.2; export const DIVIDENDMAXRATIO = 0.1; export const DIVIDENDPOSITIONMAXRATIO = 3; diff --git a/shared/pubUtils/data.ts b/shared/pubUtils/data.ts index c153201fb..727e9c1e5 100644 --- a/shared/pubUtils/data.ts +++ b/shared/pubUtils/data.ts @@ -92,7 +92,7 @@ import { dicQuenchByQuality, dicQuenchRangeByQuality, dicQuenchRangeByQualityAnd import { dicQuenchConsume, loadQuenchConsume } from './dictionary/DicQuenchConsume'; import { dicHoliday, loadHoliday } from './dictionary/DicHoliday'; import { dicExpeditionSubAttr, loadExpeditionSubAttr } from './dictionary/DicExpeditionSubAttr'; -import { dicAuctionPool, loadAuctionReward } from './dictionary/DicAuctionReward'; +import { DicAuctionBasicPool, dicAuctionPool, loadAuctionReward } from './dictionary/DicAuctionReward'; import { dicGuildTrainInfo, loadGuildTrainInfo } from './dictionary/DicGuildTrainInfo'; import { pick } from "underscore"; @@ -596,12 +596,13 @@ export function getGuildAuctionRewards(aid: number, rank: number) { export function getAuctionRewardByPoolId(poolId: number) { let pools = gameData.auctionPool.get(poolId); - let rewards: RewardInter[] = []; + let rewards: { goods: RewardInter, basePrice: number, maxPrice: number }[] = []; for(let { count, basicPool } of pools) { + let { rewardBasicPool, basePrice, maxPrice } = basicPool for(let i = 0; i < count; i++) { - let result = getRandEelmWithWeight(basicPool); + let result = getRandEelmWithWeight(rewardBasicPool); if(result && result.dic) { - rewards.push(pick(result.dic, ['id', 'count'])); + rewards.push({ goods: pick(result.dic, ['id', 'count']), basePrice, maxPrice }); } } } diff --git a/shared/pubUtils/dictionary/DicAuctionReward.ts b/shared/pubUtils/dictionary/DicAuctionReward.ts index 95f6dcab3..f2f56aaf8 100644 --- a/shared/pubUtils/dictionary/DicAuctionReward.ts +++ b/shared/pubUtils/dictionary/DicAuctionReward.ts @@ -1,4 +1,4 @@ -import { readFileAndParse } from '../util' +import { parseNumberList, readFileAndParse } from '../util' import { FILENAME } from '../../consts' import { decodeArrayListStr } from '../../pubUtils/util'; @@ -11,6 +11,8 @@ export interface AuctionBasicPool { export interface DicAuctionBasicPool { readonly id: number; // 唯一id readonly rewardBasicPool: AuctionBasicPool[]; + readonly basePrice: number; + readonly maxPrice: number; } export interface DicAuctionReward { @@ -23,17 +25,20 @@ export interface DicAuctionReward { interface DicAuctionPool { readonly id: number; // basicPool的id readonly count: number; // 份数 - readonly basicPool: AuctionBasicPool[]; // 随机池 + readonly basicPool: DicAuctionBasicPool; // 随机池 } export const dicAuctionPool = new Map(); // poolId => DicAuctionPool export function loadAuctionReward() { dicAuctionPool.clear(); - let basicPoolMap = new Map(); // id => AuctionBasicPool + let basicPoolMap = new Map(); // id => AuctionBasicPool let arr = readFileAndParse(FILENAME.DIC_AUCTION_BASIC_POOL); arr.forEach(o => { - let rewardBasicPool = parseRewardBasicPool(o.rewardBasicPool); - basicPoolMap.set(o.id, rewardBasicPool); + console.log(o) + o.rewardBasicPool = parseRewardBasicPool(o.rewardBasicPool); + o.basePrice = parsePrice(o.basePrice); + o.maxPrice = parsePrice(o.maxPrice); + basicPoolMap.set(o.id, o); }); arr = undefined; let arr2 = readFileAndParse(FILENAME.DIC_AUCTION_REWARD); @@ -60,6 +65,14 @@ function parseRewardBasicPool(str: string) { return result } +function parsePrice(str: string) { + let arr = str.split('&'); + if(arr.length != 2) return 0; + let price = parseInt(arr[1]); + if(isNaN(price)) throw new Error('price format wrong'); + return price; +} + function parseRewardId(str: string) { let result = new Array<{id: number, count: number}>(); if (!str) return result; diff --git a/shared/resource/jsons/dic_army_bossBase.json b/shared/resource/jsons/dic_army_bossBase.json old mode 100755 new mode 100644 index f4e4eb7bf..2e1eb8f7c --- a/shared/resource/jsons/dic_army_bossBase.json +++ b/shared/resource/jsons/dic_army_bossBase.json @@ -13,7 +13,8 @@ "killReward": "40005&1000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "21013&80|21016&80|21031&80|21042&80|21054&80|21055&80|21062&80|21063&80|21008&60|21009&60|21010&60|42124&1|42128&1|42132&1|42136&1|42140&1|42144&1" }, { "id": 2, @@ -29,7 +30,8 @@ "killReward": "40005&2000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "21013&80|21016&80|21031&80|21042&80|21054&80|21055&80|21062&80|21063&80|21008&60|21009&60|21010&60|42124&1|42128&1|42132&1|42136&1|42140&1|42144&1" }, { "id": 3, @@ -45,7 +47,8 @@ "killReward": "40005&3000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "21013&80|21016&80|21031&80|21042&80|21054&80|21055&80|21062&80|21063&80|21008&60|21009&60|21010&60|42124&1|42128&1|42132&1|42136&1|42140&1|42144&1" }, { "id": 4, @@ -61,7 +64,8 @@ "killReward": "40005&4000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "42136&1|42140&1|42144&1|33123&1|33127&1|33131&1|33135&1|33139&1|33143&1" }, { "id": 5, @@ -77,7 +81,8 @@ "killReward": "40005&5000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "42136&1|42140&1|42144&1|33123&1|33127&1|33131&1|33135&1|33139&1|33143&1" }, { "id": 6, @@ -93,7 +98,8 @@ "killReward": "40005&6000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "42136&1|42140&1|42144&1|33123&1|33127&1|33131&1|33135&1|33139&1|33143&1" }, { "id": 7, @@ -109,7 +115,8 @@ "killReward": "40005&7000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "33131&1|33135&1|33139&1|33143&1|50169&1|50170&1|50171&1" }, { "id": 8, @@ -125,7 +132,8 @@ "killReward": "40005&8000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "33131&1|33135&1|33139&1|33143&1|50169&1|50170&1|50171&1" }, { "id": 9, @@ -141,7 +149,8 @@ "killReward": "40005&9000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "33131&1|33135&1|33139&1|33143&1|50169&1|50170&1|50171&1" }, { "id": 10, @@ -157,6 +166,7 @@ "killReward": "40005&10000", "ratio": 1, "damageReward": "40005&1", - "encourageSum": 300 + "encourageSum": 300, + "rewardsPreview": "33131&1|33135&1|33139&1|33143&1|50169&1|50170&1|50171&1" } ] \ No newline at end of file diff --git a/shared/resource/jsons/dic_zyz_auction_basicPool.json b/shared/resource/jsons/dic_zyz_auction_basicPool.json index fafb1c5f5..a0e852604 100644 --- a/shared/resource/jsons/dic_zyz_auction_basicPool.json +++ b/shared/resource/jsons/dic_zyz_auction_basicPool.json @@ -5,7 +5,8 @@ "rewardBasicPool": "21013&80&1|21016&80&1|21031&80&1|21042&80&1|21054&80&1|21055&80&1|21062&80&1|21063&80&1", "totalCount": 8, "itid": 25, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1500" }, { "id": 2, @@ -13,7 +14,8 @@ "rewardBasicPool": "21008&60&1|21009&60&1|21010&60&1|21011&60&1|21012&60&1|21014&60&1|21015&60&1|21025&60&1|21026&60&1|21027&60&1|21028&60&1|21029&60&1|21030&60&1|21036&60&1|21037&60&1|21038&60&1|21039&60&1|21050&60&1|21051&60&1|21052&60&1|21053&60&1|21064&60&1", "totalCount": 22, "itid": 25, - "value": "31002&1500" + "basePrice": "31002&1500", + "maxPrice": "31002&3000" }, { "id": 3, @@ -21,7 +23,8 @@ "rewardBasicPool": "21001&30&1|21002&30&1|21003&30&1|21004&30&1|21005&30&1|21006&30&1|21007&30&1|21017&30&1|21018&30&1|21019&30&1|21020&30&1|21021&30&1|21022&30&1|21023&30&1|21024&30&1|21032&30&1|21033&30&1|21034&30&1|21035&30&1|21040&30&1|21041&30&1|21043&30&1|21044&30&1|21045&30&1|21046&30&1|21047&30&1|21048&30&1|21049&30&1|21056&30&1|21057&30&1|21059&30&1", "totalCount": 31, "itid": 25, - "value": "31002&3000" + "basePrice": "31002&3000", + "maxPrice": "31002&5000" }, { "id": 4, @@ -29,7 +32,8 @@ "rewardBasicPool": "42124&1&1|42128&1&1|42132&1&1|42136&1&1|42140&1&1|42144&1&1", "totalCount": 6, "itid": 40, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1500" }, { "id": 5, @@ -37,7 +41,8 @@ "rewardBasicPool": "42123&1&1|42127&1&1|42131&1&1|42135&1&1|42139&1&1|42143&1&1", "totalCount": 6, "itid": 40, - "value": "31002&400" + "basePrice": "31002&400", + "maxPrice": "31002&800" }, { "id": 6, @@ -45,7 +50,8 @@ "rewardBasicPool": "42100&1&1|42104&1&1|42108&1&1|42112&1&1|42116&1&1|42120&1&1", "totalCount": 6, "itid": 40, - "value": "31002&300" + "basePrice": "31002&300", + "maxPrice": "31002&600" }, { "id": 7, @@ -53,7 +59,8 @@ "rewardBasicPool": "42099&1&1|42103&1&1|42107&1&1|42111&1&1|42115&1&1|42119&1&1", "totalCount": 6, "itid": 40, - "value": "31002&150" + "basePrice": "31002&150", + "maxPrice": "31002&200" }, { "id": 8, @@ -61,7 +68,8 @@ "rewardBasicPool": "33123&1&1|33127&1&1|33131&1&1|33135&1&1|33139&1&1|33143&1&1", "totalCount": 6, "itid": 28, - "value": "31002&2000" + "basePrice": "31002&2000", + "maxPrice": "31002&4000" }, { "id": 9, @@ -69,7 +77,8 @@ "rewardBasicPool": "33099&1&1|33103&1&1|33107&1&1|33111&1&1|33115&1&1|33119&1&1", "totalCount": 6, "itid": 28, - "value": "31002&1000" + "basePrice": "31002&1000", + "maxPrice": "31002&2000" }, { "id": 10, @@ -77,7 +86,8 @@ "rewardBasicPool": "50169&1&1|50170&1&1|50171&1&1|50172&1&1|50173&1&1|50174&1&1|50175&1&1|50176&1&1|50177&1&1|50178&1&1|50179&1&1|50180&1&1|50181&1&1|50182&1&1|50183&1&1|50184&1&1|50185&1&1|50186&1&1|50187&1&1|50188&1&1|50189&1&1|50190&1&1|50191&1&1|50192&1&1|50193&1&1|50194&1&1|50195&1&1|50196&1&1|50197&1&1|50198&1&1|50199&1&1|50200&1&1|50201&1&1|50202&1&1|50203&1&1|50204&1&1|50205&1&1|50206&1&1|50207&1&1|50208&1&1|50209&1&1|50210&1&1", "totalCount": 42, "itid": 41, - "value": "31002&5000" + "basePrice": "31002&5000", + "maxPrice": "31002&7000" }, { "id": 11, @@ -85,7 +95,8 @@ "rewardBasicPool": "50127&1&1|50128&1&1|50129&1&1|50130&1&1|50131&1&1|50132&1&1|50133&1&1|50134&1&1|50135&1&1|50136&1&1|50137&1&1|50138&1&1|50139&1&1|50140&1&1|50141&1&1|50142&1&1|50143&1&1|50144&1&1|50145&1&1|50146&1&1|50147&1&1|50148&1&1|50149&1&1|50150&1&1|50151&1&1|50152&1&1|50153&1&1|50154&1&1|50155&1&1|50156&1&1|50157&1&1|50158&1&1|50159&1&1|50160&1&1|50161&1&1|50162&1&1|50163&1&1|50164&1&1|50165&1&1|50166&1&1|50167&1&1|50168&1&1", "totalCount": 42, "itid": 41, - "value": "31002&3000" + "basePrice": "31002&3000", + "maxPrice": "31002&6000" }, { "id": 12, @@ -93,7 +104,8 @@ "rewardBasicPool": "17001&1&1", "totalCount": 1, "itid": 38, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1600" }, { "id": 13, @@ -101,7 +113,8 @@ "rewardBasicPool": "17042&1&1", "totalCount": 1, "itid": 38, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1600" }, { "id": 14, @@ -109,7 +122,8 @@ "rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17050&1&1|17053&1&1|17053&1&1", "totalCount": 7, "itid": 38, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1600" }, { "id": 15, @@ -117,7 +131,8 @@ "rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17053&1&1|17053&1&1", "totalCount": 6, "itid": 38, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1600" }, { "id": 16, @@ -125,6 +140,7 @@ "rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17053&1&1", "totalCount": 5, "itid": 38, - "value": "31002&800" + "basePrice": "31002&800", + "maxPrice": "31002&1600" } ] \ No newline at end of file