拍卖行:价格修改

This commit is contained in:
luying
2021-09-24 11:38:41 +08:00
parent f3c73ade66
commit 1384074736
8 changed files with 98 additions and 56 deletions
@@ -1,6 +1,6 @@
import { DividendModel } from './../../../db/Dividend'; import { DividendModel } from './../../../db/Dividend';
import { Application, BackendSession, ChannelService, HandlerService, } from "pinus"; 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 { LotModel } from "../../../db/Lot";
import { ItemReward } from "../../../domain/dbGeneral"; import { ItemReward } from "../../../domain/dbGeneral";
import { resResult } from "../../../pubUtils/util"; import { resResult } from "../../../pubUtils/util";
@@ -15,6 +15,8 @@ import { openGuildRefine } from '../../../services/guildRefineService';
import { unlockTrain } from '../../../services/guildTrainService'; import { unlockTrain } from '../../../services/guildTrainService';
import { UserGuildModel } from '../../../db/UserGuild'; import { UserGuildModel } from '../../../db/UserGuild';
import { UserGuildApplyModel } from '../../../db/UserGuildApply'; import { UserGuildApplyModel } from '../../../db/UserGuildApply';
import * as dicParam from '../../../pubUtils/dicParam';
import { getAuctionRewardByPoolId } from '../../../pubUtils/data';
export default function (app: Application) { export default function (app: Application) {
new HandlerService(app, {}); new HandlerService(app, {});
@@ -67,7 +69,7 @@ export class AuctionHandler {
res.releaseCallback(); res.releaseCallback();
return resResult(STATUS.LOT_OFFER_SERIAL); 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; let maxFlag = max;
if (newPrice >= maxPrice) { if (newPrice >= maxPrice) {
newPrice = maxPrice; newPrice = maxPrice;
@@ -214,8 +216,8 @@ export class AuctionHandler {
} }
// ! 测试接口 // ! 测试接口
async debugAddLots(msg: { magicWord: string, sourceType: number, sourceCode: string, rewards: ItemReward[] }, session: BackendSession) { async debugAddLots(msg: { magicWord: string, sourceType: number, sourceCode: string, poolId: number }, session: BackendSession) {
const { magicWord, sourceType, sourceCode, rewards } = msg; const { magicWord, sourceType, sourceCode, poolId } = msg;
if (magicWord !== DEBUG_MAGIC_WORD) { if (magicWord !== DEBUG_MAGIC_WORD) {
return resResult(STATUS.TOKEN_ERR); return resResult(STATUS.TOKEN_ERR);
} }
@@ -242,6 +244,8 @@ export class AuctionHandler {
await UserGuildApplyModel.deleteApply(roleId); // 删除玩家所有对其他公会的申请 await UserGuildApplyModel.deleteApply(roleId); // 删除玩家所有对其他公会的申请
} }
let rewards = getAuctionRewardByPoolId(poolId);
if(!rewards) return resResult(STATUS.WRONG_PARMS);
const result = await genAuction(guildCode, sourceType, sourceCode, serverId, rewards); const result = await genAuction(guildCode, sourceType, sourceCode, serverId, rewards);
if (!result) { if (!result) {
return resResult(STATUS.WRONG_PARMS); return resResult(STATUS.WRONG_PARMS);
+12 -12
View File
@@ -1,17 +1,17 @@
import { MailModel, MailType } from './../db/Mail';
import { DividendModel } from './../db/Dividend'; 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 { DividendRec, ItemReward } from "../domain/dbGeneral";
import { genCode, resResult } from '../pubUtils/util'; import { genCode } from '../pubUtils/util';
import { LotModel, LotParam } from '../db/Lot'; import { LotModel, LotParam } from '../db/Lot';
import { getZeroPointD, getTimeFunD } from '../pubUtils/timeUtil'; import { getTimeFunD } from '../pubUtils/timeUtil';
import { gameData, getGoodById } from '../pubUtils/data'; import { gameData, getGoodById } from '../pubUtils/data';
import { DividendParam, DividendType } from '../db/Dividend'; import { DividendParam, DividendType } from '../db/Dividend';
import { pushMail } from '../pubUtils/interface';
import { sendMailByContent } from './mailService'; import { sendMailByContent } from './mailService';
import { pinus, BackendSession, FrontendOrBackendSession } from 'pinus'; import { FrontendOrBackendSession } from 'pinus';
import { participants } from './guildActivityService'; import { participants } from './guildActivityService';
import { Member } from '../domain/battleField/guildActivity'; import { Member } from '../domain/battleField/guildActivity';
import * as dicParam from '../pubUtils/dicParam';
import { RewardInter } from '../pubUtils/interface';
// ! 获取底价,假数据 // ! 获取底价,假数据
export function getBasePrice(gid: number, count: number) { export function getBasePrice(gid: number, count: number) {
@@ -142,7 +142,7 @@ export function getBossAuctionEnd() {
* @param {number} serverId * @param {number} serverId
* @param {ItemReward[]} rewards * @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 begin = auctionBegin();
let end = auctionEnd(); let end = auctionEnd();
if(sourceType == AUCTION_SOURCE.BOSS) { // 军团boss本 if(sourceType == AUCTION_SOURCE.BOSS) { // 军团boss本
@@ -150,13 +150,13 @@ export async function genAuction(guildCode: string, sourceType: number, sourceCo
end = getBossAuctionEnd(); end = getBossAuctionEnd();
} }
const guildEnd = guildAuctionEnd(); const guildEnd = guildAuctionEnd();
const lotsData: LotParam[] = rewards.map(reward => { const lotsData: LotParam[] = rewards.map(({ goods, basePrice, maxPrice }) => {
const { id, count } = reward; const { id, count } = goods;
const code = genCode(LOT_CODE_LEN); const code = genCode(LOT_CODE_LEN);
return { return {
auctionStage: AUCTION_STAGE.DEFAULT, sourceType, auctionStage: AUCTION_STAGE.DEFAULT, sourceType,
sourceCode, serverId, guildCode, code, gid: id, count, begin, end, status: LOT_STATUS.DEFAULT, 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); const lots = await LotModel.createRecs(lotsData);
@@ -179,7 +179,7 @@ function posDividend(totalPrice: number, roleRatio: number, totalRatio: number)
function weekendDividend(posNum: number, date: Date) { function weekendDividend(posNum: number, date: Date) {
const day = date.getDay(); 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) { function dividendRate(data: Member) {
@@ -197,7 +197,7 @@ export async function calculateDividend(dividend: DividendType) {
if (!dividend) return null; if (!dividend) return null;
const { code, guildCode, sourceType, sourceCode, lots, totalPrice, status, begin } = dividend; const { code, guildCode, sourceType, sourceCode, lots, totalPrice, status, begin } = dividend;
if (status === DIVIDEND_STATUS.SENT) return 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) { if (calcuTotalPrice !== totalPrice) {
await DividendModel.updateDividend(code, { totalPrice: calcuTotalPrice }); await DividendModel.updateDividend(code, { totalPrice: calcuTotalPrice });
// 更新 totalPrice // 更新 totalPrice
@@ -393,7 +393,7 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
rank, score: guildScore, remainGateHp: gateHp, rank, score: guildScore, remainGateHp: gateHp,
members, memberCnt: members.length, members, memberCnt: members.length,
auctionType: AUCTION_SOURCE.GATE, auctionType: AUCTION_SOURCE.GATE,
rewards rewards: rewards.map(cur => cur.goods)
}); });
// 结算功勋等奖励 // 结算功勋等奖励
let dic = gameData.guildActivity.get(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY); 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, memberCnt: members.length, members,
isSuccess, isCompleted: true, isSuccess, isCompleted: true,
rank: guildRank, damage: num, remainGateHp: gateHp, rank: guildRank, damage: num, remainGateHp: gateHp,
rewards, rewards: rewards.map(cur => cur.goods),
auctionType: AUCTION_SOURCE.CITY, auctionType: AUCTION_SOURCE.CITY,
}); });
@@ -690,7 +690,7 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
let rec = await GuildActivityRecordModel.updateInfo(guildCode, { let rec = await GuildActivityRecordModel.updateInfo(guildCode, {
memberCnt: members.length, members, memberCnt: members.length, members,
isSuccess, isCompleted: true, rank: myGuildRank, isSuccess, isCompleted: true, rank: myGuildRank,
rewards, rewards: rewards.map(cur => cur.goods),
woodenHorse, woodenHorse,
}); });
if (rec) { if (rec) {
@@ -50,9 +50,7 @@ export const AUCTION_BID_STATUS = {
SUC: 2, // 竞拍成功 SUC: 2, // 竞拍成功
} }
export const OFFER_RATIO = 1.1;
export const BID_REC_COUNT = 100; export const BID_REC_COUNT = 100;
export const GUILD_LOTS_REC_COUNT = 100; export const GUILD_LOTS_REC_COUNT = 100;
export const DIVIDENDWEEKENDRATE = 0.2;
export const DIVIDENDMAXRATIO = 0.1; export const DIVIDENDMAXRATIO = 0.1;
export const DIVIDENDPOSITIONMAXRATIO = 3; export const DIVIDENDPOSITIONMAXRATIO = 3;
+5 -4
View File
@@ -92,7 +92,7 @@ import { dicQuenchByQuality, dicQuenchRangeByQuality, dicQuenchRangeByQualityAnd
import { dicQuenchConsume, loadQuenchConsume } from './dictionary/DicQuenchConsume'; import { dicQuenchConsume, loadQuenchConsume } from './dictionary/DicQuenchConsume';
import { dicHoliday, loadHoliday } from './dictionary/DicHoliday'; import { dicHoliday, loadHoliday } from './dictionary/DicHoliday';
import { dicExpeditionSubAttr, loadExpeditionSubAttr } from './dictionary/DicExpeditionSubAttr'; 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 { dicGuildTrainInfo, loadGuildTrainInfo } from './dictionary/DicGuildTrainInfo';
import { pick } from "underscore"; import { pick } from "underscore";
@@ -596,12 +596,13 @@ export function getGuildAuctionRewards(aid: number, rank: number) {
export function getAuctionRewardByPoolId(poolId: number) { export function getAuctionRewardByPoolId(poolId: number) {
let pools = gameData.auctionPool.get(poolId); let pools = gameData.auctionPool.get(poolId);
let rewards: RewardInter[] = []; let rewards: { goods: RewardInter, basePrice: number, maxPrice: number }[] = [];
for(let { count, basicPool } of pools) { for(let { count, basicPool } of pools) {
let { rewardBasicPool, basePrice, maxPrice } = basicPool
for(let i = 0; i < count; i++) { for(let i = 0; i < count; i++) {
let result = getRandEelmWithWeight(basicPool); let result = getRandEelmWithWeight(rewardBasicPool);
if(result && result.dic) { if(result && result.dic) {
rewards.push(pick(result.dic, ['id', 'count'])); rewards.push({ goods: pick(result.dic, ['id', 'count']), basePrice, maxPrice });
} }
} }
} }
+18 -5
View File
@@ -1,4 +1,4 @@
import { readFileAndParse } from '../util' import { parseNumberList, readFileAndParse } from '../util'
import { FILENAME } from '../../consts' import { FILENAME } from '../../consts'
import { decodeArrayListStr } from '../../pubUtils/util'; import { decodeArrayListStr } from '../../pubUtils/util';
@@ -11,6 +11,8 @@ export interface AuctionBasicPool {
export interface DicAuctionBasicPool { export interface DicAuctionBasicPool {
readonly id: number; // 唯一id readonly id: number; // 唯一id
readonly rewardBasicPool: AuctionBasicPool[]; readonly rewardBasicPool: AuctionBasicPool[];
readonly basePrice: number;
readonly maxPrice: number;
} }
export interface DicAuctionReward { export interface DicAuctionReward {
@@ -23,17 +25,20 @@ export interface DicAuctionReward {
interface DicAuctionPool { interface DicAuctionPool {
readonly id: number; // basicPool的id readonly id: number; // basicPool的id
readonly count: number; // 份数 readonly count: number; // 份数
readonly basicPool: AuctionBasicPool[]; // 随机池 readonly basicPool: DicAuctionBasicPool; // 随机池
} }
export const dicAuctionPool = new Map<number, DicAuctionPool[]>(); // poolId => DicAuctionPool export const dicAuctionPool = new Map<number, DicAuctionPool[]>(); // poolId => DicAuctionPool
export function loadAuctionReward() { export function loadAuctionReward() {
dicAuctionPool.clear(); dicAuctionPool.clear();
let basicPoolMap = new Map<number, AuctionBasicPool[]>(); // id => AuctionBasicPool let basicPoolMap = new Map<number, DicAuctionBasicPool>(); // id => AuctionBasicPool
let arr = readFileAndParse(FILENAME.DIC_AUCTION_BASIC_POOL); let arr = readFileAndParse(FILENAME.DIC_AUCTION_BASIC_POOL);
arr.forEach(o => { arr.forEach(o => {
let rewardBasicPool = parseRewardBasicPool(o.rewardBasicPool); console.log(o)
basicPoolMap.set(o.id, rewardBasicPool); o.rewardBasicPool = parseRewardBasicPool(o.rewardBasicPool);
o.basePrice = parsePrice(o.basePrice);
o.maxPrice = parsePrice(o.maxPrice);
basicPoolMap.set(o.id, o);
}); });
arr = undefined; arr = undefined;
let arr2 = readFileAndParse(FILENAME.DIC_AUCTION_REWARD); let arr2 = readFileAndParse(FILENAME.DIC_AUCTION_REWARD);
@@ -60,6 +65,14 @@ function parseRewardBasicPool(str: string) {
return result 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) { function parseRewardId(str: string) {
let result = new Array<{id: number, count: number}>(); let result = new Array<{id: number, count: number}>();
if (!str) return result; if (!str) return result;
+20 -10
View File
@@ -13,7 +13,8 @@
"killReward": "40005&1000", "killReward": "40005&1000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 2,
@@ -29,7 +30,8 @@
"killReward": "40005&2000", "killReward": "40005&2000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 3,
@@ -45,7 +47,8 @@
"killReward": "40005&3000", "killReward": "40005&3000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 4,
@@ -61,7 +64,8 @@
"killReward": "40005&4000", "killReward": "40005&4000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 5,
@@ -77,7 +81,8 @@
"killReward": "40005&5000", "killReward": "40005&5000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 6,
@@ -93,7 +98,8 @@
"killReward": "40005&6000", "killReward": "40005&6000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 7,
@@ -109,7 +115,8 @@
"killReward": "40005&7000", "killReward": "40005&7000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 8,
@@ -125,7 +132,8 @@
"killReward": "40005&8000", "killReward": "40005&8000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 9,
@@ -141,7 +149,8 @@
"killReward": "40005&9000", "killReward": "40005&9000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&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, "id": 10,
@@ -157,6 +166,7 @@
"killReward": "40005&10000", "killReward": "40005&10000",
"ratio": 1, "ratio": 1,
"damageReward": "40005&1", "damageReward": "40005&1",
"encourageSum": 300 "encourageSum": 300,
"rewardsPreview": "33131&1|33135&1|33139&1|33143&1|50169&1|50170&1|50171&1"
} }
] ]
@@ -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", "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, "totalCount": 8,
"itid": 25, "itid": 25,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1500"
}, },
{ {
"id": 2, "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", "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, "totalCount": 22,
"itid": 25, "itid": 25,
"value": "31002&1500" "basePrice": "31002&1500",
"maxPrice": "31002&3000"
}, },
{ {
"id": 3, "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", "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, "totalCount": 31,
"itid": 25, "itid": 25,
"value": "31002&3000" "basePrice": "31002&3000",
"maxPrice": "31002&5000"
}, },
{ {
"id": 4, "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", "rewardBasicPool": "42124&1&1|42128&1&1|42132&1&1|42136&1&1|42140&1&1|42144&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 40, "itid": 40,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1500"
}, },
{ {
"id": 5, "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", "rewardBasicPool": "42123&1&1|42127&1&1|42131&1&1|42135&1&1|42139&1&1|42143&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 40, "itid": 40,
"value": "31002&400" "basePrice": "31002&400",
"maxPrice": "31002&800"
}, },
{ {
"id": 6, "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", "rewardBasicPool": "42100&1&1|42104&1&1|42108&1&1|42112&1&1|42116&1&1|42120&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 40, "itid": 40,
"value": "31002&300" "basePrice": "31002&300",
"maxPrice": "31002&600"
}, },
{ {
"id": 7, "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", "rewardBasicPool": "42099&1&1|42103&1&1|42107&1&1|42111&1&1|42115&1&1|42119&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 40, "itid": 40,
"value": "31002&150" "basePrice": "31002&150",
"maxPrice": "31002&200"
}, },
{ {
"id": 8, "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", "rewardBasicPool": "33123&1&1|33127&1&1|33131&1&1|33135&1&1|33139&1&1|33143&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 28, "itid": 28,
"value": "31002&2000" "basePrice": "31002&2000",
"maxPrice": "31002&4000"
}, },
{ {
"id": 9, "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", "rewardBasicPool": "33099&1&1|33103&1&1|33107&1&1|33111&1&1|33115&1&1|33119&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 28, "itid": 28,
"value": "31002&1000" "basePrice": "31002&1000",
"maxPrice": "31002&2000"
}, },
{ {
"id": 10, "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", "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, "totalCount": 42,
"itid": 41, "itid": 41,
"value": "31002&5000" "basePrice": "31002&5000",
"maxPrice": "31002&7000"
}, },
{ {
"id": 11, "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", "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, "totalCount": 42,
"itid": 41, "itid": 41,
"value": "31002&3000" "basePrice": "31002&3000",
"maxPrice": "31002&6000"
}, },
{ {
"id": 12, "id": 12,
@@ -93,7 +104,8 @@
"rewardBasicPool": "17001&1&1", "rewardBasicPool": "17001&1&1",
"totalCount": 1, "totalCount": 1,
"itid": 38, "itid": 38,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1600"
}, },
{ {
"id": 13, "id": 13,
@@ -101,7 +113,8 @@
"rewardBasicPool": "17042&1&1", "rewardBasicPool": "17042&1&1",
"totalCount": 1, "totalCount": 1,
"itid": 38, "itid": 38,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1600"
}, },
{ {
"id": 14, "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", "rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17050&1&1|17053&1&1|17053&1&1",
"totalCount": 7, "totalCount": 7,
"itid": 38, "itid": 38,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1600"
}, },
{ {
"id": 15, "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", "rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17053&1&1|17053&1&1",
"totalCount": 6, "totalCount": 6,
"itid": 38, "itid": 38,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1600"
}, },
{ {
"id": 16, "id": 16,
@@ -125,6 +140,7 @@
"rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17053&1&1", "rewardBasicPool": "17049&1&1|17049&1&1|17050&1&1|17050&1&1|17053&1&1",
"totalCount": 5, "totalCount": 5,
"itid": 38, "itid": 38,
"value": "31002&800" "basePrice": "31002&800",
"maxPrice": "31002&1600"
} }
] ]