Dictionary <int, IncomeExInfo> calStartRemain(IMongoQuery imq) { Dictionary <int, IncomeExInfo> ret = new Dictionary <int, IncomeExInfo>(); MapReduceResult mapResult = MongodbLog.Instance.executeMapReduce(TableName.PUMP_PLAYER_MONEY, imq, MapReduceTable.getMap("iteratorPlayer"), MapReduceTable.getReduce("iteratorPlayer")); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { int playerId = Convert.ToInt32(d["_id"]); sr(playerId, 1, imq, ret); sr(playerId, 2, imq, ret); sr(playerId, 11, imq, ret); sr(playerId, 14, imq, ret); } IncomeExInfo info = new IncomeExInfo(); info.m_start = bson.Count(); ret[-1] = info; } return(ret); }
void sr(int playerId, int itemId, IMongoQuery imq, Dictionary <int, IncomeExInfo> ret) { int delta = 0; IncomeExInfo info = null; if (ret.ContainsKey(itemId)) { info = ret[itemId]; } else { info = new IncomeExInfo(); ret.Add(itemId, info); } if (itemId == 1) { info.m_start += getGoldStartVal(imq, playerId); info.m_end += geGoldtLastVal(imq, playerId); } else { info.m_start += getStartValNew(imq, itemId, playerId); info.m_end += getLastValNew(imq, itemId, playerId, ref delta); } }
void addDataRemain(StatIncomeExpensesItemBase item, DateTime time, Dictionary <int, IncomeExInfo> incomeInfo) { IMongoQuery imq = Query.EQ("genTime", BsonValue.Create(time)); Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("goldRemain", item.m_goldRemain); data.Add("gemRemain", item.m_gemRemain); data.Add("dbRemain", item.m_dbRemain); data.Add("chipRemain", item.m_chipRemain); IncomeExInfo info = incomeInfo[1]; data.Add("dayGoldStart", info.m_start); data.Add("dayGoldRemain", info.m_end); info = incomeInfo[2]; data.Add("dayGemStart", info.m_start); data.Add("dayGemRemain", info.m_end); info = incomeInfo[11]; data.Add("dayChipStart", info.m_start); data.Add("dayChipRemain", info.m_end); info = incomeInfo[14]; data.Add("dayDbStart", info.m_start); data.Add("dayDbRemain", info.m_end); info = incomeInfo[-1]; data.Add("dayPlayerCount", info.m_start); MongodbLog.Instance.ExecuteUpdateByQuery(TableName.STAT_INCOME_EXPENSES_REMAIN, imq, data); }