//public void ChangeStatus(SysAgent SysAgent, string InfoList, string Clomn, string Value)
        //{
        //    if (string.IsNullOrEmpty(InfoList)) { InfoList = SysAgent.Id.ToString(); }
        //    int Ret = Entity.ChangeEntity<SysAgent>(InfoList, Clomn, Value);
        //    Entity.SaveChanges();
        //    Response.Write(Ret);
        //}
        //public void Delete(SysAgent SysAgent, string InfoList, int? IsDel)
        //{
        //    if (string.IsNullOrEmpty(InfoList)) { InfoList = SysAgent.Id.ToString(); }
        //    int Ret = Entity.MoveToDeleteEntity<SysAgent>(InfoList, IsDel, AdminUser.UserName);
        //    Entity.SaveChanges();
        //    Response.Write(Ret);
        //}
        /// <summary>
        /// 销售信息记录
        /// </summary>
        /// <returns></returns>
        public ActionResult EditSalesLogIndex(SalesLog SalesLog, EFPagingInfo <SalesLog> p)
        {
            SysAgent SysAgent = null;

            if (!SalesLog.AgentId.IsNullOrEmpty())
            {
                SysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == SalesLog.AgentId);
            }
            if (SysAgent == null)
            {
                ViewBag.ErrorMsg = AgentLanguage.Empty;
                return(View("Error"));
            }
            if (!IsBelongToAgent(SysAgent.Id))
            {
                ViewBag.ErrorMsg = AgentLanguage.Surmount;
                return(View("Error"));
            }
            p.SqlWhere.Add(o => o.AgentId == SysAgent.Id);
            p.OrderByList.Add("AddTime", "DESC");
            IPageOfItems <SalesLog> SalesLogList = Entity.Selects <SalesLog>(p);

            ViewBag.SalesLogList = SalesLogList;
            ViewBag.SalesLog     = SalesLog;
            return(View("SalesLogIndex"));
        }
        public ActionResult EditSalesLog(SalesLog SalesLog)
        {
            if (SalesLog.Id != 0)
            {
                SalesLog = Entity.SalesLog.FirstOrDefault(o => o.Id == SalesLog.Id);
            }
            ViewBag.SalesLog = SalesLog;
            var Contract       = new List <Attach>();
            var Certificate    = new List <Attach>();
            var IDCard_Front   = new List <Attach>();
            var IDCard_Hand    = new List <Attach>();
            var IDCard_Reverse = new List <Attach>();

            if (SalesLog.AgentId != 0)
            {
                var attachs = Entity.Attach.Where(o => o.SLogId == SalesLog.Id || o.RemoveSLogId == SalesLog.Id).ToList();
                Contract       = attachs.Where(o => o.AType == (byte)AttachType.Contract).ToList();
                Certificate    = attachs.Where(o => o.AType == (byte)AttachType.Certificate).ToList();
                IDCard_Front   = attachs.Where(o => o.AType == (byte)AttachType.IDCard_Front).ToList();
                IDCard_Hand    = attachs.Where(o => o.AType == (byte)AttachType.IDCard_Hand).ToList();
                IDCard_Reverse = attachs.Where(o => o.AType == (byte)AttachType.IDCard_Reverse).ToList();
            }
            this.ViewBag.Contract       = Contract;
            this.ViewBag.Certificate    = Certificate;
            this.ViewBag.IDCard_Front   = IDCard_Front;
            this.ViewBag.IDCard_Hand    = IDCard_Hand;
            this.ViewBag.IDCard_Reverse = IDCard_Reverse;
            return(View("EditSalesLog"));
        }
 public void TryDoTransaction(OKCParameters okcparameters)
 {
     if (!PrepareSaleOrAdmin(EcrModeType.SALE))
     {
         return;
     }
     _requestMembers = JsonConvert.DeserializeObject <Members>(okcparameters.Content);
     _okc.TryDoTransaction(_requestMembers);
     SalesLog.Write(_requestMembers.ItemName, _requestMembers.Amount, _requestMembers.DepartmentId);
 }
 public void SetSalesLogStat(bool EnableStat, string strLogPath = "SalesLogs")
 {
     SalesLog.LogEnable = EnableStat;
     if (!SalesLog.LogEnable)
     {
         return;
     }
     SalesLog.SetLogPath(strLogPath);
     SalesLog.CloseLogFile();
     SalesLog.OpenLogFile();
 }
