public void Bao(DateTime Today)
        {
            //余额理财昨天收益归0
            //=============================================================================================
            Entity.ExecuteStoreCommand("Update BaoUsers Set LastRec=0 Where LastRec>0");
            //余额理财计息程序
            //=============================================================================================
            Response.Write("余额理财任务开始执行!");

            DateTime EDate = Today.AddDays(1);//今天24点

            int BaoTime = 23;

            DateTime sTime = Today.AddHours(BaoTime - 24); //计息前节点
            DateTime eTime = Today.AddHours(BaoTime);      //计息后节点

            BaoStory BaoStory = Entity.BaoStory.FirstOrDefault(n => n.SDate == Today && n.LType == 1);

            if (BaoStory == null)
            {
                BaoConfig BaoConfig = Entity.BaoConfig.FirstOrDefault();
                //添加总日志,后期可形成曲线图
                BaoStory         = new BaoStory();
                BaoStory.SDate   = Today;
                BaoStory.GetCost = BaoConfig.GetCost;
                BaoStory.YearPer = BaoConfig.YearPer;

                BaoStory.InMoney    = 0;
                BaoStory.OutMoney   = 0;
                BaoStory.BfAllMoney = 0;
                BaoStory.BfActMoney = 0;
                BaoStory.BfInMoney  = 0;
                BaoStory.LType      = 1;
                try
                {
                    BaoStory.InMoney = Entity.BaoLog.Where(n => n.AddTime > sTime && n.AddTime <= eTime && n.LType == 1).Sum(n => n.Amount);
                }
                catch (Exception)
                {
                    Response.Write("统计转入出错");
                }
                try
                {
                    BaoStory.OutMoney = Entity.BaoLog.Where(n => n.AddTime > sTime && n.AddTime <= eTime && n.LType == 2).Sum(n => n.Amount);
                }
                catch (Exception)
                {
                    Response.Write("统计转出金额出错");
                }
                try
                {
                    BaoStory.BfAllMoney = Entity.BaoUsers.Sum(n => n.AllMoney);
                }
                catch (Exception)
                {
                    Response.Write("统计总金额出错");
                }
                try
                {
                    BaoStory.BfActMoney = Entity.BaoUsers.Sum(n => n.ActMoney);
                }
                catch (Exception)
                {
                    Response.Write("统计计息金额出错");
                }
                try
                {
                    BaoStory.BfInMoney = Entity.BaoUsers.Sum(n => n.InMoney);
                }
                catch (Exception)
                {
                    Response.Write("统计未计息金额出错");
                }
                Entity.BaoStory.AddObject(BaoStory);
                Entity.SaveChanges();
                IList <BaoUsers> BaoUsersList = Entity.BaoUsers.Where(n => n.InMoney > 0 || n.ActMoney > 0).ToList();
                foreach (var p in BaoUsersList)
                {
                    p.PayLIXI(BaoConfig, Entity);
                }
                try
                {
                    BaoStory.Interest = Entity.BaoLog.Where(n => n.AddTime >= Today && n.AddTime < EDate && n.LType == 3).Sum(n => n.Amount);//利息
                }
                catch (Exception)
                {
                    Response.Write("统计利息出错");
                }
                BaoStory.AfAllMoney = BaoStory.BfAllMoney + BaoStory.Interest;
                BaoStory.AfActMoney = BaoStory.BfActMoney + BaoStory.AfInMoney + BaoStory.Interest;
                BaoStory.AfInMoney  = 0;
                Entity.SaveChanges();
                Response.Write("余额理财!执行数量:" + BaoUsersList.Count());
            }
            Response.Write("余额理财任务执行结束!");
            //=============================================================================================
        }
