// 开始统计 public override OpRes doStat(object param, GMUser user) { m_result.reset(); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.PLAYER_INFO, user.getDbServerID(), DbName.DB_PLAYER, null, MapReduceTable.getMap("vipLevel"), MapReduceTable.getReduce("vipLevel")); if (map_result != null) { IEnumerable <BsonDocument> bson = map_result.GetResults(); foreach (BsonDocument d in bson) { try { BsonValue resValue = d["value"]; int count = resValue["count"].ToInt32(); int vip = Convert.ToInt32(d["_id"]); m_result.addVipLevel(vip, count); } catch (System.Exception ex) { } } } return(OpRes.opres_success); }
void statPaytype(IMongoQuery imq, ChannelInfo cinfo) { MapReduceResult mapResult = MongodbPayment.Instance.executeMapReduce(cinfo.m_paymentTable, imq, MapReduceTable.getMap("rechargePayType"), MapReduceTable.getReduce("rechargePayType")); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { int payType = Convert.ToInt32(d["_id"]); BsonValue resValue = d["value"]; int total = resValue["total"].ToInt32(); int rechargePerson = resValue["rechargePerson"].ToInt32(); int rechargeCount = resValue["rechargeCount"].ToInt32(); Dictionary <string, object> upData = new Dictionary <string, object>(); upData.Add("genTime", cinfo.m_statDay.Date.AddDays(-1)); upData.Add("channel", cinfo.m_channelNum); upData.Add(payType.ToString() + "_rmb", total); upData.Add(payType.ToString() + "_rechargePerson", rechargePerson); upData.Add(payType.ToString() + "_rechargeCount", rechargeCount); IMongoQuery upCond = Query.And(Query.EQ("genTime", cinfo.m_statDay.Date.AddDays(-1)), Query.EQ("channel", cinfo.m_channelNum)); string str = MongodbAccount.Instance.ExecuteStoreByQuery(TableName.CHANNEL_TD_PAY, upCond, upData); } } }
public override void doStat(object param, StatResult result) { ParamStat p = (ParamStat)param; ChannelInfo cinfo = p.m_channel; DateTime mint = cinfo.m_statDay.Date.AddDays(-1), maxt = cinfo.m_statDay.Date; IMongoQuery imq1 = Query.LT("time", BsonValue.Create(maxt)); IMongoQuery imq2 = Query.GTE("time", BsonValue.Create(mint)); IMongoQuery imq3 = Query.EQ("channel", BsonValue.Create(cinfo.m_channelNum)); IMongoQuery imq = Query.And(imq1, imq2, imq3); MapReduceResult mapResult = MongodbPayment.Instance.executeMapReduce(cinfo.m_paymentTable, imq, MapReduceTable.getMap("recharge"), MapReduceTable.getReduce("recharge")); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; result.m_totalIncome += resValue["total"].ToInt32(); result.m_rechargePersonNum++; result.m_rechargeCount += resValue["rechargeCount"].ToInt32(); } } statPaytype(imq, cinfo); }
List <int> getPlayerList() { List <int> playerList = new List <int>(); IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(m_statDay)); IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(m_statDay.AddMinutes(-STAT_DELTA))); IMongoQuery imq = Query.And(imq1, imq2); MapReduceResult mapResult = DBMgr.getInstance().executeMapReduce(TableName.LOG_PLAYER_INFO, 0, DbName.DB_PUMP, imq, MapReduceTable.getMap("winLosePlayer"), MapReduceTable.getReduce("winLosePlayer")); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { try { int playerId = Convert.ToInt32(d["_id"]); playerList.Add(playerId); } catch (System.Exception ex) { } } } return(playerList); }
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); }
static void Main(string[] args) { //establish job configuration var myConfig = new HadoopJobConfiguration { InputPath = "/demo/simple/in", OutputFolder = "/demo/simple/out" }; //connect to cluster var myUri = new Uri("http://localhost"); const string userName = "******"; string passWord = null; IHadoop myCluster = Hadoop.Connect(myUri, userName, passWord); //execute mapreduce job MapReduceResult jobResult = myCluster.MapReduceJob.Execute <MySimpleMapper, MySimpleReducer>(myConfig); //write job result to console int exitCode = jobResult.Info.ExitCode; string exitStatus = exitCode == 0 ? "Success" : "Failure"; exitStatus = exitCode + " (" + exitStatus + ")"; Console.WriteLine(); Console.Write("Exit Code = " + exitStatus); Console.Read(); }
protected override MapReduceResult getMapReduceResult(IMongoQuery imq, GMUser user) { MapReduceResult mapResult = DBMgr.getInstance().executeMapReduce(TableName.PUMP_ACTIVE_PERSON, user.getDbServerID(), DbName.DB_PUMP, imq, MapReduceTable.getMap("activePerson"), MapReduceTable.getReduce("activePerson")); return(mapResult); }
public override void update(double delta) { if (DateTime.Now.Date < m_statDay) { return; } beginStat("StatNewPlayerOutlayDistribution开始统计"); DateTime startTime = m_statDay.Date.AddDays(-1); IMongoQuery imq1 = Query.LT("genTime", m_statDay); IMongoQuery imq2 = Query.GTE("genTime", startTime); // pumpPlayerMoney表,需新增playerCreateTime字段 IMongoQuery imq3 = Query.LT("playerCreateTime", m_statDay); IMongoQuery imq4 = Query.GTE("playerCreateTime", startTime); IMongoQuery imq = Query.And(imq1, imq2, imq3, imq4, Query.EQ("reason", (int)PropertyReasonType.type_reason_single_round_balance)); MapReduceResult mapResult = MongodbLog.Instance.executeMapReduce(TableName.PUMP_PLAYER_MONEY, imq, MapReduceTable.getMap("newPlayerOutlay"), MapReduceTable.getReduce("newPlayerOutlay"), TableName.STAT_NEW_PLAYER_OUTLAY_DISTRIBUTION + "_map"); if (mapResult != null) { MapReduceResult mapResult1 = MongodbLog.Instance.executeMapReduce(TableName.STAT_NEW_PLAYER_OUTLAY_DISTRIBUTION + "_map", null, MapReduceTable.getMap("newPlayerOutlayDistribution"), MapReduceTable.getReduce("newPlayerOutlayDistribution")); if (mapResult1 != null) { IEnumerable <BsonDocument> bson = mapResult1.GetResults(); foreach (BsonDocument d in bson) { BsonDocument resValue = (BsonDocument)d["value"]; Dictionary <string, object> upData = new Dictionary <string, object>(); upData.Add("genTime", startTime); foreach (var key in resValue.Names) { int num = resValue[key].ToInt32(); upData.Add(key, num); } MongodbLog.Instance.ExecuteInsert(TableName.STAT_NEW_PLAYER_OUTLAY_DISTRIBUTION, upData); } } } addStatDay(); endStat("StatNewPlayerOutlayDistribution结束统计"); }
// 开始统计,返回0成功 public override int doStat(object param) { m_result.reset(); int retCode = 0; DBMgr.getInstance().checkDb(m_serverId); ParamStatWinLose p = (ParamStatWinLose)param; List <IMongoQuery> queryList = new List <IMongoQuery>(); IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(p.m_end)); IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(p.m_start)); queryList.Add(Query.And(imq1, imq2)); queryList.Add(Query.EQ("playerId", BsonValue.Create(p.m_playerId))); IMongoQuery imq = Query.And(queryList); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.LOG_PLAYER_INFO, m_serverId, DbName.DB_PUMP, imq, MapReduceTable.getMap(m_algKey), MapReduceTable.getReduce(m_algKey)); if (map_result != null) { IEnumerable <BsonDocument> bson = map_result.GetResults(); foreach (BsonDocument d in bson) { try { m_result.m_playerId = Convert.ToInt32(d["_id"]); BsonValue resValue = d["value"]; m_result.m_playerOutlay = Convert.ToInt64(resValue["playerOutlay"]); m_result.m_playerIncome = Convert.ToInt64(resValue["playerIncome"]); m_result.m_washCount = Convert.ToInt64(resValue["washCount"]); } catch (System.Exception ex) { retCode = FunRet.RET_HAS_EXCEPTION; LogMgr.log.Error("StatWinLoseA:" + ex.ToString()); } } } else { retCode = FunRet.RET_HAS_EXCEPTION; } return(retCode); }
/// <summary> /// mapReduce得到结果 /// </summary> /// <param name="collectionName">表名</param> /// <param name="query">查询条件</param> /// <param name="finalizeJs">输出结果时转换的js</param> /// <param name="mapJs">map js</param> /// <param name="reduceJs">reduce js</param> /// <param name="limit">前多少条数据</param> /// <param name="sortBy">排序</param> /// <returns>文档数据</returns> public IEnumerable <BsonDocument> MapReduceToEnumerable(string collectionName, IMongoQuery query, string finalizeJs, string mapJs, string reduceJs, int limit, IMongoSortBy sortBy) { MapReduceResult result = MapReduceToResult(collectionName, query, finalizeJs, mapJs, reduceJs, limit, sortBy); if (result.Ok) { return(result.InlineResults); } else { return(null); } }
/// <summary> /// mapReduce得到结果 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="collectionName">表名</param> /// <param name="query">查询条件</param> /// <param name="finalizeJs">输出结果时转换的js</param> /// <param name="mapJs">map js</param> /// <param name="reduceJs">reduce js</param> /// <param name="limit">前多少条数据</param> /// <param name="sortBy">排序</param> /// <returns>自定义类型数据</returns> public IEnumerable <T> MapReduceToList <T>(string collectionName, IMongoQuery query, string finalizeJs, string mapJs, string reduceJs, int limit, IMongoSortBy sortBy) { MapReduceResult result = MapReduceToResult(collectionName, query, finalizeJs, mapJs, reduceJs, limit, sortBy); if (result.Ok) { return(result.GetResultsAs <T>()); } else { return(null); } }
/// <summary> /// 运行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdRun_Click(object sender, EventArgs e) { BsonJavaScript map = new BsonJavaScript(ctlMapFunction.Context); BsonJavaScript reduce = new BsonJavaScript(ctlReduceFunction.Context); //TODO:这里可能会超时,失去响应 //需要设置SocketTimeOut MapReduceResult mMapReduceResult = _mongocol.MapReduce(map, reduce); MongoDBHelper.FillDataToTreeView("MapReduce Result", trvResult, mMapReduceResult.Response); trvResult.DatatreeView.BeginUpdate(); trvResult.DatatreeView.ExpandAll(); trvResult.DatatreeView.EndUpdate(); }
// 开始统计 public override OpRes doStat(object param, GMUser user) { ParamQueryRecharge p = (ParamQueryRecharge)param; QueryMgr mgr = user.getSys <QueryMgr>(SysType.sysTypeQuery); m_cond.startQuery(); OpRes res = mgr.makeQuery(param, QueryType.queryTypeRecharge, user, m_cond); if (res != OpRes.opres_success) { return(res); } IMongoQuery imq = m_cond.getImq(); QueryDocument qd = (QueryDocument)imq; if (!qd.Contains("PayTime")) { return(OpRes.op_res_time_format_error); } m_result.Clear(); QueryRecharge rq = mgr.getQuery <QueryRecharge>(QueryType.queryTypeRecharge); int serverId = DBMgr.getInstance().getSpecialServerId(DbName.DB_PAYMENT); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(rq.getPlatInfo().m_tableName, serverId, DbName.DB_PAYMENT, imq, MapReduceTable.getMap("sameOrderId"), MapReduceTable.getReduce("sameOrderId")); int count = 0; if (map_result != null) { IEnumerable <BsonDocument> bson = map_result.GetResults(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; count = resValue["total"].ToInt32(); if (count > 1) { ResultSameOrderIdItem tmp = new ResultSameOrderIdItem(); m_result.Add(tmp); tmp.m_count = count; tmp.m_orderId = Convert.ToString(d["_id"]); } } } return(OpRes.opres_success); }
/// <summary> /// 运行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdRun_Click(object sender, EventArgs e) { BsonJavaScript map = new BsonJavaScript(txtMapJs.Text); BsonJavaScript reduce = new BsonJavaScript(txtReduceJs.Text); //TODO:这里可能会超时,失去响应 //需要设置SocketTimeOut MapReduceResult rtn = _mongocol.MapReduce(map, reduce); List <BsonDocument> result = new List <BsonDocument>(); result.Add(rtn.Response); MongoDBHelper.FillDataToTreeView("MapReduce Result", trvResult, result, 0); trvResult.DatatreeView.ExpandAll(); }
public static void DoCustomMapReduce() { //The credentials entered below are dummy values. Please input valid credentials and submit jobs Environment.SetEnvironmentVariable("HADOOP_HOME", @"C:\Syncfusion\BigData\3.2.0.20\BigDataSDK\\SDK\Hadoop"); Environment.SetEnvironmentVariable("JAVA_HOME", @"C:\Syncfusion\BigData\3.2.0.20\BigDataSDK\\Java\jdk1.7.0_51"); //Pass the cluster name string clusterName = "https://{clustername}.azurehdinsight.net:"; Uri azureCluster = new Uri(clusterName); string clusterUserName = "******"; // default - admin string clusterPassword = "******"; //// This is the name of the account under which Hadoop will execute jobs. //// Normally this is just "Hadoop". string hadoopUserName = "******"; //// Azure Storage Information. string azureStorageAccount = "{storagename}.blob.core.windows.net"; string azureStorageKey = "{storagekey}"; string azureStorageContainer = "{storagecontainer}"; //Console.WriteLine("Starting MapReduce job. Remote login to your Name Node and check progress from JobTracker portal with the returned JobID..."); IHadoop hadoop = Hadoop.Connect(azureCluster, clusterUserName, hadoopUserName, clusterPassword, azureStorageAccount, azureStorageKey, azureStorageContainer, true); // Create or overwrite the "myblob" blob with contents from a local file. var fileStream = File.ReadAllText(@"..//..//data/NASA_Access_Log"); hadoop.StorageSystem.WriteAllText(FindReplace._input1HDFS, fileStream); Console.WriteLine("Input file uploaded.......\n\n"); Console.WriteLine("Find and Replace Operation.\n\nImplementation of Find and Replace operations in native MapReduce through C#"); Console.WriteLine("Execution begins......\n"); //connect to HDInsightcluster MapReduceResult result = hadoop.MapReduceJob.ExecuteJob <FindReplace>(); Console.WriteLine(); Console.WriteLine("Job Run Information"); Console.WriteLine(); Console.WriteLine("Job Id: {0}", result.Id); Console.WriteLine("Exit Code: {0}", result.Info.ExitCode); Console.WriteLine("Standard Out"); Console.WriteLine(result.Info.StandardOut); Console.WriteLine(); Console.WriteLine("Standard Err"); Console.WriteLine(result.Info.StandardError); Console.ReadKey(); }
OpRes statAve(IMongoQuery imq, GMUser user) { m_result.Clear(); MapReduceResult mapResult = DBMgr.getInstance().executeMapReduce(TableName.STAT_PLAYER_GAME_BET_RESULT, user.getDbServerID(), DbName.DB_PUMP, imq, MapReduceTable.getMap("userGameBet"), MapReduceTable.getReduce("userGameBet")); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { ResultItemPlayerGameBet tmp = new ResultItemPlayerGameBet(); m_result.Add(tmp); BsonValue resValue = d["value"]; tmp.m_time = Convert.ToDateTime(d["_id"]).ToLocalTime(); tmp.m_round = resValue["playerCount"].ToInt32(); long max = resValue["maxCarry"].ToInt64(); long min = resValue["minCarry"].ToInt64(); double sum = resValue["sumCarry"].ToDouble(); tmp.addData(ResultItemPlayerGameBet.CARRY, sum, max, min); max = resValue["maxOutlay"].ToInt64(); min = resValue["minOutlay"].ToInt64(); sum = resValue["sumOutlay"].ToDouble(); tmp.addData(ResultItemPlayerGameBet.OUTLAY, sum, max, min); max = resValue["maxWin"].ToInt64(); min = resValue["minWin"].ToInt64(); sum = resValue["sumWin"].ToDouble(); tmp.addData(ResultItemPlayerGameBet.WIN, sum, max, min); max = resValue["maxLose"].ToInt64(); min = resValue["minLose"].ToInt64(); sum = resValue["sumLose"].ToDouble(); tmp.addData(ResultItemPlayerGameBet.LOSE, sum, max, min); tmp.m_rw = resValue["rw"].ToInt64(); } } return(OpRes.opres_success); }
private MapReduceResult MapReduce(string collectionName, string criteria, string mapFunction, string reduceFunction, string mapFinalize, string sort, int limit) { MongoCollection <BsonDocument> collection = Database.GetCollection <BsonDocument>(collectionName); MapReduceArgs args = new MapReduceArgs(); MapReduceResult result = null; if (!string.IsNullOrEmpty(mapFunction)) { args.MapFunction = mapFunction; } if (!string.IsNullOrEmpty(reduceFunction)) { args.ReduceFunction = reduceFunction; } if (!string.IsNullOrEmpty(mapFinalize)) { args.FinalizeFunction = mapFinalize; } if (!string.IsNullOrEmpty(criteria)) { args.Query = Query.Create(new QueryDocument(ParseQuery(criteria))); } if (!string.IsNullOrEmpty(sort)) { ParseQuery(sort).ToList().ForEach(itemtoSort => { if (itemtoSort.Value > 0) { args.SortBy = SortBy.Ascending(itemtoSort.Name); } else { args.SortBy = SortBy.Descending(itemtoSort.Name); } }); } args.Limit = limit; if (!string.IsNullOrEmpty(mapFunction) && !string.IsNullOrEmpty(reduceFunction)) { result = collection.MapReduce(args); } return(result); }
// 开始统计 public override OpRes doStat(object param, GMUser user) { IMongoQuery imqTime = null; string time = (string)param; if (!string.IsNullOrEmpty(time)) { DateTime mint = DateTime.Now, maxt = DateTime.Now; bool res = Tool.splitTimeStr(time, ref mint, ref maxt); if (!res) { return(OpRes.op_res_time_format_error); } m_result.reset(); IMongoQuery imq1 = Query.LT("create_time", BsonValue.Create(maxt)); IMongoQuery imq2 = Query.GTE("create_time", BsonValue.Create(mint)); imqTime = Query.And(imq1, imq2); } m_result.reset(); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.PLAYER_INFO, user.getDbServerID(), DbName.DB_PLAYER, imqTime, MapReduceTable.getMap("vipLevel"), MapReduceTable.getReduce("vipLevel")); if (map_result != null) { IEnumerable <BsonDocument> bson = map_result.GetResults(); foreach (BsonDocument d in bson) { try { BsonValue resValue = d["value"]; int count = resValue["count"].ToInt32(); int vip = Convert.ToInt32(d["_id"]); m_result.addVipLevel(vip, count); } catch (System.Exception ex) { } } } return(OpRes.opres_success); }
static void Main(string[] args) { HadoopJobConfiguration myConfig = new HadoopJobConfiguration(); myConfig.InputPath = "/world/in/worldbank"; myConfig.OutputFolder = "/world/out"; Uri myUri = new Uri("http://*****:*****@"c:\hadoop"); Environment.SetEnvironmentVariable("Java_HOME", @"c:\hadoop\jvm"); IHadoop myCluster = Microsoft.Hadoop.MapReduce.Hadoop.Connect(myUri, userName, passWord); MapReduceResult jobResult = myCluster.MapReduceJob.Execute <ExtractValuesForIndicatorsMapper, IndicatorsReducer>(myConfig); HadoopJobConfiguration myConfig2 = new HadoopJobConfiguration(); myConfig2.InputPath = "/world/out"; myConfig2.OutputFolder = "/world/out2"; //MapReduceResult jobResult2 = myCluster.MapReduceJob.Execute<GroupValuesMapper, GroupValuesReducer>(myConfig2); int exitCode = jobResult.Info.ExitCode; string exitStatus = "Failure"; if (exitCode == 0) { exitStatus = "Success"; } exitStatus = exitCode + " (" + exitStatus + ")"; Console.WriteLine(); Console.Write("Exit Code = " + exitStatus); }
/// <summary> /// 运行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdRun_Click(object sender, EventArgs e) { var map = new BsonJavaScript(ctlMapFunction.Context); var reduce = new BsonJavaScript(ctlReduceFunction.Context); //TODO:这里可能会超时,失去响应 //需要设置SocketTimeOut MapReduceArgs args = new MapReduceArgs(); args.MapFunction = map; args.ReduceFunction = reduce; MapReduceResult mMapReduceResult = SystemManager.GetCurrentCollection().MapReduce(args); MongoDbHelper.FillDataToTreeView("MapReduce Result", trvResult, mMapReduceResult.Response); trvResult.DatatreeView.BeginUpdate(); trvResult.DatatreeView.ExpandAll(); trvResult.DatatreeView.EndUpdate(); }
//Helper for using map reduce in mongo public T MapReduce <T>(string map, string reduce) { T result = default(T); MapReduce mr = Db.CreateMapReduce(); MapReduceResponse response = mr.Execute(new MapReduceOptions(typeof(T).Name) { Map = map, Reduce = reduce }); IMongoCollection <MapReduceResult <T> > coll = response.GetCollection <MapReduceResult <T> >(); MapReduceResult <T> r = coll.Find().FirstOrDefault(); result = r.Value; return(result); }
/// <summary> /// Retrieves the data. /// </summary> internal void RetrieveData() { if (Command.Command.ContainsKey("map") == false || Command.Command.ContainsKey("reduce") == false) { throw new InvalidOperationException("Cannot execute without a map and reduce function"); } IsModifiable = false; try { Result = new MapReduceResult(_database.SendCommand(_rootType, Command.Command)); } catch (MongoCommandException exception) { Result = new MapReduceResult(exception.Error); throw new MongoMapReduceException(exception); } }
int statPlayerRecharge(ChannelInfo cinfo, IMongoQuery cond, string acc) { IMongoQuery imq = Query.And(cond, Query.EQ(StatLTV.ACC_KEY_1, acc)); MapReduceResult mapResult = MongodbPayment.Instance.executeMapReduce(cinfo.m_paymentTable, imq, MapReduceTable.getMap("recharge"), MapReduceTable.getReduce("recharge")); int total = 0; if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; total += resValue["total"].ToInt32(); } } return(total); }
// 开始统计 public override OpRes doStat(object param, GMUser user) { m_result.Clear(); m_cond.startQuery(); OpRes res = makeQuery(param, user, m_cond); if (res != OpRes.opres_success) { return(res); } ParamQuery p = (ParamQuery)param; if (isSame(p, user)) { return(query(p, null, user)); } else { m_lastSearchTime = p.m_time; m_dbId = user.getDbServerID(); } IMongoQuery imqTime = m_cond.getImq(); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.STAT_PLAYER_DRAGON, user.getDbServerID(), DbName.DB_PUMP, imqTime, MapReduceTable.getMap("playerDragonBall"), MapReduceTable.getReduce("playerDragonBall"), MapTable); if (map_result != null) { return(query(p, null, user)); } return(OpRes.opres_success); }
// 开始统计 public override OpRes doStat(object param, GMUser user) { string time = (string)param; DateTime mint = DateTime.Now, maxt = DateTime.Now; bool res = Tool.splitTimeStr(time, ref mint, ref maxt); if (!res) { return(OpRes.op_res_time_format_error); } IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(maxt)); IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(mint)); IMongoQuery imq = Query.And(imq1, imq2); m_result.Clear(); MapReduceResult mapResult = getMapReduceResult(imq, user); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; ResultActive tmp = new ResultActive(); m_result.Add(tmp); tmp.m_time = Convert.ToDateTime(d["_id"]).ToLocalTime().ToString(); tmp.m_game1 = resValue["game1"].ToInt32(); tmp.m_game2 = resValue["game2"].ToInt32(); tmp.m_game3 = resValue["game3"].ToInt32(); tmp.m_game4 = resValue["game4"].ToInt32(); tmp.m_game5 = resValue["game5"].ToInt32(); tmp.m_game6 = resValue["game6"].ToInt32(); tmp.m_game7 = resValue["game7"].ToInt32(); tmp.m_game8 = resValue["game8"].ToInt32(); } } return(OpRes.opres_success); }
// 开始统计 public override OpRes doStat(object param, GMUser user) { m_result.Clear(); m_cond.startQuery(); OpRes res = makeQuery(param, user, m_cond); if (res != OpRes.opres_success) { return(res); } ParamIncomeExpenses p = (ParamIncomeExpenses)param; if (isSame(p, user)) { return(query(p, null, user)); } else { m_lastParam.assign(p, user.getDbServerID()); } IMongoQuery imqTime = m_cond.getImq(); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.STAT_INCOME_EXPENSES, user.getDbServerID(), DbName.DB_PUMP, imqTime, MapReduceTable.getMap("playerIncomeExpenses"), MapReduceTable.getReduce("playerIncomeExpenses"), MapTable); if (map_result != null) { return(query(p, null, user)); } return(OpRes.opres_success); }
// 开始统计 public override OpRes doStat(object param, GMUser user) { ParamQueryRecharge p = (ParamQueryRecharge)param; QueryMgr mgr = user.getSys <QueryMgr>(SysType.sysTypeQuery); m_cond.startQuery(); OpRes res = mgr.makeQuery(param, QueryType.queryTypeRecharge, user, m_cond); if (res != OpRes.opres_success) { return(res); } IMongoQuery imq = m_cond.getImq(); m_result.reset(); QueryRecharge rq = mgr.getQuery <QueryRecharge>(QueryType.queryTypeRecharge); int serverId = DBMgr.getInstance().getSpecialServerId(DbName.DB_PAYMENT); MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(rq.getPlatInfo().m_tableName, serverId, DbName.DB_PAYMENT, imq, MapReduceTable.getMap("recharge"), MapReduceTable.getReduce("recharge")); if (map_result != null) { IEnumerable <BsonDocument> bson = map_result.GetResults(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; m_result.m_total += resValue["total"].ToInt32(); m_result.m_rechargePersonNum++; m_result.m_rechargeCount += resValue["rechargeCount"].ToInt32(); } } return(OpRes.opres_success); }
public override void doStat(object param, StatResult result) { ParamStat p = (ParamStat)param; ChannelInfo cinfo = p.m_channel; DateTime mint = cinfo.m_statDay.Date.AddDays(-1), maxt = cinfo.m_statDay.Date; IMongoQuery imq1 = Query.LT("time", BsonValue.Create(maxt)); IMongoQuery imq2 = Query.GTE("time", BsonValue.Create(mint)); IMongoQuery imq3 = Query.EQ("channel", BsonValue.Create(cinfo.m_channelNum)); IMongoQuery imq = Query.And(imq1, imq2, imq3); MapReduceResult mapResult = MongodbAccount.Instance.executeMapReduce(cinfo.m_loginTable, imq, MapReduceTable.getMap("active"), MapReduceTable.getReduce("active")); if (mapResult != null) { result.m_activeCount = (int)mapResult.OutputCount; } }
void stat() { // DateTime now = DateTime.Now; //IMongoQuery imq1 = Query.GTE("logout_time", now.AddDays(-7)); //IMongoQuery imq2 = Query.EQ("is_robot", false); //IMongoQuery imq = Query.And(imq1, imq2); IMongoQuery imq = Query.EQ("is_robot", false); MapReduceResult mapResult = MongodbPlayer.Instance.executeMapReduce(TableName.PLAYER_INFO, imq, MapReduceTable.getMap("totalMoney"), MapReduceTable.getReduce("totalMoney")); if (mapResult != null) { IEnumerable <BsonDocument> bson = mapResult.GetResults(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; m_moneyTotal = resValue["total"].ToInt64(); m_safeBox = resValue["box"].ToInt64(); } } }
void stat() { DateTime startTime = m_statDay.AddDays(-1); DateTime endTime = m_statDay; IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(endTime)); IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(startTime)); IMongoQuery imq = Query.And(imq1, imq2); beginStat("StatPlayerTotalIncomeExpensesNew MapReduce开始统计"); MapReduceResult mapResult = MongodbLog.Instance.executeMapReduce(TableName.PUMP_PLAYER_MONEY, imq, MapReduceTable.getMap("incomeExpensesNew"), MapReduceTable.getReduce("incomeExpensesNew")); endStat("StatPlayerTotalIncomeExpensesNew MapReduce结束统计"); if (mapResult != null) { beginStat("StatPlayerTotalIncomeExpensesNew 开始写入数据"); IEnumerable <BsonDocument> bson = mapResult.GetResults(); StatIncomeExpensesItemBase item = new StatIncomeExpensesItemBase(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; BsonDocument bd = (BsonDocument)resValue; foreach (var gameName in bd.Names) { int gameId = Convert.ToInt32(gameName); BsonDocument gameData = (BsonDocument)bd[gameName]; foreach (var itemId in gameData.Names) { Dictionary <string, object> upData = new Dictionary <string, object>(); upData.Add("genTime", startTime); upData.Add("gameId", gameId); upData.Add("itemId", Convert.ToInt32(itemId)); BsonDocument itemData = (BsonDocument)gameData[itemId]; bool isAdd = false; foreach (var ulkey in itemData.Names) { BsonDocument uldate = (BsonDocument)itemData[ulkey]; long income = uldate["income"].ToInt64(); long outlay = uldate["outlay"].ToInt64(); if (income > 0) { upData.Add(ulkey + "z", income); isAdd = true; } if (outlay > 0) { upData.Add(ulkey + "f", outlay); isAdd = true; } } if (isAdd) { MongodbLog.Instance.ExecuteInsert(TableName.STAT_INCOME_EXPENSES_NEW, upData); } } } } endStat("StatPlayerTotalIncomeExpensesNew 结束写入数据"); } IMongoQuery imq3 = Query.EQ("is_robot", false); MapReduceResult mapResult1 = MongodbPlayer.Instance.executeMapReduce(TableName.PLAYER_INFO, imq3, MapReduceTable.getMap("incomeExpensesRemain"), MapReduceTable.getReduce("incomeExpensesRemain")); if (mapResult1 != null) { IEnumerable <BsonDocument> bson = mapResult1.GetResults(); StatIncomeExpensesItemBase item = new StatIncomeExpensesItemBase(); foreach (BsonDocument d in bson) { BsonValue resValue = d["value"]; item.m_goldRemain = resValue["goldRemain"].ToInt64(); item.m_gemRemain = resValue["gemRemain"].ToInt64(); item.m_dbRemain = resValue["dbRemain"].ToInt64(); item.m_chipRemain = resValue["chipRemain"].ToInt64(); Dictionary <int, IncomeExInfo> incomeInfo = calStartRemain(imq); addDataRemain(item, startTime, incomeInfo); } } }
public async Task<MapReduceResult> AddToLocalDB(MapReduceResult mr) { var r = await BlobCache.UserAccount.InsertObject(mr.Key.ToString(), mr); return mr; }