/// <summary>查询单个服务器的充值信息集合</summary> /// <param name="server">服务器</param> /// <param name="plist">充值集合</param> /// <param name="platform">平台名称</param> /// <returns></returns> private IEnumerable <TotalRecordPay> GetPayList(tgm_server server, IEnumerable <tgm_record_pay> plist, string platform) { var paylist = new List <TotalRecordPay>(); SN = server.name; tg_user_login_log.SetDbConnName(db_connection); var loglist = tg_user_login_log.FindAll().ToList(); if (loglist.Count == 0) { return(paylist); } var players = plist.Where(m => m.sid == server.id).ToList(); foreach (var l in loglist) { var ps = players.Where(m => m.player_id == l.user_id).ToList(); if (ps.Count > 0) { var pls = ps.OrderByDescending(m => m.createtime).ToList(); var count = ps.Count; var paytotal = ps.Select(m => m.money).Sum(); var paytime = pls[0].createtime; var record = ToEntity.ToTotalRecordPay(count, platform, server.name, paytotal, l.logout_time, pls[0].player_name, paytime); paylist.Add(record); } } return(paylist); }
/// <summary>Server 实体转换</summary> public static Server ToServer(tgm_server model) { var server = new Server { id = model.id, pid = model.pid, ip = model.ip, name = model.name, port_policy = model.port_policy, port_server = model.port_server, connect_string = model.connect_string, createtime = model.createtime, platform_name = model.Platform.name, tg_pay = model.tg_pay, tg_route = model.tg_route, game_domain = model.game_domain, game_pay = model.game_pay, server_open = Convert.ToDateTime(model.server_open).ToString("yyyy-MM-dd HH:mm:ss"), test_url = model.test_url, server_state = model.server_state, }; switch (model.server_state) { case (int)ServerOpenState.未启服: server.state_name = "未启服"; break; case (int)ServerOpenState.停服: server.state_name = "停服"; break; case (int)ServerOpenState.测试: server.state_name = "测试"; break; case (int)ServerOpenState.启服: server.state_name = "启服"; break; } return(server); }
private void SingleServerKeep(tgm_server model) { try { DisplayGlobal.log.Write("游戏服务器留存数据统计中..."); var tg_connect = DBConnect.GetName(model); tgm_record_keep.SetDbConnName(DBConnect.GetName(null)); var keep = tgm_record_keep.sp_user_keep(tg_connect, model.createtime); if (keep == null) { DisplayGlobal.log.Write("留存统计作业失败"); return; } var entity = tgm_record_keep.GetFindEntityBySid(model.id); if (entity == null) { entity = new tgm_record_keep { sid = model.id, pid = model.pid, server_name = model.name, }; } keep.id = entity.id; keep.sid = entity.sid; keep.pid = entity.pid; keep.server_name = entity.server_name; keep.Save(); } catch (Exception) { DisplayGlobal.log.Write("单服作业失败"); } }
/// <summary>单服作业</summary> /// <param name="model"></param> private static void GetSingleServer(tgm_server model) { try { report_day.SetDbConnName(DBConnect.GetName(model)); var tgg = report_day.GetFindByTime(); if (tgg == null) { tgg = new report_day(); } tgm_record_pay.SetDbConnName(DBConnect.GetName(null)); var pay = tgm_record_hours.Proc_sp_pay(model.id); if (pay == null) { pay = new tgm_record_hours(); } tgm_record_hours.SetDbConnName(DBConnect.GetName(null)); var entity = tgm_record_hours.GetFindBySidTime(model.id); if (entity == null) { entity = new tgm_record_hours(); } entity.pid = model.pid; entity.sid = model.id; entity.server_name = model.name; entity.offline = tgg.offline; entity.online = tgg.online; entity.history_online = tgg.history_online; entity.register = tgg.register; entity.register_total = tgg.register_total; entity.taday_login = tgg.taday_login; entity.taday_online = tgg.taday_online; entity.pay_count = pay.pay_count; entity.pay_number = pay.pay_number; entity.pay_taday = pay.pay_taday; entity.pay_total = pay.pay_total; entity.pay_month = pay.pay_month; entity.createtime = DateTime.Now.Ticks; entity.Save(); tgm_record_day.SetDbConnName(DBConnect.GetName(null)); var r_day = tgm_record_day.GetFindBySidTime(entity.sid); //是否没有数据 if (r_day == null) { r_day = new tgm_record_day(); } r_day.pid = entity.pid; r_day.sid = entity.sid; r_day.server_name = entity.server_name; r_day.offline = entity.offline; r_day.online = entity.online; r_day.history_online = entity.history_online; r_day.register = entity.register; r_day.register_total = entity.register_total; r_day.taday_login = entity.taday_login; r_day.taday_online = entity.taday_online; r_day.pay_count = entity.pay_count; r_day.pay_number = entity.pay_number; r_day.pay_taday = entity.pay_taday; r_day.pay_total = entity.pay_total; r_day.pay_month = entity.pay_month; r_day.createtime = DateTime.Now.Ticks; r_day.Save(); tgm_record_server.SetDbConnName(DBConnect.GetName(null)); var server = tgm_record_server.GetFindBySid(model.id); if (server == null) { server = new tgm_record_server(); } server.pid = entity.pid; server.sid = entity.sid; server.server_name = entity.server_name; server.offline = entity.offline; server.online = entity.online; server.history_online = entity.history_online; server.register = entity.register; server.register_total = entity.register_total; server.taday_login = entity.taday_login; server.taday_online = entity.taday_online; server.pay_count = entity.pay_count; server.pay_number = entity.pay_number; server.pay_taday = entity.pay_taday; server.pay_total = entity.pay_total; server.pay_month = entity.pay_month; server.createtime = model.createtime; server.Save(); } catch (Exception) { XTrace.WriteLine("单服作业失败"); } }
/// <summary>统计每日身份,等级信息</summary> private void SingleServerIdentityAndLevel(tgm_server model) { try { DisplayGlobal.log.Write("游戏服务器身份信息统计数据中..."); report_identity_day.SetDbConnName(DBConnect.GetName(model)); var identity = report_identity_day.GetFindByTime(); if (identity == null) { identity = new report_identity_day(); } else { identity.identity1_count = 0; identity.identity2_count = 0; identity.identity3_count = 0; identity.identity4_count = 0; identity.identity5_count = 0; identity.identity6_count = 0; identity.identity7_count = 0; } report_level_day.SetDbConnName(DBConnect.GetName(model)); var levelRecord = report_level_day.GetFindByTime(); if (levelRecord == null) { levelRecord = new report_level_day(); } else { levelRecord.stage1_count = 0; levelRecord.stage2_count = 0; levelRecord.stage3_count = 0; levelRecord.stage4_count = 0; levelRecord.stage5_count = 0; levelRecord.stage6_count = 0; levelRecord.stage7_count = 0; levelRecord.stage8_count = 0; } tg_role.SetDbConnName(DBConnect.GetName(model)); var list = tg_role.GetAllMainRoles().ToList(); if (!list.Any()) { return; } var count = list.Count; foreach (var item in list) { var stage = FixedResources.BASE_IDENTITY.FirstOrDefault(m => m.id == item.role_identity); if (stage == null) { continue; } switch (stage.value) { case 1: identity.identity1_count++; break; case 2: identity.identity2_count++; break; case 3: identity.identity3_count++; break; case 4: identity.identity4_count++; break; case 5: identity.identity5_count++; break; case 6: identity.identity6_count++; break; case 7: identity.identity7_count++; break; } var level = item.role_level; if (level >= 1 && level <= 20) { levelRecord.stage1_count++; } if (level >= 21 && level <= 30) { levelRecord.stage2_count++; } if (level >= 31 && level <= 35) { levelRecord.stage3_count++; } if (level >= 36 && level <= 40) { levelRecord.stage4_count++; } if (level >= 41 && level <= 45) { levelRecord.stage5_count++; } if (level >= 46 && level <= 50) { levelRecord.stage6_count++; } if (level >= 51 && level <= 55) { levelRecord.stage7_count++; } if (level >= 56) { levelRecord.stage8_count++; } } identity.createtime = DateTime.Now.Ticks; identity.Save(); levelRecord.total_count = count; levelRecord.createtime = DateTime.Now.Ticks; levelRecord.Save(); } catch (Exception ex) { DisplayGlobal.log.Write("单服作业失败"); } }
private void SingleServer(tgm_server model) { try { DisplayGlobal.log.Write("游戏服务器数据统计中..."); report_day.SetDbConnName(DBConnect.GetName(model)); var tgg = report_day.GetFindByTime(); if (tgg == null) { tgg = new report_day(); } tgm_record_pay.SetDbConnName(DBConnect.GetName(null)); var pay = tgm_record_hours.Proc_sp_pay(model.id); if (pay == null) { pay = new tgm_record_hours(); } tg_log_operate.SetDbConnName(DBConnect.GetName(model)); var cost_gold = tg_log_operate.GetTodayCost((int)GoodsType.TYPE_GOLD, (int)LogType.Use); if (cost_gold == null) { cost_gold = 0; } tgm_record_hours.SetDbConnName(DBConnect.GetName(null)); var entity = tgm_record_hours.GetFindBySidTime(model.id); if (entity == null) { entity = new tgm_record_hours(); } entity.pid = model.pid; entity.sid = model.id; entity.server_name = model.name; entity.offline = tgg.offline; entity.online = tgg.online; entity.history_online = tgg.history_online; entity.register = tgg.register; entity.register_total = tgg.register_total; entity.taday_login = tgg.taday_login; entity.taday_online = tgg.taday_online; entity.pay_count = pay.pay_count; entity.pay_number = pay.pay_number; entity.pay_taday = pay.pay_taday; entity.pay_total = pay.pay_total; entity.pay_month = pay.pay_month; entity.createtime = DateTime.Now.Ticks; entity.taday_cost = cost_gold; entity.Save(); tgm_record_day.SetDbConnName(DBConnect.GetName(null)); var r_day = tgm_record_day.GetFindBySidTime(entity.sid); //是否没有数据 if (r_day == null) { r_day = new tgm_record_day(); } r_day.pid = entity.pid; r_day.sid = entity.sid; r_day.server_name = entity.server_name; r_day.offline = entity.offline; r_day.online = entity.online; r_day.history_online = entity.history_online; r_day.register = entity.register; r_day.register_total = entity.register_total; r_day.taday_login = entity.taday_login; r_day.taday_online = entity.taday_online; r_day.pay_count = entity.pay_count; r_day.pay_number = entity.pay_number; r_day.pay_taday = entity.pay_taday; r_day.pay_total = entity.pay_total; r_day.pay_month = entity.pay_month; r_day.createtime = DateTime.Now.Ticks; r_day.taday_cost = cost_gold; r_day.Save(); tgm_record_server.SetDbConnName(DBConnect.GetName(null)); var server = tgm_record_server.GetFindBySid(model.id); if (server == null) { server = new tgm_record_server(); } server.pid = entity.pid; server.sid = entity.sid; server.server_name = entity.server_name; server.offline = entity.offline; server.online = entity.online; server.history_online = entity.history_online; server.register = entity.register; server.register_total = entity.register_total; server.taday_login = entity.taday_login; server.taday_online = entity.taday_online; server.pay_count = entity.pay_count; server.pay_number = entity.pay_number; server.pay_taday = entity.pay_taday; server.pay_total = entity.pay_total; server.pay_month = entity.pay_month; server.createtime = model.createtime; server.taday_cost = cost_gold; server.Save(); } catch (Exception) { DisplayGlobal.log.Write("单服作业失败"); } }