Exemple #5
0
 // GET: SalesLogs/Details/5
 public ActionResult Details(int? id)
 {
     if (id == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     SalesLog salesLog = db.SalesLogs.Find(id);
     if (salesLog == null)
     {
         return HttpNotFound();
     }
     return View(salesLog);
 }
Exemple #6
0
        /// <summary>
        /// 编辑仓库
        /// </summary>
        /// <param name="Rid"></param>
        /// <returns></returns>
        public ActionResult Edit(int Rid)
        {
            var model = new SalesLog();

            if (Rid > 0)
            {
                model = new DALSalesLog().GetSingleSalesLog(Rid);
            }

            ViewBag.WarehouseList = new DALWarehouse().QueryList();

            return(View(model));
        }
Exemple #7
0
        /// <summary>
        /// 添加/修改保存
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult Save(SalesLog model)
        {
            ResultMsg msg = new ResultMsg();

            //修改
            if (model.Rid > 0)
            {
                msg = new DALSalesLog().Update(model);
            }
            //添加
            else if (model.Rid == 0)
            {
                msg = new DALSalesLog().Insert(model);
            }

            return(Json(new { Success = msg.Success, Result = msg.ReturnInt, ErrMsg = msg.ErrMsg }));
        }
        /// <summary>
        /// 销售信息记录
        /// </summary>
        /// <returns></returns>
        public ActionResult EditSalesLogIndex(SalesLog SalesLog, EFPagingInfo <SalesLog> p)
        {
            if (!SalesLog.AgentId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(o => o.AgentId == SalesLog.AgentId);
            }
            else
            {
                ViewBag.ErrorMsg = "查询不到对应的数据";
                return(View("Error"));
            }
            p.OrderByList.Add("AddTime", "DESC");
            IPageOfItems <SalesLog> SalesLogList = Entity.Selects <SalesLog>(p);

            ViewBag.SalesLogList = SalesLogList;
            ViewBag.SalesLog     = SalesLog;
            return(View("SalesLogIndex"));
        }
Exemple #9
0
        public ActionResult Create([Bind(Include = "SalesLogID,ItemOrderQTY,ItemID,SaleOrderID")] SalesLog salesLog, int id)
        {
            if (ModelState.IsValid)
            {
                Item items = db.Items.Find(salesLog.ItemID);

                if (salesLog.ItemOrderQTY <= items.ItemQTY)
                {
                    ViewBag.mensaje = "1";
                items.ItemQTY = items.ItemQTY - salesLog.ItemOrderQTY;
                salesLog.SaleOrderID = id;
                db.SalesLogs.Add(salesLog);
                db.SaveChanges();
                    if(items.ItemQTY < items.ItemThres)
                    {
                        MailMessage mail = new MailMessage("*****@*****.**", "*****@*****.**"));
                        SmtpClient client = new SmtpClient();
                        client.Port = 25;
                        client.DeliveryMethod = SmtpDeliveryMethod.Network;
                        client.UseDefaultCredentials = false;
                        client.Host = "localhost";
                        mail.Subject = "WARNING, one of your items has reached its threshold: " + items.ItemName;
                        mail.Body = mail.Body = "The item " + items.ItemName + " is low in stock, you have " + items.ItemQTY + " and its threshold is " + items.ItemThres + " , order more.";
                        mail.IsBodyHtml = true;
                        client.Send(mail);

                    }

                    return RedirectToAction("AddItems", "SaleOrders", new { id = salesLog.SaleOrderID });
                 }
                else
                {
                    ViewBag.mensaje = "0";
                    salesLog.SaleOrderID = id;
                }
            }

            ViewBag.ItemID = new SelectList(db.Items, "ItemID", "ItemName", salesLog.ItemID);
            ViewBag.SaleOrderID = new SelectList(db.SaleOrders, "SaleOrderID", "SaleOrderID", salesLog.SaleOrderID);
            return View(salesLog);
        }
 /// <summary>
 /// 处理附件
 /// </summary>
 /// <param name="Contract">合同</param>
 /// <param name="salesLog">销售信息记录</param>
 /// <param name="IDCard_Front">身份证-正面</param>
 /// <param name="IDCard_Reverse">身份证-反面</param>
 /// <param name="IDCard_Hand">身份证-手持</param>
 /// <param name="Certificate">营业执照或其它证件</param>
 private void ProcessAttach(SysAgent SysAgent, SalesLog salesLog, List <Attach> Contract, Attach IDCard_Front, Attach IDCard_Reverse, Attach IDCard_Hand, List <Attach> Certificate, List <int> DelIds)
 {
     #region 处理附件
     if (IDCard_Front != null)
     {
         IDCard_Front.State = 1;
         this.SaveOrAdd(IDCard_Front, AttachType.IDCard_Front, SysAgent.Id, salesLog.Id);
     }
     if (IDCard_Hand != null)
     {
         IDCard_Hand.State = 1;
         this.SaveOrAdd(IDCard_Hand, AttachType.IDCard_Hand, SysAgent.Id, salesLog.Id);
     }
     if (IDCard_Reverse != null)
     {
         IDCard_Reverse.State = 1;
         this.SaveOrAdd(IDCard_Reverse, AttachType.IDCard_Reverse, SysAgent.Id, salesLog.Id);
     }
     if (Contract != null && Contract.Count > 0)
     {
         foreach (var item in Contract)
         {
             item.State = 1;
             this.SaveOrAdd(item, AttachType.Contract, SysAgent.Id, salesLog.Id);
         }
     }
     if (Certificate != null && Certificate.Count() > 0)
     {
         foreach (var item in Certificate)
         {
             item.State = 1;
             this.SaveOrAdd(item, AttachType.Certificate, SysAgent.Id, salesLog.Id);
         }
     }
     if (DelIds != null && DelIds.Count > 0)
     {
         string sql = "UPDATE Attach SET State = 0, RemoveSLogId= " + salesLog.Id + " WHERE Id in(" + string.Join(",", DelIds) + ");";
         Entity.ExecuteStoreCommand(sql);
     }
     #endregion
 }
        public object Save(SysAgent SysAgent, List <string> PId, List <Attach> Contract, Attach IDCard_Front, Attach IDCard_Reverse, Attach IDCard_Hand, List <Attach> Certificate, List <int> DelIds, string PassWord, int?AnsyCash0, int?AnsyNext0, int?AnsyCash1, int?AnsyNext1)
        {
            SysAgent baseSysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == SysAgent.Id);

            if (baseSysAgent == null)
            {
                ViewBag.ErrorMsg = AgentLanguage.Empty;
                return(View("Error"));
            }
            if (!IsBelongToAgent(baseSysAgent.Id))
            {
                ViewBag.ErrorMsg = AgentLanguage.Surmount;
                return(View("Error"));
            }
            if (SysAgent.Tel.Contains("400-608-6765") || SysAgent.Tel.Contains("23769678") || SysAgent.Tel.Contains("22220076") || SysAgent.Tel.Contains("4006086765"))
            {
                ViewBag.ErrorMsg = "该客服号码禁止使用";
                return(View("Error"));
            }
            SysAgent.PayGet  = SysAgent.PayGet.IsNullOrEmpty() ? 0 : SysAgent.PayGet / 100;
            SysAgent.CashGet = 0;//SysAgent.CashGet.IsNullOrEmpty() ? 0 : SysAgent.CashGet / 100;
            SysAgent.LoanGet = SysAgent.LoanGet.IsNullOrEmpty() ? 0 : SysAgent.LoanGet / 100;
            SysAgent.Credit  = SysAgent.Credit.IsNullOrEmpty() ? 0 : SysAgent.Credit / 100;

            SysAgent.Cash0 = SysAgent.Cash0.IsNullOrEmpty() ? 0 : SysAgent.Cash0 / 1000;
            SysAgent.Cash1 = SysAgent.Cash1.IsNullOrEmpty() ? 0 : SysAgent.Cash1 / 1000;

            bool MySysAgentMoney = this.checkPower("MySysAgent", "MoneySave");

            if (!MySysAgentMoney)
            {
                //无权限的时候,以上级代理为准
                SysAgent.Cash0      = BasicAgent.Cash0;
                SysAgent.Cash1      = BasicAgent.Cash1;
                SysAgent.ECash0     = BasicAgent.ECash0;
                SysAgent.ECash1     = BasicAgent.ECash1;
                SysAgent.Cash0Times = BasicAgent.Cash0Times;
                SysAgent.Cash1Times = BasicAgent.Cash1Times;
            }

            if (SysAgent.Cash0 < BasicSet.AgentCash0 || SysAgent.ECash0 < BasicSet.AgentECash0 || SysAgent.Cash1 < BasicSet.AgentCash1 || SysAgent.ECash1 < BasicSet.AgentECash1)
            {
                ViewBag.ErrorMsg = "费率设置有误!";
                return(View("Error"));
            }
            if (SysAgent.Cash0Times > BasicSet.AgentCash0Times || SysAgent.Cash1Times > BasicSet.AgentCash1Times)
            {
                ViewBag.ErrorMsg = "费率设置有误!";
                return(View("Error"));
            }

            SysAgent.AgentState = SysAgent.AgentState;

            //已绑定,手机不能改
            if (!baseSysAgent.MyUId.IsNullOrEmpty())
            {
                SysAgent.LinkMobile = baseSysAgent.LinkMobile;
            }
            bool IsLock = false;

            if (baseSysAgent.State == 1 && SysAgent.State == 0)
            {
                IsLock = true;
            }
            //保存销售记录为了取得id
            var salesLog = new SalesLog()
            {
                AddTime    = DateTime.Now,
                AgentFee   = SysAgent.AgentFee,
                ExpireTime = SysAgent.ExpireTime,
                State      = 1,
                AgentId    = SysAgent.Id,
                Salesman   = SysAgent.Salesman,
            };

            Entity.SalesLog.AddObject(salesLog);
            Entity.SaveChanges();
            baseSysAgent = Request.ConvertRequestToModel <SysAgent>(baseSysAgent, SysAgent);
            //处理推广代理佣金
            if (baseSysAgent.DaiLiGetType == 1)
            {
                baseSysAgent.DaiLiGet = baseSysAgent.DaiLiGet / 100;
            }
            //权限
            string Str = string.Empty;

            if (PId != null)
            {
                foreach (var p in PId)
                {
                    if (p != string.Empty)
                    {
                        Str += "," + p;
                    }
                }
                Str += ",";
            }

            string           AgentIds  = baseSysAgent.Id.ToString();//用户下方批量更新下级代理
            IList <SysAgent> AgentList = null;

            //取得之前的权限
            string powerChar = Entity.SysAdmin.FirstOrDefault(s => s.Id == baseSysAgent.AdminId).PowerID;

            //取得之前的权限跟修改后的权限不同的权限
            string[] strSpile   = Str.Split(',');
            string[] powerSpile = powerChar.Split(',');
            strSpile   = strSpile.Where(s => !string.IsNullOrEmpty(s)).ToArray();
            powerSpile = powerSpile.Where(x => !string.IsNullOrEmpty(x)).ToArray();
            //只有减少权限的时候才执行
            if (strSpile.Length < powerSpile.Length)
            {
                string retChar = "";

                for (int i = 0; i < powerSpile.Length; i++)
                {
                    if (!string.IsNullOrWhiteSpace(powerSpile[i]))
                    {
                        if (!strSpile.Contains(powerSpile[i]))
                        {
                            retChar += powerSpile[i] + ",";
                        }
                    }
                }
                //取得代理商所有的下级
                AgentList = SysAgent.GetSupAgent(Entity, true);
                foreach (var agentItem in AgentList)
                {
                    IList <SysAdmin> SysAdminList = Entity.SysAdmin.Where(x => x.AgentId == agentItem.Id).ToList();
                    string[]         retSplit     = retChar.Split(',');
                    foreach (var modelAdmin in SysAdminList)
                    {
                        foreach (var item in retSplit)
                        {
                            string formatChar = string.Format(",{0},", item);
                            if (modelAdmin.PowerID.Contains(formatChar))
                            {
                                modelAdmin.PowerID = modelAdmin.PowerID.Replace(formatChar, ",");
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(modelAdmin.PowerID) && !modelAdmin.PowerID.StartsWith(","))
                        {
                            modelAdmin.PowerID = "," + modelAdmin.PowerID;
                        }
                        string SQL = "Update SysAdmin set PowerID = '" + modelAdmin.PowerID + "' where Id=" + modelAdmin.Id;
                        Entity.ExecuteStoreCommand(SQL);
                    }
                }
            }

            SysAdmin SysAdmin = Entity.SysAdmin.FirstOrDefault(n => n.Id == baseSysAgent.AdminId);

            if (SysAdmin != null)
            {
                SysAdmin.PowerID = Str;
                if (!PassWord.IsNullOrEmpty())
                {
                    SysAdmin.PassWord = PassWord.GetAdminMD5();
                }
                SysAdmin.State = SysAgent.State;
            }
            this.ProcessAttach(SysAgent, salesLog, Contract, IDCard_Front, IDCard_Reverse, IDCard_Hand, Certificate, DelIds);
            Entity.SaveChanges();
            //如果是修改的话这个应该不会执行
            OpenOrBindUser(SysAgent.Id, Str);
            if (IsLock)
            {
                //锁定其下级所有代理 2016-07-05 Lin
                this.LockAllAgent(baseSysAgent);
            }
            Entity.SaveChanges();


            if (!AnsyCash0.IsNullOrEmpty() || !AnsyCash1.IsNullOrEmpty() || !AnsyNext0.IsNullOrEmpty() || !AnsyNext1.IsNullOrEmpty())
            {
                if (AgentList == null)
                {
                    //取得代理商所有的下级
                    AgentList = SysAgent.GetSupAgent(Entity, true);
                }
                ;
                foreach (var p in AgentList)
                {
                    AgentIds = AgentIds + "," + p.Id;
                }
            }
            if (AnsyCash0 == 1)//同步到用户
            {
                string SQL = "Update Users Set ECash0=" + baseSysAgent.ECash0 + ",Cash0=" + baseSysAgent.Cash0 + " where Agent in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyCash1 == 1)//同步到用户
            {
                string SQL = "Update Users Set ECash1=" + baseSysAgent.ECash1 + ",Cash1=" + baseSysAgent.Cash1 + " where Agent in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyNext0 == 1)//同步到代理
            {
                string SQL = "Update SysAgent Set ECash0=" + baseSysAgent.ECash0 + ",Cash0=" + baseSysAgent.Cash0 + ",Cash0Times=" + baseSysAgent.Cash0Times + " where Id in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyNext0 == 1)//同步到代理
            {
                string SQL = "Update SysAgent Set ECash1=" + baseSysAgent.ECash1 + ",Cash1=" + baseSysAgent.Cash1 + ",Cash1Times=" + baseSysAgent.Cash1Times + " where Id in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }

            ViewBag.Msg     = "操作成功!";
            ViewBag.IsColse = true;
            return(View("Succeed"));
        }
        public object Add(SysAgent SysAgent, List <string> PId, List <Attach> Contract, Attach IDCard_Front, Attach IDCard_Reverse, Attach IDCard_Hand, List <Attach> Certificate, List <int> DelIds, string code)
        {
            //验证号码格式
            //var rx = new System.Text.RegularExpressions.Regex(@"^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|4|5|6|7|8|9])\d{8}$");
            //if (!rx.IsMatch(SysAgent.LinkMobile))
            //{
            //    ViewBag.ErrorMsg = "请正确填写联系手机号格式";
            //    return View("Error");
            //}
            //电信手机号码正则
            string dianxin = @"^1[3578][01379]\d{8}$";
            Regex  dReg    = new Regex(dianxin);
            //联通手机号正则
            string liantong = @"^1[34578][01256]\d{8}$";
            Regex  tReg     = new Regex(liantong);
            //移动手机号正则
            string yidong = @"^(134[012345678]\d{7}|1[34578][012356789]\d{8})$";
            Regex  yReg   = new Regex(yidong);

            if (!dReg.IsMatch(SysAgent.LinkMobile) && !tReg.IsMatch(SysAgent.LinkMobile) && !yReg.IsMatch(SysAgent.LinkMobile))
            {
                ViewBag.ErrorMsg = "请正确填写联系手机号格式";
                return(View("Error"));
            }
            //验证是否重复
            SysAdmin Old = Entity.SysAdmin.FirstOrDefault(n => n.UserName == SysAgent.LinkMobile);

            if (Old != null)
            {
                ViewBag.ErrorMsg = "“联系手机号”已在系统中存在,无法开通管理员!";
                return(View("Error"));
            }
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == SysAgent.LinkMobile && UBL.State == 1) != null)
            {
                ViewBag.ErrorMsg = "暂不支持您的手机号入网!";
                return(View("Error"));
            }
            SysSet SysSet = Entity.SysSet.FirstOrNew();

            //失效之前获取验证码
            SMSCode SMSCode = Entity.SMSCode.OrderByDescending(n => n.Id).FirstOrDefault(n => n.UId == BasicAgent.Id && n.Mobile == SysAgent.LinkMobile && n.CType == 5 && n.Code == code);

            if (SMSCode == null)
            {
                ViewBag.ErrorMsg = "验证码错误!";
                return(View("Error"));
            }
            if (SMSCode.State != 1)
            {
                ViewBag.ErrorMsg = "验证码已被使用过!";
                return(View("Error"));
            }
            if (SMSCode.AddTime.AddMinutes(SysSet.SMSActives) < DateTime.Now)
            {
                ViewBag.ErrorMsg = "验证码已失效!";
                return(View("Error"));
            }

            if (SysAgent.Tel.Contains("400-608-6765") || SysAgent.Tel.Contains("23769678") || SysAgent.Tel.Contains("22220076") || SysAgent.Tel.Contains("4006086765"))
            {
                ViewBag.ErrorMsg = "该客服号码禁止使用";
                return(View("Error"));
            }
            if (Contract == null || Contract.Count <= 0)
            {
                ViewBag.ErrorMsg = "请上传合同";
                return(View("Error"));
            }
            if (IDCard_Front == null || IDCard_Front.AFile.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请上传身份证正面";
                return(View("Error"));
            }
            if (IDCard_Reverse == null || IDCard_Reverse.AFile.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请上传身份证反面";
                return(View("Error"));
            }
            if (IDCard_Hand == null || IDCard_Hand.AFile.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请上传手持身份证";
                return(View("Error"));
            }
            if (Certificate == null || Certificate.Count <= 0)
            {
                ViewBag.ErrorMsg = "请上传营业执照或其它证件";
                return(View("Error"));
            }

            //整理代理商信息
            SysAgent.AddTime = DateTime.Now;
            SysAgent.PayGet  = SysAgent.PayGet.IsNullOrEmpty() ? 0 : SysAgent.PayGet / 100;
            SysAgent.CashGet = 0;// SysAgent.CashGet.IsNullOrEmpty() ? 0 : SysAgent.CashGet / 100;
            SysAgent.LoanGet = SysAgent.LoanGet.IsNullOrEmpty() ? 0 : SysAgent.LoanGet / 100;

            SysAgent.Credit = SysAgent.Credit.IsNullOrEmpty() ? 0 : SysAgent.Credit / 100;

            SysAgent.Cash0 = SysAgent.Cash0.IsNullOrEmpty() ? 0 : SysAgent.Cash0 / 1000;
            SysAgent.Cash1 = SysAgent.Cash1.IsNullOrEmpty() ? 0 : SysAgent.Cash1 / 1000;

            bool MySysAgentMoney = this.checkPower("MySysAgent", "MoneySave");

            if (!MySysAgentMoney)
            {
                //无权限的时候,以上级代理为准
                SysAgent.Cash0      = BasicAgent.Cash0;
                SysAgent.Cash1      = BasicAgent.Cash1;
                SysAgent.ECash0     = BasicAgent.ECash0;
                SysAgent.ECash1     = BasicAgent.ECash1;
                SysAgent.Cash0Times = BasicAgent.Cash0Times;
                SysAgent.Cash1Times = BasicAgent.Cash1Times;
            }

            if (SysAgent.Cash0 < BasicSet.AgentCash0 || SysAgent.ECash0 < BasicSet.AgentECash0 || SysAgent.Cash1 < BasicSet.AgentCash1 || SysAgent.ECash1 < BasicSet.AgentECash1)
            {
                ViewBag.ErrorMsg = "费率设置有误!";
                return(View("Error"));
            }

            SysAgent.AdminId      = 0;
            SysAgent.IsTeiPai     = 0;                           //二级起不能贴牌
            SysAgent.AgentID      = BasicAgent.Id;               //上级代理Id
            SysAgent.IsPromote    = 0;                           //默认关闭
            SysAgent.PromoteGet   = 0;                           //默认为于推广用户返佣为0
            SysAgent.Tier         = (byte)(BasicAgent.Tier + 1); //增加一层
            SysAgent.NoteDownload = "";
            SysAgent.LinkMobile   = SysAgent.LinkMobile.Trim();
            SysAgent.AgentState   = 0; //默认为0

            SysAgent.AgentLevelMax = BasicAgent.AgentLevelMax;

            //处理推广代理佣金
            if (SysAgent.DaiLiGetType == 1)
            {
                SysAgent.DaiLiGet = SysAgent.DaiLiGet / 100;
            }
            Entity.SysAgent.AddObject(SysAgent);
            //先保存拿agentId
            Entity.SaveChanges();
            //保存销售记录为了取得id
            var salesLog = new SalesLog()
            {
                AddTime    = DateTime.Now,
                AgentFee   = SysAgent.AgentFee,
                ExpireTime = SysAgent.ExpireTime,
                State      = 1,
                AgentId    = SysAgent.Id,
                Salesman   = SysAgent.Salesman,
            };

            Entity.SalesLog.AddObject(salesLog);
            //再保存拿到logid
            Entity.SaveChanges();
            this.ProcessAttach(SysAgent, salesLog, Contract, IDCard_Front, IDCard_Reverse, IDCard_Hand, Certificate, DelIds);
            //权限
            string Str = string.Empty;

            if (PId != null)
            {
                foreach (var p in PId)
                {
                    if (p != string.Empty)
                    {
                        Str += "," + p;
                    }
                }
                Str += ",";
            }

            //自动配置代理商的用户入网费率
            IList <PayConfig>    PCList  = Entity.PayConfig.Where(n => n.State == 1).ToList();
            IList <UserPayAgent> UPAList = Entity.UserPayAgent.Where(n => n.AId == BasicAgent.Id).ToList();

            foreach (var PC in PCList)
            {
                UserPayAgent UP           = UPAList.FirstOrDefault(n => n.PId == PC.Id);
                UserPayAgent UserPayAgent = new UserPayAgent();
                UserPayAgent.AId = SysAgent.Id;
                UserPayAgent.PId = PC.Id;
                if (UP == null)
                {
                    UserPayAgent.Cost = (double)PC.CostUser;
                }
                else
                {
                    UserPayAgent.Cost = (double)UP.Cost;
                }
                Entity.UserPayAgent.AddObject(UserPayAgent);
            }
            SMSCode.State = 2;
            Entity.SaveChanges();

            //新添加这个里面会执行savecheng
            OpenOrBindUser(SysAgent.Id, Str);

            ViewBag.Msg     = "操作成功!";
            ViewBag.IsColse = true;
            return(View("Succeed"));
        }
        public void Save(SysAgent SysAgent, List <string> PId, List <Attach> Contract, Attach IDCard_Front, Attach IDCard_Reverse, Attach IDCard_Hand, List <Attach> Certificate, List <int> DelIds, string PassWord, int?AnsyCash0, int?AnsyNext0, int?AnsyCash1, int?AnsyNext1, int sameid)
        {
            SysAgent.PayGet  = SysAgent.PayGet.IsNullOrEmpty() ? 0 : SysAgent.PayGet / 100;
            SysAgent.CashGet = 0;//SysAgent.CashGet.IsNullOrEmpty() ? 0 : SysAgent.CashGet / 100;
            SysAgent.LoanGet = SysAgent.LoanGet.IsNullOrEmpty() ? 0 : SysAgent.LoanGet / 100;
            SysAgent.Credit  = SysAgent.Credit.IsNullOrEmpty() ? 0 : SysAgent.Credit / 100;
            //已绑定,手机不能改
            SysAgent baseSysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == SysAgent.Id);

            if (!baseSysAgent.MyUId.IsNullOrEmpty())
            {
                SysAgent.LinkMobile = baseSysAgent.LinkMobile;
            }
            bool IsLock = false;

            if (baseSysAgent.State == 1 && SysAgent.State == 0)
            {
                IsLock = true;
            }
            //保存销售记录为了取得id
            var salesLog = new SalesLog()
            {
                AddTime    = DateTime.Now,
                AgentFee   = SysAgent.AgentFee,
                ExpireTime = SysAgent.ExpireTime,
                State      = 1,
                AgentId    = SysAgent.Id,
                Salesman   = SysAgent.Salesman,
            };

            Entity.SalesLog.AddObject(salesLog);
            Entity.SaveChanges();

            SysAgent.Cash0 = SysAgent.Cash0 / 1000;
            SysAgent.Cash1 = SysAgent.Cash1 / 1000;

            //判断是否更新级数
            bool IsUpMaxTier = false;

            if (SysAgent.AgentLevelMax > baseSysAgent.AgentLevelMax)
            {
                IsUpMaxTier = true;
            }
            else
            {
                SysAgent.AgentLevelMax = baseSysAgent.AgentLevelMax;//不大于的情况下不能修改
            }
            baseSysAgent = Request.ConvertRequestToModel <SysAgent>(baseSysAgent, SysAgent);
            //处理推广代理佣金
            if (baseSysAgent.DaiLiGetType == 1)
            {
                baseSysAgent.DaiLiGet = baseSysAgent.DaiLiGet / 100;
            }

            //默认代理不能被关闭
            if (baseSysAgent.State == 0 && baseSysAgent.Id == 1)
            {
                baseSysAgent.State = 1;
            }

            //处理设置
            if (SysAgent.IsTeiPai != 1)
            {
                SysAgent.Set3 = 0;
                SysAgent.Set4 = 0;
            }

            //权限
            string Str = string.Empty;

            if (PId != null)
            {
                foreach (var p in PId)
                {
                    if (p != string.Empty)
                    {
                        Str += "," + p;
                    }
                }
                Str += ",";
            }
            string           AgentIds  = baseSysAgent.Id.ToString();//用户下方批量更新下级代理
            IList <SysAgent> AgentList = null;
            //取得之前的权限
            string powerChar = Entity.SysAdmin.FirstOrDefault(s => s.Id == baseSysAgent.AdminId).PowerID;

            //取得之前的权限跟修改后的权限不同的权限
            string[] strSpile   = Str.Split(',');
            string[] powerSpile = powerChar.Split(',');
            strSpile   = strSpile.Where(s => !string.IsNullOrEmpty(s)).ToArray();
            powerSpile = powerSpile.Where(x => !string.IsNullOrEmpty(x)).ToArray();
            //只有减少权限的时候才执行
            if (strSpile.Length < powerSpile.Length)
            {
                string retChar = "";

                for (int i = 0; i < powerSpile.Length; i++)
                {
                    if (!string.IsNullOrWhiteSpace(powerSpile[i]))
                    {
                        if (!strSpile.Contains(powerSpile[i]))
                        {
                            retChar += powerSpile[i] + ",";
                        }
                    }
                }

                //取得代理商所有的下级
                AgentList = SysAgent.GetSupAgent(Entity);

                foreach (var agentItem in AgentList)
                {
                    //根据商户Id获取管理员信息
                    IList <SysAdmin> SysAdminList = Entity.SysAdmin.Where(x => x.AgentId == agentItem.Id).ToList();
                    string[]         retSplit     = retChar.Split(',');
                    foreach (var modelAdmin in SysAdminList)
                    {
                        foreach (var item in retSplit)
                        {
                            string formatChar = string.Format(",{0},", item);
                            if (modelAdmin.PowerID.Contains(formatChar))
                            {
                                modelAdmin.PowerID = modelAdmin.PowerID.Replace(formatChar, ",");
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(modelAdmin.PowerID) && !modelAdmin.PowerID.StartsWith(","))
                        {
                            modelAdmin.PowerID = "," + modelAdmin.PowerID;
                        }
                        string SQL = "Update SysAdmin set PowerID = '" + modelAdmin.PowerID + "' where Id=" + modelAdmin.Id;
                        Entity.ExecuteStoreCommand(SQL);
                    }
                }
            }

            SysAdmin SysAdmin = Entity.SysAdmin.FirstOrDefault(n => n.Id == baseSysAgent.AdminId);

            if (SysAdmin != null)
            {
                SysAdmin.PowerID = Str;
                if (!PassWord.IsNullOrEmpty())
                {
                    SysAdmin.PassWord = PassWord.GetAdminMD5();
                }
                SysAdmin.State = SysAgent.State;
            }
            this.ProcessAttach(SysAgent, salesLog, Contract, IDCard_Front, IDCard_Reverse, IDCard_Hand, Certificate, DelIds);
            Entity.SaveChanges();
            //如果是修改的话这个应该不会执行
            OpenOrBindUser(SysAgent.Id, Str);
            if (IsLock)
            {
                //锁定其下级所有代理 2016-07-05 Lin
                this.LockAllAgent(baseSysAgent);
            }
            Entity.SaveChanges();

            //if (SysAgent)

            if (!AnsyCash0.IsNullOrEmpty() || !AnsyCash1.IsNullOrEmpty() || !AnsyNext0.IsNullOrEmpty() || !AnsyNext1.IsNullOrEmpty() || IsUpMaxTier)
            {
                if (AgentList == null)
                {
                    //取得代理商所有的下级
                    AgentList = SysAgent.GetSupAgent(Entity, true);
                }
                foreach (var p in AgentList)
                {
                    AgentIds = AgentIds + "," + p.Id;
                }
            }
            if (IsUpMaxTier)
            {
                string SQL = "Update SysAgent Set AgentLevelMax=" + baseSysAgent.AgentLevelMax + " where Id in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyCash0 == 1)//同步到用户
            {
                string SQL = "Update Users Set ECash0=" + baseSysAgent.ECash0 + ",Cash0=" + baseSysAgent.Cash0 + " where Agent in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyCash1 == 1)//同步到用户
            {
                string SQL = "Update Users Set ECash1=" + baseSysAgent.ECash1 + ",Cash1=" + baseSysAgent.Cash1 + " where Agent in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyNext0 == 1)//同步到代理
            {
                string SQL = "Update SysAgent Set ECash0=" + baseSysAgent.ECash0 + ",Cash0=" + baseSysAgent.Cash0 + ",Cash0Times=" + baseSysAgent.Cash0Times + " where Id in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (AnsyNext0 == 1)//同步到代理
            {
                string SQL = "Update SysAgent Set ECash1=" + baseSysAgent.ECash1 + ",Cash1=" + baseSysAgent.Cash1 + ",Cash1Times=" + baseSysAgent.Cash1Times + " where Id in(" + AgentIds + ")";
                Entity.ExecuteStoreCommand(SQL);
            }
            if (sameid != SysAgent.SameAgent)
            {
                SysAgent     tempAgent    = Entity.SysAgent.FirstOrNew(o => o.Id == SysAgent.SameAgent); //调入商户
                SysAgent     Agengt       = Entity.SysAgent.FirstOrNew(o => o.Id == sameid);             //调出商户
                UsersMoveLog UsersMoveLog = new UsersMoveLog()
                {
                    AddTime   = DateTime.Now,
                    ToSAId    = tempAgent.Id,
                    ToName    = tempAgent.Name.IsNullOrEmpty()?"":tempAgent.Name,
                    FromName  = Agengt.Name.IsNullOrEmpty()?"":Agengt.Name,
                    FromSAId  = Agengt.Id,
                    UId       = baseSysAgent.Id,
                    UTrueName = baseSysAgent.Name.IsNullOrEmpty() ? "" : baseSysAgent.Name,
                    OpName    = AdminUser.TrueName,
                    Type      = 3,
                    Tel       = baseSysAgent.LinkMobile,
                };
                this.Entity.UsersMoveLog.AddObject(UsersMoveLog);
                Entity.SaveChanges();
            }

            BaseRedirect();
        }
        public object Add(SysAgent SysAgent, List <string> PId, List <Attach> Contract, Attach IDCard_Front, Attach IDCard_Reverse, Attach IDCard_Hand, List <Attach> Certificate, List <int> DelIds)
        {
            //验证号码格式
            //var rx = new System.Text.RegularExpressions.Regex(@"^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|4|5|6|7|8|9])\d{8}$");
            //if (!rx.IsMatch(SysAgent.LinkMobile))
            //{
            //    ViewBag.ErrorMsg = "请正确填写联系手机号格式";
            //    return View("Error");
            //}
            //电信手机号码正则
            string dianxin = @"^1[3578][01379]\d{8}$";
            Regex  dReg    = new Regex(dianxin);
            //联通手机号正则
            string liantong = @"^1[34578][01256]\d{8}$";
            Regex  tReg     = new Regex(liantong);
            //移动手机号正则
            string yidong = @"^(134[012345678]\d{7}|1[34578][012356789]\d{8})$";
            Regex  yReg   = new Regex(yidong);

            if (!dReg.IsMatch(SysAgent.LinkMobile) && !tReg.IsMatch(SysAgent.LinkMobile) && !yReg.IsMatch(SysAgent.LinkMobile))
            {
                ViewBag.ErrorMsg = "请正确填写联系手机号格式";
                return(View("Error"));
            }
            //验证是否重复
            SysAdmin Old = Entity.SysAdmin.FirstOrDefault(n => n.UserName == SysAgent.LinkMobile);

            if (Old != null)
            {
                ViewBag.ErrorMsg = "“联系手机号”已在系统中存在,无法开通管理员!";
                return(View("Error"));
            }
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == SysAgent.LinkMobile && UBL.State == 1) != null)
            {
                ViewBag.ErrorMsg = "暂不支持您的手机号入网!";
                return(View("Error"));
            }
            if (Contract == null || Contract.Count <= 0)
            {
                ViewBag.ErrorMsg = "请上传合同";
                return(View("Error"));
            }
            if (IDCard_Front == null || IDCard_Front.AFile.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请上传身份证正面";
                return(View("Error"));
            }
            if (IDCard_Reverse == null || IDCard_Reverse.AFile.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请上传身份证反面";
                return(View("Error"));
            }
            if (IDCard_Hand == null || IDCard_Hand.AFile.IsNullOrEmpty())
            {
                ViewBag.ErrorMsg = "请上传手持身份证";
                return(View("Error"));
            }
            if (Certificate == null || Certificate.Count <= 0)
            {
                ViewBag.ErrorMsg = "请上传营业执照或其它证件";
                return(View("Error"));
            }
            //整理代理商信息
            SysAgent.AddTime = DateTime.Now;
            SysAgent.PayGet  = SysAgent.PayGet.IsNullOrEmpty() ? 0 : SysAgent.PayGet / 100;
            SysAgent.CashGet = 0;// SysAgent.CashGet.IsNullOrEmpty() ? 0 : SysAgent.CashGet / 100;
            SysAgent.LoanGet = SysAgent.LoanGet.IsNullOrEmpty() ? 0 : SysAgent.LoanGet / 100;
            SysAgent.Credit  = SysAgent.Credit.IsNullOrEmpty() ? 0 : SysAgent.Credit / 100;
            SysAgent.AdminId = 0;
            //SysAgent.AgentID = 0;//上级代理Id
            SysAgent.IsPromote     = 1; //默认开启
            SysAgent.PromoteGet    = 0; //默认为于推广用户返佣为0
            SysAgent.AgentLevelMax = 0;
            //SysAgent.Tier = 1;//系统开通出来的为第一级代理
            SysAgent.NoteDownload = "";
            SysAgent.AgentState   = 0; //默认为显示好付

            SysAgent.Cash0 = SysAgent.Cash0 / 1000;
            SysAgent.Cash1 = SysAgent.Cash1 / 1000;

            //处理推广代理佣金
            if (SysAgent.DaiLiGetType == 1)
            {
                SysAgent.DaiLiGet = SysAgent.DaiLiGet / 100;
            }

            //处理设置
            if (SysAgent.IsTeiPai != 1)
            {
                SysAgent.Set3 = 0;
                SysAgent.Set4 = 0;
            }


            Entity.SysAgent.AddObject(SysAgent);
            //先保存拿agentId
            Entity.SaveChanges();
            //保存销售记录为了取得id
            var salesLog = new SalesLog()
            {
                AddTime    = DateTime.Now,
                AgentFee   = SysAgent.AgentFee,
                ExpireTime = SysAgent.ExpireTime,
                State      = 1,
                AgentId    = SysAgent.Id,
                Salesman   = SysAgent.Salesman,
            };

            Entity.SalesLog.AddObject(salesLog);
            //再保存拿到logid
            Entity.SaveChanges();
            this.ProcessAttach(SysAgent, salesLog, Contract, IDCard_Front, IDCard_Reverse, IDCard_Hand, Certificate, DelIds);
            Entity.SaveChanges();
            //权限
            string Str = string.Empty;

            if (PId != null)
            {
                foreach (var p in PId)
                {
                    if (p != string.Empty)
                    {
                        Str += "," + p;
                    }
                }
                Str += ",";
            }

            //自动配置代理商的用户入网费率
            IList <PayConfig> PCList = Entity.PayConfig.Where(n => n.State == 1).ToList();

            foreach (var PC in PCList)
            {
                UserPayAgent UserPayAgent = new UserPayAgent();
                UserPayAgent.AId  = SysAgent.Id;
                UserPayAgent.PId  = PC.Id;
                UserPayAgent.Cost = (double)PC.CostUser;
                Entity.UserPayAgent.AddObject(UserPayAgent);
            }
            Entity.SaveChanges();

            //新添加这个里面会执行savecheng
            OpenOrBindUser(SysAgent.Id, Str);


            BaseRedirect();
            return(true);
        }