public JobMgr(ILogger <JobMgr> logger, MainDBContext mainDBContext, OldDBContext oldDBContext) { _logger = logger; _mainDBContext = mainDBContext; _oldDBContext = oldDBContext; }
public List <double> GetMonitorResultDetail(MonitorDetailQueryObj mdQueryObj) { try { double todayResult, currentMonthResult, lastMonthResult; #region Today using (var ctx = new BillDBContext()) { var predicate = PredicateBuilder.True <Bill>(); if (mdQueryObj.QueryType.ToLower().Contains("bjl"))//百家乐 { predicate = predicate.And(p => (p.BetType.Equals("l_game_MPBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_XFBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_ZRBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_BJL", StringComparison.OrdinalIgnoreCase))); } else if (mdQueryObj.QueryType.ToLower().Contains("tb")) { predicate = predicate.And(p => p.BetType.Equals("l_game_TB", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_XFTB", StringComparison.OrdinalIgnoreCase)); } else { predicate = predicate.And(p => p.BetType.Equals(mdQueryObj.QueryType, StringComparison.OrdinalIgnoreCase)); } predicate = predicate.And(p => p.Status == 0); predicate = predicate.And(p => p.Member.Equals(mdQueryObj.QueryMember, StringComparison.OrdinalIgnoreCase)); if (DateTime.Now.Hour < 12) { predicate = predicate.And(p => p.TransferDate == DateTime.Today); } else { predicate = predicate.And(p => p.TransferDate == DateTime.Today.AddDays(1)); //predicate = predicate.And(p => p.TransferDate == new DateTime(2017, 9, 28)); } Func <Bill, bool> query = predicate.Compile(); todayResult = Convert.ToDouble(ctx.Bills.Where(query).Sum(b => b.MemberResult)); } #endregion #region Current Month double temp1 = 0, temp2 = 0; DateTime tempNow = DateTime.Now; if (tempNow.Hour <= 12) { DateTime transferDate; using (var ctx = new BaseDBContext()) { var date = ctx.Transfers.Max(t => t.Date); transferDate = Convert.ToDateTime(date); } if (tempNow > transferDate) { using (var ctx = new BillDBContext()) { var query = ctx.Database.SqlQuery <double?>("select sum(OB.f_mresult) as mresult from BILLBASE26.ts111_bill.dbo.t_bill AS OB with(nolock) where OB.f_del=0 and OB.f_member = 'DX61' and (OB.f_type = 'l_game_MPBJL' or OB.f_type = 'l_game_XFBJL' or OB.f_type = 'l_game_ZRBJL' or OB.f_type = 'l_game_BJL') and OB.f_date between '2017/10/13 0:00:00' and '2017/10/13 0:00:00' "); temp1 = Convert.ToDouble(query.FirstOrDefault()); } } } using (var ctx = new OldDBContext()) { var predicate = PredicateBuilder.True <OldBill>(); if (mdQueryObj.QueryType.ToLower().Contains("bjl"))//百家乐 { predicate = predicate.And(p => (p.BetType.Equals("l_game_MPBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_XFBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_ZRBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_BJL", StringComparison.OrdinalIgnoreCase))); } else if (mdQueryObj.QueryType.ToLower().Contains("tb")) { predicate = predicate.And(p => p.BetType.Equals("l_game_TB", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_XFTB", StringComparison.OrdinalIgnoreCase)); } else { predicate = predicate.And(p => p.BetType.Equals(mdQueryObj.QueryType, StringComparison.OrdinalIgnoreCase)); } predicate = predicate.And(p => p.Status == 0); predicate = predicate.And(p => p.Member.Equals(mdQueryObj.QueryMember, StringComparison.OrdinalIgnoreCase)); DateTime Time1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); DateTime Time2 = Time1.AddMonths(1).AddDays(-1); predicate = predicate.And(p => p.TransferDate >= Time1 && p.TransferDate <= Time2); Func <OldBill, bool> query = predicate.Compile(); temp2 = Convert.ToDouble(ctx.OldBills.Where(query).Sum(b => b.MemberResult)); } currentMonthResult = temp1 + temp2; #endregion #region Last Month using (var ctx = new OldDBContext()) { var predicate = PredicateBuilder.True <OldBill>(); if (mdQueryObj.QueryType.ToLower().Contains("bjl"))//百家乐 { predicate = predicate.And(p => (p.BetType.Equals("l_game_MPBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_XFBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_ZRBJL", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_BJL", StringComparison.OrdinalIgnoreCase))); } else if (mdQueryObj.QueryType.ToLower().Contains("tb")) { predicate = predicate.And(p => p.BetType.Equals("l_game_TB", StringComparison.OrdinalIgnoreCase) || p.BetType.Equals("l_game_XFTB", StringComparison.OrdinalIgnoreCase)); } else { predicate = predicate.And(p => p.BetType.Equals(mdQueryObj.QueryType, StringComparison.OrdinalIgnoreCase)); } predicate = predicate.And(p => p.Status == 0); predicate = predicate.And(p => p.Member.Equals(mdQueryObj.QueryMember, StringComparison.OrdinalIgnoreCase)); DateTime Time1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); DateTime Time2 = Time1.AddMonths(1).AddDays(-1); predicate = predicate.And(p => p.TransferDate >= Time1 && p.TransferDate <= Time2); Func <OldBill, bool> query = predicate.Compile(); lastMonthResult = Convert.ToDouble(ctx.OldBills.Where(query).Sum(b => b.MemberResult)); } #endregion return(new List <double>() { todayResult, currentMonthResult, lastMonthResult }); } catch (Exception ex) { throw ex; } }