public ActionResult Audit(StopPayAudit StopPayAudit)
        {
            if (StopPayAudit.Id.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请填写ID";
                return(View("Error"));
            }

            var BaseStopPayAudit = Entity.StopPayAudit.FirstOrDefault(o => o.Id == StopPayAudit.Id);

            if (BaseStopPayAudit == null)
            {
                ViewBag.ErrorMsg = "数据不存在";
                return(View("Error"));
            }

            var BaseUsers = this.Entity.Users.FirstOrDefault(o => o.Id == BaseStopPayAudit.UId);

            if (BaseUsers == null)
            {
                ViewBag.ErrorMsg = "数据不存在";
                return(View("Error"));
            }
            if (!BaseUsers.IfUnFrozenAudit())
            {
                ViewBag.ErrorMsg = "不符合解冻审核规则";
                return(View("Error"));
            }
            //商户数据修改
            BaseUsers.StopPayAuditState = StopPayAudit.TState;
            if (BaseUsers.StopPayAuditState == 2)
            {
                BaseUsers.StopPayState = 0;
            }

            BaseStopPayAudit.TState              = StopPayAudit.TState;
            BaseStopPayAudit.AuditRemark         = StopPayAudit.AuditRemark;
            BaseStopPayAudit.AuditInteriorRemark = StopPayAudit.AuditInteriorRemark;
            BaseStopPayAudit.AuditTime           = DateTime.Now;
            BaseStopPayAudit.AuditAdminId        = this.AdminUser.Id;
            BaseStopPayAudit.AuditAdminName      = this.AdminUser.TrueName;

            //记录日志
            var UserFrozenLog = new UserFrozenLog()
            {
                Img            = string.Empty,
                Remark         = StopPayAudit.AuditRemark,
                AddTime        = DateTime.Now,
                OpName         = this.AdminUser.TrueName,
                UId            = BaseUsers.Id,
                LogType        = StopPayAudit.TState,
                OpType         = 2,
                AId            = this.AdminUser.Id,
                InteriorRemark = StopPayAudit.AuditInteriorRemark,
                Platform       = 2,
            };

            this.Entity.UserFrozenLog.AddObject(UserFrozenLog);
            this.Entity.SaveChanges();
            ViewBag.Title = "操作成功";
            ViewBag.Msg   = "操作结果:审核" + (StopPayAudit.TState == 2 ? "通过" : "不通过");
            return(View("Succeed"));
        }
        public JsonResult EditUpLoadUsers()
        {
            JsonResult json = new JsonResult();
            try
            {
                //上传
                var file = HttpContext.Request.Files.Get("UpLoadFile");
                var savePath = "/UpLoadFiles/Users/";
                var param = new UpLoadFileParam(file, savePath, false);
                param.AllowType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                json.Data = UpLoadFileHelpOld.UpLoadFileExcel(param);
                //var sjson = JsonConvert.SerializeObject(json.Data);
                //var djson = JsonConvert.DeserializeObject(sjson) as JObject;
                //JToken Result = djson["Result"];
                //string filename = Result["SaveFileName"].ToString();
                string filename = param.SaveFileName;
                //获取数据
                string path = Server.MapPath("//UpLoadFiles/Users") + "\\" + filename;
                ExcelPackage package = new ExcelPackage(new FileInfo(path), true);
                var sheet = package.Workbook.Worksheets[1];
                int rows = sheet.Dimension.End.Row;
                int OpType = 0;
                for (int i = 2; i < rows + 1; i++)
                {
                    Users baseUsers = new Users();
                    if (sheet.Cells[i,1].Value != null)
                    {
                        string mobile=sheet.Cells[i, 1].Value.ToString().Replace(" ", "");
                        baseUsers = Entity.Users.FirstOrNew(o => o.Mobile == mobile);
                    }
                    else if(sheet.Cells[i,2].Value!=null)
                    {
                        string cardid = sheet.Cells[i, 2].Value.ToString().Replace(" ", "");
                        baseUsers = Entity.Users.FirstOrNew(o => o.CardId == cardid && o.CardStae == 2);
                    }
                    if (!baseUsers.Id.IsNullOrEmpty()&&sheet.Cells[i,3].Value!=null)
                    {
                        decimal StopPayMoney = 0;
                        #region 部分止付
                        if (sheet.Cells[i, 3].Value.ToString() == "部分止付")//部份
                        {
                            OpType = 3;
                          
                            if (sheet.Cells[i, 4].Value != null)
                            {
                                StopPayMoney =Math.Round(Convert.ToDecimal(sheet.Cells[i, 4].Value),2);
                                if (StopPayMoney < 0)
                                { continue; }
                            }

                            //帐户变动记录
                            string SP_Ret = Entity.SP_UsersMoney(baseUsers.Id, "部分止付", StopPayMoney, 9, "部分止付");
                            if (SP_Ret != "3")
                            {
                                Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", baseUsers.Id, "部分止付", 9, StopPayMoney, SP_Ret), "SP_UsersMoney");
                            }
                            baseUsers = this.Entity.Users.FirstOrDefault(o => o.Id == baseUsers.Id);
                            if (baseUsers.StopPayState == 0)
                            {
                                baseUsers.StopPayMoney = StopPayMoney;
                            }
                            else if (baseUsers.StopPayState == 1)
                            {
                                baseUsers.StopPayMoney += StopPayMoney;
                            }
                            else if (baseUsers.StopPayState == 2)
                            {
                                baseUsers.StopPayMoney = StopPayMoney;
                            }
                            baseUsers.StopPayState = 1;
                            //日记写入
                            var UserFrozenLog = new UserFrozenLog()
                            {
                                AddTime = DateTime.Now,
                                OpName = AdminUser.TrueName,
                                AId = AdminUser.Id,
                                OpType = OpType,
                                LogType = 2,
                                UId = baseUsers.Id,
                                StopPayMoney = StopPayMoney,
                                Remark = sheet.Cells[i, 5].Value == null ? "" : sheet.Cells[i, 5].Value.ToString().Length > 1999 ? sheet.Cells[i, 5].Value.ToString().Substring(0, 1999) : sheet.Cells[i, 5].Value.ToString(),
                                Platform = 2,
                                InteriorRemark = sheet.Cells[i, 6].Value == null ? "" : sheet.Cells[i, 6].Value.ToString().Length > 1999 ? sheet.Cells[i, 6].Value.ToString().Substring(0, 1999) : sheet.Cells[i, 6].Value.ToString(),
                            };
                            Entity.UserFrozenLog.AddObject(UserFrozenLog);
                            //Entity.SaveChanges();
                        }
                        #endregion
                        #region 全止付
                        if (sheet.Cells[i, 3].Value.ToString() == "全止付")//全帐户
                        {
                            OpType = 1;
                            if (baseUsers.StopPayState == 0)
                            {
                                baseUsers.StopPayState = 2;
                                baseUsers.AutoBao = 0;
                                baseUsers.AutoCash = 0;
                            }
                            else if (baseUsers.StopPayState == 1)
                            {
                                StopPayMoney = baseUsers.StopPayMoney;
                                if (StopPayMoney > 0)
                                {
                                    //帐户变动记录
                                    string SP_Ret = Entity.SP_UsersMoney(baseUsers.Id, "解除部分止付", StopPayMoney, 10, "解除部分止付");
                                    if (SP_Ret != "3")
                                    {
                                        Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", baseUsers.Id, "解除部分止付", 10, StopPayMoney, SP_Ret), "SP_UsersMoney");
                                    }
                                    baseUsers = this.Entity.Users.FirstOrDefault(o => o.Id == baseUsers.Id);

                                    baseUsers.StopPayState = 2;
                                    baseUsers.AutoBao = 0;
                                    baseUsers.AutoCash = 0;
                                    baseUsers.StopPayMoney = 0;
                                }
                            }
                            else if (baseUsers.StopPayState == 2)
                            {
                                continue;
                            }
                            
                            //日记写入
                            var UserFrozenLog = new UserFrozenLog()
                            {
                                AddTime = DateTime.Now,
                                OpName = AdminUser.TrueName,
                                AId = AdminUser.Id,
                                OpType = OpType,
                                LogType = 2,
                                UId = baseUsers.Id,
                                StopPayMoney = StopPayMoney,
                                Remark = sheet.Cells[i, 5].Value == null ? "" : sheet.Cells[i, 5].Value.ToString().Length>1999?sheet.Cells[i, 5].Value.ToString().Substring(0,1999):sheet.Cells[i, 5].Value.ToString(),
                                Platform = 2,
                                InteriorRemark = sheet.Cells[i, 6].Value == null ? "" : sheet.Cells[i, 6].Value.ToString().Length > 1999 ? sheet.Cells[i, 6].Value.ToString().Substring(0, 1999) : sheet.Cells[i, 6].Value.ToString(),
                            };
                            Entity.UserFrozenLog.AddObject(UserFrozenLog);
                           
                        }
                        #endregion   
                    }
                }
                Entity.SaveChanges();
              return json;
            }
            catch
            {
                json = new JsonResult();
                return json;
            }
        }
        public ActionResult UnFrozen(StopPayAudit StopPayAudit)
        {
            #region 条件
            if (StopPayAudit.UId.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请选择目标商户";
                return(View("Error"));
            }
            StopPayAudit = Request.ConvertRequestToModel <StopPayAudit>(StopPayAudit, StopPayAudit);
            if (StopPayAudit.Pic == "System.Web.HttpPostedFileWrapper" || StopPayAudit.Pic == null)
            {
                ViewBag.ErrorMsg = "文件类型错误";
                return(View("Error"));
            }
            if (StopPayAudit.Remark.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请填写解除止付原因";
                return(View("Error"));
            }
            var BaseUsers = this.Entity.Users.Where(o => o.Id == StopPayAudit.UId).FirstOrDefault();
            if (BaseUsers == null)
            {
                ViewBag.ErrorMsg = AgentLanguage.Empty;
                return(View("Error"));
            }
            if (!BaseUsers.IfUnFrozen())
            {
                ViewBag.ErrorMsg = "不符合解除止付规则,无法解除";
                return(View("Error"));
            }
            var ForSysAgent = BaseUsers.ForSysAgent(this.Entity);
            if (ForSysAgent != null)
            {
                ViewBag.ErrorMsg = "代理商钱包账号无法解除止付";
                return(View("Error"));
            }
            if (this.BasicAgent.Tier != 1)
            {
                if (BaseUsers.Agent != this.BasicAgent.Id)
                {
                    ViewBag.ErrorMsg = "不能解除下级的商户";
                    return(View("Error"));
                }
            }
            else if (!IsBelongToAgent(BaseUsers.Agent))
            {
                ViewBag.ErrorMsg = AgentLanguage.Surmount;
                return(View("Error"));
            }
            #endregion

            BaseUsers.StopPayAuditState  = 1;
            StopPayAudit.AddTime         = DateTime.Now;
            StopPayAudit.CreateAdminId   = this.AdminUser.Id;
            StopPayAudit.CreateAdminName = this.AdminUser.TrueName;
            StopPayAudit.StopPayMoney    = 0;
            StopPayAudit.StopPayType     = 2;
            StopPayAudit.TState          = 1;
            StopPayAudit.Agent           = BaseUsers.Agent;
            this.Entity.StopPayAudit.AddObject(StopPayAudit);
            var UserFrozenLog = new UserFrozenLog()
            {
                AddTime        = DateTime.Now,
                OpName         = AdminUser.TrueName,
                AId            = AdminUser.Id,
                OpType         = 2,
                LogType        = 1,
                UId            = StopPayAudit.UId,
                StopPayMoney   = 0,
                Remark         = StopPayAudit.Remark,
                Platform       = 1,
                InteriorRemark = string.Empty,
                Img            = StopPayAudit.Pic,
            };
            this.Entity.UserFrozenLog.AddObject(UserFrozenLog);
            this.Entity.SaveChanges();
            ViewBag.Title = "操作成功";
            ViewBag.Msg   = BaseUsers.UserName + "申请解除止付成功,请等待审核";
            return(View("Succeed"));
        }
        public ActionResult StopPaySave(Users Users)
        {
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Id == Users.Id);
            if (baseUsers == null)
            {
                ViewBag.ErrorMsg = "数据不存在";
                return View("Error");
            }
            if (Users.Remark.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请填写备注";
                return View("Error");
            }
            string State = "无改变";
            int OpType = 0;
            decimal StopPayMoney = 0m;

            #region 解止付
            if (Users.StopPayState == 0)//解
            {
                OpType = 2;
                var StopPayAudit = Entity.StopPayAudit.FirstOrDefault(o => o.UId == Users.Id && (o.TState == 1 || o.TState == 3));
                if (baseUsers.StopPayState == 0)
                {
                    ViewBag.ErrorMsg = "当前没有止付,无需解止付!";
                    return View("Error");
                }
                else if (baseUsers.StopPayState == 1)
                {
                    StopPayMoney = baseUsers.StopPayMoney;
                    if (StopPayMoney > 0)
                    {
                        //帐户变动记录
                        string SP_Ret = Entity.SP_UsersMoney(baseUsers.Id, "解除部分止付", StopPayMoney, 10, "解除部分止付");
                        if (SP_Ret != "3")
                        {
                            Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", baseUsers.Id, "解除部分止付", 10, StopPayMoney, SP_Ret), "SP_UsersMoney");
                        }
                        baseUsers = this.Entity.Users.FirstOrDefault(o => o.Id == baseUsers.Id);
                        baseUsers.StopPayMoney = 0;
                        baseUsers.StopPayState = 0;
                        baseUsers.StopPayAuditState = 2;
                    }
                    State = "部分止付→正常";
                }
                else if (baseUsers.StopPayState == 2)
                {
                    baseUsers.StopPayState = 0;
                    baseUsers.StopPayAuditState = 2;
                    State = "全止付→正常";
                }

                if (baseUsers.StopPayState == 0 && StopPayAudit != null)
                {
                    StopPayAudit.TState = 2;
                    StopPayAudit.AuditAdminId = this.AdminUser.Id;
                    StopPayAudit.AuditAdminName = this.AdminUser.TrueName;
                    StopPayAudit.AuditRemark = Users.Remark;
                    StopPayAudit.AuditInteriorRemark = Users.CardRemark;
                    StopPayAudit.AuditTime = DateTime.Now;
                }
            }
            #endregion
            #region 部分止付
            if (Users.StopPayState == 1)//部份
            {
                OpType = 3;
                StopPayMoney = Users.StopPayMoney;
                if (StopPayMoney.IsNullOrEmpty())
                {
                    ViewBag.ErrorMsg = "止付金额设置错误!";
                    return View("Error");
                }

                //帐户变动记录
                string SP_Ret = Entity.SP_UsersMoney(baseUsers.Id, "部分止付", StopPayMoney, 9, "部分止付");
                if (SP_Ret != "3")
                {
                    Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", baseUsers.Id, "部分止付", 9, StopPayMoney, SP_Ret), "SP_UsersMoney");
                }
                baseUsers = this.Entity.Users.FirstOrDefault(o => o.Id == baseUsers.Id);
                if (baseUsers.StopPayState == 0)
                {
                    baseUsers.StopPayMoney = StopPayMoney;
                    State = "正常→部分止付";
                }
                else if (baseUsers.StopPayState == 1)
                {
                    baseUsers.StopPayMoney += StopPayMoney;
                    State = "部分止付→部分止付";
                }
                else if (baseUsers.StopPayState == 2)
                {
                    baseUsers.StopPayMoney = StopPayMoney;
                    State = "全止付→部分止付";
                }
                baseUsers.StopPayState = 1;
                //baseUsers.Frozen += StopPayMoney;
                //baseUsers.Amount -= StopPayMoney;
            }
            #endregion
            #region 全止付
            if (Users.StopPayState == 2)//全帐户
            {
                OpType = 1;
                if (baseUsers.StopPayState == 0)
                {
                    baseUsers.StopPayState = 2;
                    baseUsers.AutoBao = 0;
                    baseUsers.AutoCash = 0;
                    State = "正常→全止付";
                }
                else if (baseUsers.StopPayState == 1)
                {
                    StopPayMoney = baseUsers.StopPayMoney;
                    if (StopPayMoney > 0)
                    {
                        //帐户变动记录
                        string SP_Ret = Entity.SP_UsersMoney(baseUsers.Id, "解除部分止付", StopPayMoney, 10, "解除部分止付");
                        if (SP_Ret != "3")
                        {
                            Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", baseUsers.Id, "解除部分止付", 10, StopPayMoney, SP_Ret), "SP_UsersMoney");
                        }
                        baseUsers = this.Entity.Users.FirstOrDefault(o => o.Id == baseUsers.Id);

                        baseUsers.StopPayState = 2;
                        baseUsers.AutoBao = 0;
                        baseUsers.AutoCash = 0;
                        baseUsers.StopPayMoney = 0;
                    }
                    State = "部分止付→全止付";
                }
                else if (baseUsers.StopPayState == 2)
                {
                    ViewBag.ErrorMsg = "当前状态无变动!";
                    return View("Error");
                }
            }
            #endregion

            var UserFrozenLog = new UserFrozenLog()
            {
                AddTime = DateTime.Now,
                OpName = AdminUser.TrueName,
                AId = AdminUser.Id,
                OpType = OpType,
                LogType = 2,
                UId = Users.Id,
                StopPayMoney = StopPayMoney,
                Remark = Users.Remark,
                Platform = 2,
                InteriorRemark = Users.CardRemark,
            };
            Entity.UserFrozenLog.AddObject(UserFrozenLog);
            Entity.SaveChanges();
            ViewBag.Msg = State;
            return View("Succeed");
        }