Пример #2
0
        public void Execute(IJobExecutionContext context)
        {
            string JobName = "BaoTask";
            string CanRun  = ConfigurationManager.AppSettings["Run" + JobName].ToString();

            if (CanRun == "true")
            {
                if (!IsRun)
                {
                    LokFuEntity Entity = new LokFuEntity();
                    IsRun = true;
                    try
                    {
                        Log.Write(JobName + "任务开始执行!");
                        //-------------------------------------------------------
                        #region 任务主体
                        BaoConfig BaoConfig = Entity.BaoConfig.FirstOrDefault();
                        //余额理财昨天收益归0
                        //=============================================================================================
                        Entity.ExecuteStoreCommand("Update BaoUsers Set LastRec=0 Where LastRec>0");
                        //余额理财计息程序
                        //=============================================================================================
                        Log.WriteLog("余额理财任务开始执行!", JobName);
                        DateTime Today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); //今天0点
                        DateTime EDate = Today.AddDays(1);                                    //今天24点

                        int BaoTime = Int32.Parse(ConfigurationManager.AppSettings["BaoTime"].ToString());

                        DateTime sTime = Today.AddHours(BaoTime - 24); //计息前节点
                        DateTime eTime = Today.AddHours(BaoTime);      //计息后节点

                        BaoStory BaoStory = Entity.BaoStory.FirstOrDefault(n => n.SDate == Today && n.LType == 1);
                        if (BaoStory == null)
                        {
                            //添加总日志,后期可形成曲线图
                            BaoStory         = new BaoStory();
                            BaoStory.SDate   = Today;
                            BaoStory.GetCost = BaoConfig.GetCost;
                            BaoStory.YearPer = BaoConfig.YearPer;

                            BaoStory.InMoney    = 0;
                            BaoStory.OutMoney   = 0;
                            BaoStory.BfAllMoney = 0;
                            BaoStory.BfActMoney = 0;
                            BaoStory.BfInMoney  = 0;
                            BaoStory.LType      = 1;
                            try
                            {
                                BaoStory.InMoney = Entity.BaoLog.Where(n => n.AddTime > sTime && n.AddTime <= eTime && n.LType == 1).Sum(n => n.Amount);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额理财统计转入出错!", JobName);
                            }
                            try
                            {
                                BaoStory.OutMoney = Entity.BaoLog.Where(n => n.AddTime > sTime && n.AddTime <= eTime && n.LType == 2).Sum(n => n.Amount);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额理财统计转出金额出错!", JobName);
                            }
                            try
                            {
                                BaoStory.BfAllMoney = Entity.BaoUsers.Sum(n => n.AllMoney);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额理财统计总金额出错!", JobName);
                            }
                            try
                            {
                                BaoStory.BfActMoney = Entity.BaoUsers.Sum(n => n.ActMoney);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额理财统计计息金额出错!", JobName);
                            }
                            try
                            {
                                BaoStory.BfInMoney = Entity.BaoUsers.Sum(n => n.InMoney);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额理财统计未计息金额出错!", JobName);
                            }
                            Entity.BaoStory.AddObject(BaoStory);
                            Entity.SaveChanges();
                            IList <BaoUsers> BaoUsersList = Entity.BaoUsers.Where(n => n.InMoney > 0 || n.ActMoney > 0).ToList();
                            foreach (var p in BaoUsersList)
                            {
                                p.PayLIXI(BaoConfig, Entity);
                                Log.WriteLog("计算利息:" + p.UId, JobName);
                            }
                            try
                            {
                                BaoStory.Interest = Entity.BaoLog.Where(n => n.AddTime >= Today && n.AddTime < EDate && n.LType == 3).Sum(n => n.Amount);//利息
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额理财统计利息出错!", JobName);
                            }
                            BaoStory.AfAllMoney = BaoStory.BfAllMoney + BaoStory.Interest;
                            BaoStory.AfActMoney = BaoStory.BfActMoney + BaoStory.AfInMoney + BaoStory.Interest;
                            BaoStory.AfInMoney  = 0;
                            Entity.SaveChanges();
                            Log.WriteLog("余额理财计息完成[" + BaoUsersList.Count + "]!", JobName);
                        }
                        Log.WriteLog("余额理财任务执行结束!", JobName);
                        //=============================================================================================
                        //自动转入余额理财
                        Log.WriteLog("自动转入余额理财任务开始执行!", JobName);
                        IList <Users> UsersList = Entity.Users.Where(n => n.State == 1 && n.AutoBao == 1 && n.Amount > 0 && (n.StopPayState == 0 || n.StopPayState == 1)).ToList();
                        foreach (var p in UsersList)
                        {
                            p.AutoBao(Entity);
                            Log.WriteLog("自动转入:" + p.Id, JobName);
                        }
                        Log.WriteLog("自动转入余额理财任务执行结束[" + UsersList.Count + "]!", JobName);
                        //=============================================================================================
                        Log.WriteLog("余额生息任务开始执行!", JobName);
                        BaoStory = Entity.BaoStory.FirstOrDefault(n => n.SDate == Today && n.LType == 2);
                        if (BaoStory == null)
                        {
                            //添加总日志,后期可形成曲线图
                            BaoStory         = new BaoStory();
                            BaoStory.SDate   = Today;
                            BaoStory.GetCost = BaoConfig.GetCost;
                            BaoStory.YearPer = BaoConfig.YearPer;

                            BaoStory.InMoney    = 0;
                            BaoStory.OutMoney   = 0;
                            BaoStory.BfAllMoney = 0;
                            BaoStory.BfActMoney = 0;
                            BaoStory.BfInMoney  = 0;
                            BaoStory.LType      = 2;
                            try
                            {
                                BaoStory.BfAllMoney = Entity.Users.Sum(n => n.Amount);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额生息统计总金额出错!", JobName);
                            }
                            try
                            {
                                BaoStory.BfActMoney = Entity.Users.Sum(n => n.YAmount);
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额生息统计计息金额出错!", JobName);
                            }
                            Entity.BaoStory.AddObject(BaoStory);
                            Entity.SaveChanges();

                            decimal GetCost = BaoConfig.GetCost / 10000;
                            Entity.ExecuteStoreCommand("Exec SP_UsersProfit " + GetCost);

                            try
                            {
                                BaoStory.Interest = Entity.UserLog.Where(n => n.AddTime >= Today && n.AddTime < EDate && n.OType == 15).Sum(n => n.Amount);//利息
                            }
                            catch (Exception)
                            {
                                Log.WriteLog("余额生息统计利息出错!", JobName);
                            }
                            BaoStory.AfAllMoney = BaoStory.BfAllMoney + BaoStory.Interest;
                            BaoStory.AfActMoney = BaoStory.BfActMoney + BaoStory.AfInMoney + BaoStory.Interest;
                            BaoStory.AfInMoney  = 0;
                            Entity.SaveChanges();
                        }
                        Log.WriteLog("余额生息任务执行结束!", JobName);
                        //=============================================================================================
                        #endregion
                        //-------------------------------------------------------
                        Log.Write(JobName + "任务执行结束!");
                    }
                    catch (Exception Ex)
                    {
                        Log.Write(JobName + "任务执行过程出错!", Ex);
                    }
                    IsRun = false;
                }
                else
                {
                    Log.Write(JobName + "任务还在执行中!");
                }
            }
        }