public ActionResult Edit()
        {
            BaoConfig BaoConfig = Entity.BaoConfig.FirstOrNew();

            if (BaoConfig == null)
            {
                ViewBag.ErrorMsg = "数据不存在";
                return(View("Error"));
            }
            ViewBag.BaoConfig = BaoConfig;
            ViewBag.Save      = this.checkPower("Save");
            if (Request.UrlReferrer != null)
            {
                Session["Url"] = Request.Url.ToString();;
            }
            return(View());
        }
        public void Save(BaoConfig BaoConfig)
        {
            BaoConfig baseBaoConfig = Entity.BaoConfig.FirstOrNew();

            baseBaoConfig = Request.ConvertRequestToModel <BaoConfig>(baseBaoConfig, BaoConfig);
            if (!baseBaoConfig.GetCost.IsNullOrEmpty())
            {
                decimal v = baseBaoConfig.GetCost;
                decimal w = v / 10000;
                decimal n = 1 + w;
                decimal p = (decimal)Math.Pow((double)n, 365);
                decimal y = p - 1;
                decimal r = y * 100;
                baseBaoConfig.YearPer = r;
            }
            else
            {
                baseBaoConfig.YearPer = 0;
            }

            Entity.SaveChanges();
            BaseRedirect();
        }
        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("余额理财任务执行结束!");
            //=============================================================================================
        }
Esempio n. 4
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 + "任务还在执行中!");
                }
            }
        }
Esempio n. 5
0
        public void Post()
        {
            string Data = DataObj.GetData();

            if (Data.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Data);
            }
            catch (Exception Ex)
            {
                Log.Write("[BaoUsersOut]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            BaoUsers BaoUsers = new BaoUsers();

            BaoUsers = JsonToObject.ConvertJsonToModel(BaoUsers, json);
            if (BaoUsers.Token.IsNullOrEmpty() || BaoUsers.ActMoney.IsNullOrEmpty() || BaoUsers.PayPwd.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            if (BaoUsers.PayPwd.Length < 6)//6位及以上
            {
                DataObj.OutError("1000");
                return;
            }
            Users Users = Entity.Users.FirstOrDefault(n => n.Token == BaoUsers.Token);

            if (Users == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (Users.State != 1)
            {
                DataObj.OutError("2003");
                return;
            }
            if (Users.CardStae != 2)//未实名认证
            {
                DataObj.OutError("2006");
                return;
            }
            if (Users.MiBao != 1)//未设置支付密码
            {
                DataObj.OutError("2008");
                return;
            }
            decimal ActMoney = BaoUsers.ActMoney;
            string  PayPwd   = BaoUsers.PayPwd;

            BaoUsers = Entity.BaoUsers.FirstOrDefault(n => n.UId == Users.Id);
            if (BaoUsers == null)
            {
                DataObj.OutError("1000");
                return;
            }
            //提现金额大于余额
            if (ActMoney > BaoUsers.AllMoney)
            {
                DataObj.OutError("6001");
                return;
            }
            if (Users.PayLock == 1)//密码错误太多次锁定
            {
                DataObj.OutError("2050");
                return;
            }

            //这里是执行指纹解锁
            bool IfCheckOk = true;

            if (PayPwd.Substring(0, 3) == "HF_")
            {
                string PassWord = PayPwd;
                PassWord = PassWord.Replace("HF_", "");
                string Token = Users.Token;
                Token = Token + "GoodPay";
                string Md5Token = Token.GetMD5().ToUpper();
                string Pass     = Md5Token.Substring(0, 4) + Md5Token.Substring(Md5Token.Length - 4, 4);
                if (Pass != PassWord)
                {
                    IfCheckOk = false;
                }
            }
            else if (Users.PayPwd != PayPwd.GetPayMD5())
            {
                //原支付密码错误
                IfCheckOk = false;
            }
            if (!IfCheckOk)
            {
                //付密码错误
                SysSet SysSet = Entity.SysSet.FirstOrNew();
                //系统统一修改标识SAME002
                Users.PayErr++;
                if (Users.PayErr >= SysSet.PayLock)
                {
                    Users.PayLock = 1;
                }
                Entity.SaveChanges();
                Users Out = new Users();
                Out.PayErr   = SysSet.PayLock - Users.PayErr;
                Out.Cols     = "PayErr";
                DataObj.Data = Out.OutJson();
                DataObj.Code = "2010";
                DataObj.OutString();
                return;
            }

            Users.PayErr = 0;
            Entity.SaveChanges();

            //业务开始
            //===========================================================================
            //余额宝变动记录
            BaoLog BaoLog = new BaoLog();

            BaoLog.UId         = Users.Id;
            BaoLog.LType       = 2;//1转入 2转出 3收益
            BaoLog.BeforAmount = BaoUsers.ActMoney;
            BaoLog.BeforFrozen = BaoUsers.InMoney;
            BaoLog.Amount      = ActMoney;

            if (BaoUsers.InMoney == 0)
            {
                //未计息帐户没钱,全部扣除计息帐户
                BaoUsers.ActMoney = BaoUsers.ActMoney - ActMoney;
                BaoUsers.AllMoney = BaoUsers.AllMoney - ActMoney;
            }
            else
            {
                //未计息帐户有钱
                if (ActMoney < BaoUsers.InMoney)
                {
                    //转出小于未计息帐户金额,直接扣除未计息帐户中金额
                    BaoUsers.InMoney  = BaoUsers.InMoney - ActMoney;
                    BaoUsers.AllMoney = BaoUsers.AllMoney - ActMoney;
                }
                else
                {
                    //转出大于未计息帐户金额,直接扣除未计息帐户中全部金额,不足从计息帐户中扣除
                    BaoUsers.ActMoney = BaoUsers.ActMoney + BaoUsers.InMoney - ActMoney;
                    BaoUsers.InMoney  = 0;
                    BaoUsers.AllMoney = BaoUsers.AllMoney - ActMoney;
                }
            }

            BaoLog.AfterAmount = BaoUsers.ActMoney;
            BaoLog.AfterFrozen = BaoUsers.InMoney;
            BaoLog.State       = 1;
            BaoLog.AddTime     = DateTime.Now;
            Entity.BaoLog.AddObject(BaoLog);

            //帐户变动记录
            int    USERSID = Users.Id;
            string SP_Ret  = Entity.SP_UsersMoney(USERSID, "理财转出", ActMoney, 1, "");

            if (SP_Ret != "3")
            {
                Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", USERSID, "理财转出", 1, ActMoney, SP_Ret), "SP_UsersMoney");
                DataObj.OutError("8888");
                return;
            }
            Entity.SaveChanges();

            BaoConfig BaoConfig = Entity.BaoConfig.FirstOrNew();

            BaoUsers.GetCost = BaoConfig.GetCost;
            DataObj.Data     = BaoUsers.OutJson();
            DataObj.Code     = "0000";
            DataObj.OutString();
        }