Exemple #1
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Id"></param>
        public ActionResult Delete(PayConfigChange PayConfigChange, string InfoList, int?IsDel)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = PayConfigChange.Id.ToString();
            }
            PayConfigChange = this.Entity.PayConfigChange.FirstOrNew(o => o.Id == PayConfigChange.Id);
            if (PayConfigChange == null)
            {
                ViewBag.ErrorMsg = AgentLanguage.Empty;
                return(View("Error"));
            }
            if (!IsBelongToAgent(PayConfigChange.AgentId.GetValueOrDefault()))
            {
                ViewBag.ErrorMsg = AgentLanguage.Surmount;
                return(View("Error"));
            }
            Hashtable DeleteHash = new Hashtable();

            DeleteHash.Add("PayConfigTemp", "PCCId");
            int Ret = Entity.MoveToDeleteEntity <PayConfigChange>(InfoList, IsDel, BasicAgent.Name, DeleteHash);

            Entity.SaveChanges();
            Response.Write(Ret);
            return(null);
        }
Exemple #2
0
        public void ChangeStatus(PayConfigChange PayConfigChange, string InfoList, string Clomn, string Value)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = PayConfigChange.Id.ToString();
            }
            int Ret = Entity.ChangeEntity <PayConfigChange>(InfoList, Clomn, Value);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
Exemple #3
0
        //
        // GET: /PayConfigChange/

        public ActionResult Index(PayConfigChange PayConfigChange, EFPagingInfo <PayConfigChange> p)
        {
            p.SqlWhere.Add(x => x.AgentId == BasicAgent.Id);
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <PayConfigChange> PayConfigChangeList = Entity.Selects <PayConfigChange>(p);

            ViewBag.AgentState          = BasicAgent.AgentState.HasValue ? BasicAgent.AgentState.Value.ToString() : "-1";
            ViewBag.PayConfigChangeList = PayConfigChangeList;
            ViewBag.PayConfigChange     = PayConfigChange;
            return(View());
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Id"></param>
        public void Delete(PayConfigChange PayConfigChange, string InfoList, int?IsDel)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = PayConfigChange.Id.ToString();
            }
            Hashtable DeleteHash = new Hashtable();

            DeleteHash.Add("PayConfigTemp", "PCCId");
            int Ret = Entity.MoveToDeleteEntity <PayConfigChange>(InfoList, IsDel, AdminUser.UserName, DeleteHash);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
 public ActionResult Edit(PayConfigChange PayConfigChange)
 {
     if (PayConfigChange.Id != 0)
     {
         PayConfigChange = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigChange.Id);
     }
     if (PayConfigChange == null)
     {
         ViewBag.ErrorMsg = "数据不存在";
         return(View("Error"));
     }
     ViewBag.PayConfigChange = PayConfigChange;
     ViewBag.PayConfigList   = Entity.PayConfig.Where(n => n.State == 1).ToList();
     if (Request.UrlReferrer != null)
     {
         Session["Url"] = Request.UrlReferrer.ToString();
     }
     return(View());
 }
 public void Add(PayConfigChange PayConfigChange, int[] PId, double[] Cost, int[] PState)
 {
     PayConfigChange.Cash0   = PayConfigChange.Cash0 / 1000;
     PayConfigChange.Cash1   = PayConfigChange.Cash1 / 1000;
     PayConfigChange.AgentId = 0;
     PayConfigChange.State   = 1;
     Entity.PayConfigChange.AddObject(PayConfigChange);
     Entity.SaveChanges();
     for (int i = 0; i < PId.Length; i++)
     {
         PayConfigTemp PCT = new PayConfigTemp();
         PCT.PCCId = PayConfigChange.Id;
         PCT.PId   = PId[i];
         PCT.Cost  = Cost[i] / 1000;
         PCT.State = (byte)PState[i];
         Entity.PayConfigTemp.AddObject(PCT);
     }
     Entity.SaveChanges();
     BaseRedirect();
 }
        public ActionResult Index(PayConfigChange PayConfigChange, EFPagingInfo <PayConfigChange> p, int AgentId = 0, int State = 99, int IsFirst = 0)
        {
            if (IsFirst == 0)
            {
                PageOfItems <PayConfigChange> PayConfigChangeList1 = new PageOfItems <PayConfigChange>(new List <PayConfigChange>(), 0, 10, 0, new Hashtable());
                IList <SysAgent> SysAgentList1 = Entity.SysAgent.Where(x => x.Tier == 1).ToList();
                ViewBag.AgentId             = AgentId;
                ViewBag.AgentState          = State;
                ViewBag.SysAgentList        = SysAgentList1;
                ViewBag.PayConfigChangeList = PayConfigChangeList1;
                ViewBag.PayConfigChange     = PayConfigChange;
                ViewBag.Add    = this.checkPower("Add");
                ViewBag.Edit   = this.checkPower("Edit");
                ViewBag.Delete = this.checkPower("Delete");
                ViewBag.Save   = this.checkPower("Save");
                return(View());
            }
            if (AgentId < 100001)
            {
                p.SqlWhere.Add(x => x.AgentId == AgentId);
            }
            if (State != 99)
            {
                p.SqlWhere.Add(x => x.State == State);
            }
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <PayConfigChange> PayConfigChangeList = Entity.Selects <PayConfigChange>(p);

            IList <SysAgent> SysAgentList = Entity.SysAgent.Where(x => x.Tier == 1).ToList();

            ViewBag.AgentId             = AgentId;
            ViewBag.AgentState          = State;
            ViewBag.SysAgentList        = SysAgentList;
            ViewBag.PayConfigChangeList = PayConfigChangeList;
            ViewBag.PayConfigChange     = PayConfigChange;
            ViewBag.Add    = this.checkPower("Add");
            ViewBag.Edit   = this.checkPower("Edit");
            ViewBag.Delete = this.checkPower("Delete");
            ViewBag.Save   = this.checkPower("Save");
            return(View());
        }
Exemple #8
0
        public ActionResult Edit(int Id = 0)
        {
            PayConfigChange PayConfigChange = null;

            if (!Id.IsNullOrEmpty())
            {
                PayConfigChange = Entity.PayConfigChange.FirstOrDefault(n => n.Id == Id && n.AgentId == this.BasicAgent.Id);
                if (PayConfigChange == null)
                {
                    ViewBag.ErrorMsg = "数据不存在";
                    return(View("Error"));
                }
                if (!IsBelongToAgent(PayConfigChange.AgentId.GetValueOrDefault()))
                {
                    ViewBag.ErrorMsg = AgentLanguage.Surmount;
                    return(View("Error"));
                }
            }
            else
            {
                PayConfigChange = new PayConfigChange();
            }
            //if (PayConfigChange.Id != 0) PayConfigChange = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigChange.Id);
            //if (!PayConfigChange.Id.IsNullOrEmpty())
            //{
            //    if (!IsBelongToAgent(PayConfigChange.AgentId.GetValueOrDefault()))
            //    {
            //        ViewBag.ErrorMsg = AgentLanguage.Surmount;
            //        return View("Error");
            //    }
            //}

            ViewBag.PayConfigChange = PayConfigChange;
            ViewBag.PayConfigList   = Entity.PayConfig.Where(n => n.State == 1).ToList();
            if (Request.UrlReferrer != null)
            {
                Session["Url"] = Request.UrlReferrer.ToString();
            }
            return(View());
        }
        public void Save(PayConfigChange PayConfigChange, int[] PId, double[] Cost, int[] PState)
        {
            PayConfigChange.Cash0 = PayConfigChange.Cash0 / 1000;
            PayConfigChange.Cash1 = PayConfigChange.Cash1 / 1000;
            PayConfigChange basePayConfigChange = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigChange.Id);

            basePayConfigChange = Request.ConvertRequestToModel <PayConfigChange>(basePayConfigChange, PayConfigChange);
            for (int i = 0; i < PId.Length; i++)
            {
                int           Pid = PId[i];
                PayConfigTemp PCT = Entity.PayConfigTemp.FirstOrNew(n => n.PCCId == basePayConfigChange.Id && n.PId == Pid);
                PCT.Cost  = Cost[i] / 1000;
                PCT.State = (byte)PState[i];
                if (PCT.Id.IsNullOrEmpty())
                {
                    PCT.PId   = PId[i];
                    PCT.PCCId = PayConfigChange.Id;
                    Entity.PayConfigTemp.AddObject(PCT);
                }
            }
            Entity.SaveChanges();
            BaseRedirect();
        }
        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("[UsersTrueNameByAPI]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            UserAuth UserAuth = new UserAuth();

            UserAuth = JsonToObject.ConvertJsonToModel(UserAuth, json);

            SysSet SysSet = this.Entity.SysSet.FirstOrNew();

            if (!UserAuth.IdentityCode.IsNullOrEmpty())
            {
                var y        = UserAuth.IdentityCode.Substring(6, 4);
                var m        = UserAuth.IdentityCode.Substring(10, 2);
                var d        = UserAuth.IdentityCode.Substring(12, 2);
                var birthday = new DateTime(int.Parse(y), int.Parse(m), int.Parse(d));
                var now      = DateTime.Now;
                int age      = now.Year - birthday.Year;
                if (now.Month < birthday.Month || (now.Month == birthday.Month && now.Day < birthday.Day))
                {
                    age--;
                }
                if (age > SysSet.AuthMaxAge || age < SysSet.AuthMinAge)
                {
                    DataObj.OutError("1104");
                    return;
                }
            }

            Users Users = new Users();

            Users = JsonToObject.ConvertJsonToModel(Users, json);

            UserTrack UserTrack = new UserTrack();

            UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json);

            if (UserAuth.Token.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            if (UserAuth.NeekName.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }

            string HaoFu_Auth_Open = ConfigurationManager.AppSettings["HaoFu_Auth_Open"].ToString();
            //SysSet SysSet = Entity.SysSet.FirstOrNew();

            byte CardItemNum  = 0;
            byte CardType     = 0;
            byte UsedCardType = 0;

            if (Equipment.RqType == "Apple")
            {
                CardItemNum = SysSet.IosSet10;
                if (SysSet.IosSet11 == 0)
                {
                    CardType = 0;
                }
                if (SysSet.IosSet11 == 1)
                {
                    CardType = 2;
                }
                if (SysSet.IosSet11 == 2)
                {
                    CardType = 1;
                }
            }
            else
            {
                CardItemNum = SysSet.ApkSet10;
                if (SysSet.ApkSet11 == 0)
                {
                    CardType = 0;
                }
                if (SysSet.ApkSet11 == 1)
                {
                    CardType = 2;
                }
                if (SysSet.ApkSet11 == 2)
                {
                    CardType = 1;
                }
            }
            if (HaoFu_Auth_Open != "true")
            {
                CardItemNum = 6;//兼容直连六要素接口
            }
            if (CardItemNum == 6)
            {
                if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty() || UserAuth.Mobile.IsNullOrEmpty() || UserAuth.CVV.IsNullOrEmpty() || UserAuth.EndDate.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                CardType = 2;//六要素一定是信用卡
            }
            else if (CardItemNum == 4)
            {
                if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty() || UserAuth.Mobile.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
            }
            else if (CardItemNum == 3)
            {
                if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
            }
            else
            {
                DataObj.OutError("1000");
                return;
            }
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == UserAuth.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)
            {
                DataObj.OutError("2003");
                return;
            }
            if (baseUsers.CardStae == 2)   //已实名认证
            {
                DataObj.OutError("2007");
                return;
            }
            int CardIdCount = Entity.Users.Count(n => n.CardId == UserAuth.IdentityCode && n.CardStae == 2);

            if (CardIdCount > 0) //身份证已用过
            {
                DataObj.OutError("2020");
                return;
            }
            //验证账号是否被限制
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == baseUsers.UserName && UBL.State == 1) != null)
            {
                //提示暂不支持您入网
                DataObj.OutError("2027");
                return;
            }
            //验证身份证是否被限制
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserAuth.IdentityCode && UBL.State == 2) != null)
            {
                //提示暂不支持您入网
                DataObj.OutError("2027");
                return;
            }
            //验证银行卡是否被限制
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserAuth.BankAccount && UBL.State == 3) != null)
            {
                //提示暂不支持您入网
                DataObj.OutError("2027");
                return;
            }
            //2016-10-07 非法关键词限制
            if (!SysSet.NoWord.IsNullOrEmpty())
            {
                string NeekName = Users.NeekName;
                NeekName = NeekName.Replace(" ", "").Replace(" ", "");
                string[] NoWord    = SysSet.NoWord.Split('|');
                bool     hasNoWord = false;
                string   noword    = "";
                foreach (var p in NoWord)
                {
                    if (NeekName.Contains(p))
                    {
                        hasNoWord = true;
                        noword    = p;
                        break;
                    }
                }
                if (hasNoWord)
                {
                    DataObj.Msg = "禁止使用关键词“" + noword + "”";
                    DataObj.OutError("2025");
                    return;
                }
            }

            //2016-09-30 限制重名提交
            Users tempUsers = Entity.Users.FirstOrDefault(n => n.NeekName == Users.NeekName && n.State == 1 && (n.CardStae == 2 || n.CardStae == 1));

            if (tempUsers != null)
            {
                DataObj.OutError("2024");
                return;
            }

            int Count = Entity.UserAuth.Count(n => n.UId == baseUsers.Id && n.IsCharge == 1);

            if (Count >= SysSet.AuthTimes)
            {
                DataObj.OutError("2022");
                return;
            }

            if (!UserAuth.EndDate.IsNullOrEmpty())
            {
                //处理年月问题传上来是MMYY
                //20151112调整成YYMM
                if (UserAuth.EndDate.Length == 4)
                {
                    string MM = UserAuth.EndDate.Substring(0, 2);
                    string YY = UserAuth.EndDate.Substring(2, 2);
                    UserAuth.EndDate = YY + MM;
                }
            }

            UserAuth.AddTime  = DateTime.Now;
            UserAuth.UId      = baseUsers.Id;
            UserAuth.IsCharge = 0;
            Entity.UserAuth.AddObject(UserAuth);
            Entity.SaveChanges();
            Entity.Refresh(RefreshMode.StoreWins, UserAuth);

            #region 贴牌配置
            int ApkSet3   = SysSet.ApkSet3;
            int IosSet3   = SysSet.IosSet3;
            var vSysAgent = Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent);
            if (vSysAgent == null)
            {
                DataObj.OutError("1000");
                return;
            }
            var topSysAgent = vSysAgent.GetTopAgent(Entity);
            if (topSysAgent != null && topSysAgent.IsTeiPai == 1)
            {
                ApkSet3 = topSysAgent.Set3;
                IosSet3 = topSysAgent.Set3;
            }
            #endregion

            #region 激活码逻辑
            Card Card        = null;
            bool IsCheckCard = false;
            //必填
            if ((ApkSet3 == 1 && this.Equipment.RqType == "Android") || (IosSet3 == 1 && this.Equipment.RqType == "Apple"))
            {
                IsCheckCard = true;
                if (UserAuth.CardNum.IsNullOrEmpty() || UserAuth.CardPWD.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
            }

            //选填
            if ((ApkSet3 == 3 && this.Equipment.RqType == "Android") || (IosSet3 == 3 && this.Equipment.RqType == "Apple"))
            {
                if (!UserAuth.CardNum.IsNullOrEmpty() && !UserAuth.CardPWD.IsNullOrEmpty())
                {
                    IsCheckCard = true;
                }
            }

            if (IsCheckCard)
            {
                Card = Entity.Card.FirstOrDefault(n => n.Code == UserAuth.CardNum && n.PasWd == UserAuth.CardPWD && n.Auto == 1);
                if (Card == null)
                {
                    DataObj.OutError("5001");
                    return;
                }
                if (Card.State != 1)
                {
                    string StateStr = string.Empty;
                    switch (Card.State)
                    {
                    case 2:
                        StateStr = "已授权";
                        break;

                    case 3:
                        StateStr = "已使用";
                        break;

                    case 0:
                        StateStr = "已失效";
                        break;
                    }

                    DataObj.Msg = "激活码" + StateStr;
                    DataObj.OutError("5001");
                    return;
                }
                if (Card.AId.IsNullOrEmpty())
                {
                    DataObj.OutError("5002");
                    return;
                }
                if (Card.AdminId.IsNullOrEmpty())
                {
                    DataObj.OutError("5002");
                    return;
                }
                Card.State        = 3;//使用中
                baseUsers.CardNum = Card.Code;
            }
            #endregion

            string ret_code = "";
            string ret_msg  = "";
            string isCharge = "";

            string CONTENT = "";

            #region 第三方接口查询
            if (HaoFu_Auth_Open == "true")
            {
                if (CardItemNum != 6)
                {
                    UsedCardType = GetCardType(UserAuth.BankAccount);
                    if (CardType == 1)//要求借记卡
                    {
                        if (UsedCardType != 1)
                        {
                            DataObj.OutError("2023");
                            Utils.WriteLog(CardType + "===" + UsedCardType + "无法查询的卡:" + UserAuth.BankAccount, "bankcard");
                            return;
                        }
                    }
                    if (CardType == 2)//要求信用卡
                    {
                        if (UsedCardType != 2)
                        {
                            DataObj.OutError("2023");
                            Utils.WriteLog(CardType + "===" + UsedCardType + "无法查询的卡:" + UserAuth.BankAccount, "bankcard");
                            return;
                        }
                    }
                }
                else
                {
                    UsedCardType = 2;
                }

                string HaoFu_Auth_MerId  = ConfigurationManager.AppSettings["HaoFu_Auth_MerId"].ToString();
                string HaoFu_Auth_MerKey = ConfigurationManager.AppSettings["HaoFu_Auth_MerKey"].ToString();
                string HaoFu_Auth_Url    = ConfigurationManager.AppSettings["HaoFu_Auth_Url"].ToString();

                string data       = "{\"action\":\"authuser\",\"merid\":\"" + HaoFu_Auth_MerId + "\",\"orderid\":\"" + UserAuth.OId + "\",\"bankaccount\":\"" + UserAuth.BankAccount + "\",\"accountname\":\"" + UserAuth.AccountName + "\",\"identitycode\":\"" + UserAuth.IdentityCode + "\",\"mobile\":\"" + UserAuth.Mobile + "\",\"cvv\":\"" + UserAuth.CVV + "\",\"enddate\":\"" + UserAuth.EndDate + "\"}";
                string DataBase64 = LokFuEncode.Base64Encode(data, "utf-8");
                string Sign       = (DataBase64 + HaoFu_Auth_MerKey).GetMD5();

                DataBase64 = HttpUtility.UrlEncode(DataBase64, Encoding.UTF8);
                string postdata = "req=" + DataBase64 + "&sign=" + Sign;

                CONTENT = Utils.PostRequest(HaoFu_Auth_Url, postdata, "utf-8");

                JObject JS = new JObject();
                try
                {
                    JS = (JObject)JsonConvert.DeserializeObject(CONTENT);
                }
                catch (Exception Ex)
                {
                    Log.Write("[UsersTrueNameByAPI]:", "【CONTENT】" + CONTENT, Ex);
                }
                if (JS == null)
                {
                    DataObj.OutError("2021");
                    return;
                }
                string resp = JS["resp"].ToString();
                CONTENT = LokFuEncode.Base64Decode(resp, "utf-8");
                try
                {
                    JS = (JObject)JsonConvert.DeserializeObject(CONTENT);
                }
                catch (Exception Ex)
                {
                    Log.Write("[UsersTrueNameByAPI]:", "【CONTENT2】" + CONTENT, Ex);
                }
                if (JS == null)
                {
                    DataObj.OutError("2021");
                    return;
                }
                ret_code = JS["respcode"].ToString();
                ret_msg  = JS["respmsg"].ToString();
                if (JS["ischarge"] != null)
                {
                    isCharge = JS["ischarge"].ToString();
                }
                if (isCharge == "1")
                {
                    UserAuth.IsCharge = 1;
                }
                else
                {
                    UserAuth.IsCharge = 0;
                }
            }
            #endregion

            #region 审核处理
            UserAuth.RetCode = ret_code;
            UserAuth.RetMsg  = ret_msg;
            UserAuth.RetLog  = CONTENT;

            baseUsers.TrueName = UserAuth.AccountName;
            baseUsers.NeekName = UserAuth.NeekName;
            baseUsers.CardId   = UserAuth.IdentityCode;

            baseUsers.CardFace = "";

            baseUsers.CardType = 1;
            if (UsedCardType == 2)
            {
                baseUsers.HasT0 = 1;
            }
            else
            {
                baseUsers.HasT0 = 0;
            }

            string Code = "0000";
            if (ret_code == "0000")
            {
                baseUsers.CardStae = 2;//直接审核通过
                //=======================================
                string GPSAddress = Users.RegAddress;
                if (GPSAddress.IsNullOrEmpty())
                {
                    GPSAddress = Utils.GetAddressByGPS(Users.X, Users.Y);
                }
                if (!GPSAddress.IsNullOrEmpty())
                {
                    baseUsers.RegAddress = GPSAddress;
                    baseUsers.X          = Users.X;
                    baseUsers.Y          = Users.Y;
                }
                //=======================================
                UserTrack.ENo        = DataObj.ENo;
                UserTrack.OPType     = "自动认证";
                UserTrack.GPSAddress = GPSAddress;
                UserTrack.GPSX       = Users.X;
                UserTrack.GPSY       = Users.Y;
                baseUsers.SeavGPSLog(UserTrack, Entity);
                //=======================================

                //20151125需要对有绑卡的用户验证是否是来源与推广,增加抽奖次数
                #region  人推广
                if (!baseUsers.MyPId.IsNullOrEmpty())
                {
                    if (baseUsers.ShareType == 2)
                    {
                        //支付通道升级推广
                        PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == baseUsers.PayConfigId && n.State == 1 && n.ShareNumber > 0);
                        if (PCC != null)
                        {
                            int count = Entity.Users.Count(n => n.CardStae == 2 && n.State == 1 && n.MyPId == baseUsers.MyPId && n.PayConfigId == baseUsers.PayConfigId && n.Id != baseUsers.Id);

                            count++;                      //这里统计会漏掉当前用户的,需要增加1个。

                            if (count == PCC.ShareNumber) //相等的那一次调整,避免超出了还一直调整
                            {
                                Users UP = Entity.Users.FirstOrDefault(n => n.Id == baseUsers.MyPId);
                                if (PCC.CState == 1)
                                {
                                    if (UP.Cash0 > PCC.Cash0)
                                    {
                                        UP.Cash0 = PCC.Cash0;
                                    }
                                    if (UP.ECash0 > PCC.ECash0)
                                    {
                                        UP.ECash0 = PCC.ECash0;
                                    }
                                }
                                if (PCC.EState == 1)
                                {
                                    if (UP.Cash1 > PCC.Cash1)
                                    {
                                        UP.Cash1 = PCC.Cash1;
                                    }
                                    if (UP.ECash1 > PCC.ECash1)
                                    {
                                        UP.ECash1 = PCC.ECash1;
                                    }
                                }
                                IList <UserPay> List = Entity.UserPay.Where(n => n.UId == baseUsers.MyPId).ToList();//获取用户配置
                                foreach (var p in List)
                                {
                                    PayConfigTemp PCT = Entity.PayConfigTemp.FirstOrDefault(n => n.PId == p.PId && n.PCCId == PCC.Id);
                                    //获取套餐配置
                                    if (PCT != null)
                                    {
                                        if (PCT.State == 1)
                                        {
                                            if (p.Cost > PCT.Cost)
                                            {
                                                p.Cost = PCT.Cost;
                                            }
                                        }
                                    }
                                }
                                string UserPayCashName = "UserPay_" + UP.Id.ToString() + "_" + Equipment.RqType;
                                CacheBuilder.EntityCache.Remove(UserPayCashName, null);
                                string PayConfigChangeCashName = "PayConfigChange_" + UP.Agent + "_" + UP.Id;
                                CacheBuilder.EntityCache.Remove(PayConfigChangeCashName, null);
                                //Utils.WriteLog("UserPayCashName:" + UserPayCashName + " PayConfigChangeCashName:" + PayConfigChangeCashName, "ClearCache");
                            }
                        }
                    }
                    if (baseUsers.ShareType == 1)
                    {
                        //增加推广抽奖次数
                        TurnUsers TurnUsers = Entity.TurnUsers.FirstOrNew(n => n.UId == baseUsers.MyPId);
                        if (!TurnUsers.Id.IsNullOrEmpty())
                        {
                            TurnUsers.Times++;
                        }
                    }
                    #region 分享统计数
                    //===================================增加分享统计数===================================
                    //获取用户所属各级分润配置
                    // IList<UserPromoteGet> UserPromoteGetList = Entity.UserPromoteGet.Where(n => n.AgentID == baseUsers.Agent).OrderBy(n => n.PromoteLevel).ToList();
                    int MaxLevel = SysSet.GlobaPromoteMaxLevel;
                    //获取用户各级关系,最大级不超过用户配置级数。返回数据包含当前用户,当前用户级数标识Tier为0
                    IList <Users> UsersList = baseUsers.GetUsersById(Entity, MaxLevel);
                    foreach (var U in UsersList.Where(n => n.Tier > 0))
                    {
                        ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(n => n.UId == U.Id && n.Tier == U.Tier);
                        if (ShareTotal == null)
                        {
                            ShareTotal          = new ShareTotal();
                            ShareTotal.UId      = U.Id;
                            ShareTotal.AddTime  = DateTime.Now;
                            ShareTotal.ShareNum = 1;
                            ShareTotal.Amount   = 0;
                            ShareTotal.Profit   = 0;
                            ShareTotal.Tier     = U.Tier;
                            Entity.ShareTotal.AddObject(ShareTotal);
                        }
                        else
                        {
                            ShareTotal.ShareNum += 1;
                        }
                        Entity.SaveChanges();
                    }
                    //===================================增加分享统计数 End===================================
                    #endregion
                }
                #endregion

                if (Card != null)
                {
                    //代理商信息
                    baseUsers.Agent = Card.AId;
                    baseUsers.AId   = Card.AdminId;
                    //推广信息
                    if (!Card.PUId.IsNullOrEmpty())
                    {
                        if (baseUsers.MyPId.IsNullOrEmpty())
                        {
                            //不是费率升级推广才有效
                            baseUsers.MyPId       = Card.PUId;
                            baseUsers.PayConfigId = 0;
                            baseUsers.ShareType   = 1;
                        }
                    }
                    Card.State = 2;
                }
            }
            else
            {
                Code = "2021";
                baseUsers.CardStae = 3;//审核失败
                baseUsers.CardNum  = "";
                if (Card != null)
                {
                    Card.State = 1;
                }
            }
            Entity.SaveChanges();
            #endregion
            DataObj.Data = UserAuth.OutJson();
            DataObj.Code = Code;
            DataObj.OutString();
        }
Exemple #11
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("[OrderPayConfig]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            PayConfigOrder PayConfigOrder = new PayConfigOrder();

            PayConfigOrder = JsonToObject.ConvertJsonToModel(PayConfigOrder, json);

            UserTrack UserTrack = new UserTrack();

            UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json);

            if (PayConfigOrder.PCCId.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            if (PayConfigOrder.X.IsNullOrEmpty() || PayConfigOrder.Y.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            //获取用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == PayConfigOrder.Token);

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

            //获取分支机构信息
            SysAgent SysAgent = new SysAgent();

            if (!baseUsers.Agent.IsNullOrEmpty())
            {
                SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent);
            }
            //获取系统配置
            //SysSet SysSet = Entity.SysSet.FirstOrDefault();

            PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigOrder.PCCId);

            if (PCC == null)
            {
                DataObj.OutError("1001");
                return;
            }

            PayConfigOrder.UId    = baseUsers.Id;
            PayConfigOrder.Agent  = baseUsers.Agent;
            PayConfigOrder.AId    = baseUsers.AId;
            PayConfigOrder.Amoney = PCC.BPrice.GetValueOrDefault();

            PayConfigOrder.OrderState = 1;
            PayConfigOrder.PayState   = 0;
            PayConfigOrder.AddTime    = DateTime.Now;
            //这里是利润计算==========
            //分支机构提成=产品价格-代理商价格
            decimal GetAll = PCC.BPrice.GetValueOrDefault() - PCC.CPrice.GetValueOrDefault();

            //利润舍位
            GetAll = GetAll.Floor();
            //总利润
            PayConfigOrder.AIdGet = (double)GetAll;
            //分支机构佣金设置为0,待分润计算后再写入
            PayConfigOrder.AgentGet = 0;

            PayConfigOrder.AgentState = 0;

            //这里暂时写0,等后面支付再重新计算
            PayConfigOrder.SysRate  = 0;
            PayConfigOrder.Poundage = PayConfigOrder.Amoney * (decimal)PayConfigOrder.SysRate;

            //写入订单总表
            Orders Orders = new Orders();

            Orders.UId   = PayConfigOrder.UId;
            Orders.TName = PCC.Title;

            Orders.PayType = 0;
            Orders.PayName = "升级费率";

            Orders.RUId     = 0;
            Orders.RName    = string.Empty;
            Orders.TType    = 6;
            Orders.TState   = 1;
            Orders.Amoney   = PayConfigOrder.Amoney;
            Orders.Poundage = PayConfigOrder.Poundage;
            Orders.AddTime  = DateTime.Now;
            Orders.PayState = 0;
            Orders.PayWay   = 0;

            Orders.Agent      = PayConfigOrder.Agent;
            Orders.AgentState = 0;
            Orders.AId        = PayConfigOrder.AId;
            Orders.FId        = 0;

            string OrderAddress = PayConfigOrder.OrderAddress;

            if (OrderAddress.IsNullOrEmpty())
            {
                OrderAddress = Utils.GetAddressByGPS(PayConfigOrder.X, PayConfigOrder.Y);
            }
            Orders.OrderAddress = OrderAddress;
            Orders.X            = PayConfigOrder.X;
            Orders.Y            = PayConfigOrder.Y;

            Entity.Orders.AddObject(Orders);
            Entity.SaveChanges();
            Entity.Refresh(RefreshMode.StoreWins, Orders);

            PayConfigOrder.OId = Orders.TNum;
            Entity.PayConfigOrder.AddObject(PayConfigOrder);
            Entity.SaveChanges();

            //=======================================
            UserTrack.ENo        = DataObj.ENo;
            UserTrack.OPType     = Orders.PayName;
            UserTrack.UserName   = Orders.TNum;
            UserTrack.GPSAddress = Orders.OrderAddress;
            UserTrack.GPSX       = Orders.X;
            UserTrack.GPSY       = Orders.Y;
            Orders.SeavGPSLog(UserTrack, Entity);
            //=======================================
            Orders.SendMsg(Entity);//发送消息类
            //=======================================
            Orders.Cols = "TNum,PayId,Amount,PayState";
            string TNum = Orders.TNum;
            string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8);

            Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign;
            //=======================================

            //获取最佳支付通道
            IList <PayConfig>  PayConfigList  = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList();
            IList <SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl
            IList <SysControl> SCList         = new List <SysControl>();
            IList <PayConfig>  PCList         = new List <PayConfig>();

            foreach (var p in SysControlList)
            {
                SysControl T = p.ChkState();
                if (T.State == 1)
                {
                    SCList.Add(p);
                }
            }
            foreach (var p in PayConfigList)
            {
                SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id);
                if (T != null)
                {
                    if (PayConfigOrder.Amoney >= (decimal)T.SNum && PayConfigOrder.Amoney <= (decimal)T.ENum)
                    {
                        PCList.Add(p);
                    }
                }
            }
            IList <PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList();
            IList <PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList();
            IList <PayConfig> WxList   = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList();
            IList <PayConfig> AliList  = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList();

            IList <PayConfig> List = new List <PayConfig>();

            if (CashList.Count > 0)
            {
                PayConfig Cash = new PayConfig();
                Cash.GroupType = "Cash";
                Cash.Name      = "余额支付";
                Cash.State     = 1;
                Cash.Cols      = "Name,GroupType,State";
                List.Add(Cash);
            }
            if (BankList.Count > 0)
            {
                PayConfig Bank = new PayConfig();
                Bank.GroupType = "Bank";
                Bank.Name      = "银联支付";
                Bank.State     = 1;
                Bank.Cols      = "Name,GroupType,State";
                List.Add(Bank);
            }
            //if (WxList.Count > 0)
            //{
            //    PayConfig Wx = new PayConfig();
            //    Wx.GroupType = "WeiXin";
            //    Wx.Name = "微信支付";
            //    Wx.State = 0;
            //    Wx.Cols = "Name,GroupType,State";
            //    List.Add(Wx);
            //}
            if (AliList.Count > 0)
            {
                PayConfig Ali = new PayConfig();
                Ali.GroupType = "AliPay";
                Ali.Name      = "支付宝支付";
                Ali.State     = 1;
                Ali.Cols      = "Name,GroupType,State";
                List.Add(Ali);
            }
            string PCString = List.EntityToJson();
            JArray PCJson   = (JArray)JsonConvert.DeserializeObject(PCString);

            Orders.PayConfig = PCJson;

            Orders.Cols += ",PayConfig";

            //Orders.paycon
            DataObj.Data = Orders.OutJson();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
Exemple #12
0
        public ActionResult Save(PayConfigChange PayConfigChange, int[] PId, double[] Cost, int[] PState)
        {
            bool Check = true;

            PayConfigChange.Cash0 = PayConfigChange.Cash0 / 1000;
            PayConfigChange.Cash1 = PayConfigChange.Cash1 / 1000;

            if (PayConfigChange.Cash0 < BasicSet.AgentCash0 || PayConfigChange.ECash0 < BasicSet.AgentECash0 || PayConfigChange.Cash1 < BasicSet.AgentCash1 || PayConfigChange.ECash1 < BasicSet.AgentECash1)
            {
                Check = false;
            }
            PayConfigChange BasePayConfigChange = this.Entity.PayConfigChange.FirstOrDefault(o => o.Id == PayConfigChange.Id);

            if (BasePayConfigChange == null)
            {
                ViewBag.ErrorMsg = AgentLanguage.Empty;
                return(View("Error"));
            }
            if (!IsBelongToAgent(BasePayConfigChange.AgentId.GetValueOrDefault()))
            {
                ViewBag.ErrorMsg = AgentLanguage.Surmount;
                return(View("Error"));
            }
            BasePayConfigChange = Request.ConvertRequestToModel <PayConfigChange>(BasePayConfigChange, PayConfigChange);

            if (!BasePayConfigChange.BPrice.IsNullOrEmpty())
            {
                BasePayConfigChange.CPrice = BasePayConfigChange.BPrice * BasicSet.PayConfigAgent;//代理商价格
                BasePayConfigChange.BPrice = BasePayConfigChange.BPrice + BasePayConfigChange.CPrice;
            }
            else
            {
                BasePayConfigChange.APrice = 0;
                BasePayConfigChange.BPrice = 0;
                BasePayConfigChange.CPrice = 0;
            }
            if (PayConfigChange.BPrice < 10)
            {
                Utils.WriteLog(PayConfigChange.AgentId + "|" + PayConfigChange.BPrice, "PayConfigChangeUserError");
                Response.Redirect("/Agent/home/error.html?msg=升级套餐需发布10元以上价格,否则无法完成支付~");
                return(null);
            }
            for (int i = 0; i < PId.Length; i++)
            {
                int       Pid  = PId[i];
                double    cost = Cost[i] / 1000;
                PayConfig PC   = Entity.PayConfig.FirstOrDefault(n => n.Id == Pid);
                if (PC == null)
                {
                    Check = false;
                }
                if (cost >= PC.CostAgent)
                {
                    PayConfigTemp PCT = Entity.PayConfigTemp.FirstOrNew(n => n.PCCId == BasePayConfigChange.Id && n.PId == Pid);
                    PCT.Cost  = Cost[i] / 1000;
                    PCT.State = (byte)PState[i];
                    if (PCT.Id.IsNullOrEmpty())
                    {
                        PCT.PId   = PId[i];
                        PCT.PCCId = PayConfigChange.Id;
                        Entity.PayConfigTemp.AddObject(PCT);
                    }
                }
                else
                {
                    Check = false;
                }
            }
            if (Check)
            {
                Entity.SaveChanges();
                BaseRedirect();
            }
            else
            {
                Response.Redirect("/Agent/home/error.html?msg=费率设置有误~");
            }
            return(null);
        }
Exemple #13
0
        public void Add(PayConfigChange PayConfigChange, int[] PId, double[] Cost, int[] PState)
        {
            bool Check = true;

            PayConfigChange.Cash0 = PayConfigChange.Cash0 / 1000;
            PayConfigChange.Cash1 = PayConfigChange.Cash1 / 1000;

            if (PayConfigChange.Cash0 < BasicSet.AgentCash0 || PayConfigChange.ECash0 < BasicSet.AgentECash0 || PayConfigChange.Cash1 < BasicSet.AgentCash1 || PayConfigChange.ECash1 < BasicSet.AgentECash1)
            {
                Check = false;
            }

            PayConfigChange.AgentId = BasicAgent.Id;
            PayConfigChange.State   = 1;

            if (!PayConfigChange.BPrice.IsNullOrEmpty())
            {
                PayConfigChange.CPrice = (PayConfigChange.BPrice.Value * BasicSet.PayConfigAgent).Ceiling();//代理商价格
                PayConfigChange.BPrice = (PayConfigChange.BPrice.Value + PayConfigChange.CPrice.Value).Ceiling();
            }
            else
            {
                PayConfigChange.APrice = 0;
                PayConfigChange.BPrice = 0;
                PayConfigChange.CPrice = 0;
            }
            if (PayConfigChange.BPrice < 10)
            {
                Utils.WriteLog(PayConfigChange.AgentId + "|" + PayConfigChange.BPrice, "PayConfigChangeUserError");
                Response.Redirect("/Agent/home/error.html?msg=升级套餐需发布10元以上价格,否则无法完成支付~");
                return;
            }
            Entity.PayConfigChange.AddObject(PayConfigChange);
            if (Check)
            {
                Entity.SaveChanges();
            }
            else
            {
                Response.Redirect("/Agent/home/error.html?msg=费率设置有误~");
                return;
            }

            for (int i = 0; i < PId.Length; i++)
            {
                int       Pid  = PId[i];
                double    cost = Cost[i] / 1000;
                PayConfig PC   = Entity.PayConfig.FirstOrDefault(n => n.Id == Pid);
                if (PC == null)
                {
                    Check = false;
                }
                if (cost >= PC.CostAgent)
                {
                    PayConfigTemp PCT = new PayConfigTemp();
                    PCT.PCCId = PayConfigChange.Id;
                    PCT.PId   = Pid;
                    PCT.Cost  = cost;
                    PCT.State = (byte)PState[i];
                    Entity.PayConfigTemp.AddObject(PCT);
                }
                else
                {
                    Check = false;
                }
            }
            if (Check)
            {
                Entity.SaveChanges();
                BaseRedirect();
            }
            else
            {
                //Entity.PayConfigChange.DeleteObject(PayConfigChange);
                Entity.DeleteObject(PayConfigChange);
                Entity.SaveChanges();
                Response.Redirect("/Agent/home/error.html?msg=费率设置有误~");
            }
        }
Exemple #14
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("[MyUsers]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            //JObject pp = (JObject)p;
            Users Users = new Users();

            Users = JsonToObject.ConvertJsonToModel(Users, json);
            if (Users.Token.IsNullOrEmpty() || Users.ShareType.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            PayConfigChange PayConfigChange = new PayConfigChange();

            PayConfigChange.Title   = "分润";
            PayConfigChange.ShowTip = "";

            if (Users.ShareType == 2)
            {
                if (!Users.PayConfigId.IsNullOrEmpty())
                {
                    PayConfigChange = Entity.PayConfigChange.FirstOrDefault(n => n.Id == Users.PayConfigId);
                    if (PayConfigChange == null)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                }
            }
            Users baseUsers = null;

            if (Users.Token.IndexOf("Print|") == -1)
            {
                baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Users.Token);
            }
            else
            {
                baseUsers = Entity.Users.FirstOrDefault(n => n.PrintToken == Users.Token);
            }
            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)
            {
                DataObj.OutError("2003");
                return;
            }
            IList <Users> UsersList = new List <Users>();

            if (Users.ShareType == 2)
            {
                if (Users.PayConfigId.IsNullOrEmpty())
                {
                    UsersList = Entity.Users.Where(n => n.MyPId == baseUsers.Id && n.State == 1 && n.ShareType == Users.ShareType).OrderByDescending(o => o.Id).ToList();
                }
                else
                {
                    UsersList = Entity.Users.Where(n => n.MyPId == baseUsers.Id && n.State == 1 && n.ShareType == Users.ShareType && n.PayConfigId == Users.PayConfigId).OrderByDescending(o => o.Id).ToList();
                }
            }
            else
            {
                UsersList = Entity.Users.Where(n => n.MyPId == baseUsers.Id && n.State == 1 && n.ShareType == Users.ShareType).OrderByDescending(o => o.Id).ToList();
            }

            foreach (var p in UsersList)
            {
                p.Cols       = "UserName,AddTime,State,CardRemark,Code,ShareType";
                p.CardRemark = PayConfigChange.Title;
                p.Code       = PayConfigChange.ShowTip;
                if (p.CardStae == 2)
                {
                    p.State = 1;
                }
                else
                {
                    p.State = 0;
                }
            }
            DataObj.Data = UsersList.EntityToJson();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
Exemple #15
0
        public void Save(Users Users)
        {
            if (Users.UserName.IsNullOrEmpty() || Users.PassWord.IsNullOrEmpty() || Users.Code.IsNullOrEmpty())
            {
                Response.Write("0");
                return;
            }
            //验证是否重复
            Users Old = Entity.Users.FirstOrDefault(n => n.UserName == Users.UserName);

            if (Old != null)
            {
                Response.Write("1");
                return;
            }
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == Users.UserName && UBL.State == 1) != null)
            {
                Response.Write("6");
                return;
            }
            //手机验证码
            //失效之前获取验证码
            SMSCode SMSCode = Entity.SMSCode.OrderByDescending(n => n.Id).FirstOrDefault(n => n.UId == 0 && n.Mobile == Users.UserName && n.CType == 1 && n.Code == Users.Code);

            if (SMSCode == null)
            {
                Response.Write("2");
                return;
            }
            SysSet SysSet = Entity.SysSet.FirstOrNew();

            if (SMSCode.State != 1)
            {
                Response.Write("3");
                return;
            }
            if (SMSCode.AddTime.AddMinutes(SysSet.SMSActives) < DateTime.Now)
            {
                Response.Write("4");
                return;
            }
            Users.Agent = 1; //默认指定
            Users.AId   = 2; //默认指定
            if (!Users.MyPId.IsNullOrEmpty())
            {
                Users U = Entity.Users.FirstOrDefault(n => n.Id == Users.MyPId && n.State == 1);
                if (U == null)
                {
                    Users.MyPId = 0;
                    Utils.WriteLog("Users.MyPId=" + Users.MyPId + "Is Null!", "UsersRegAgent" + DateTime.Now.ToString("yyyy-MM-dd"));
                }
                else
                {
                    Users.Agent = U.Agent; //默认指定
                    Users.AId   = U.AId;   //默认指定
                }
            }
            else
            {
                Users.MyPId = 0;
            }
            if (!Users.PayConfigId.IsNullOrEmpty())
            {
                PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == Users.PayConfigId && n.State == 1 && n.ShareNumber > 0);
                if (PCC == null)
                {
                    Users.PayConfigId = 0;
                }
                Users.ShareType = 2;
            }
            else
            {
                Users.PayConfigId = 0;
            }
            if (Users.ShareType == 2)
            {
                if (Users.PayConfigId.IsNullOrEmpty() || Users.MyPId.IsNullOrEmpty())
                {
                    //Users.MyPId = 0;
                    Users.PayConfigId = 0;
                }
            }
            else
            {
                if (Users.MyPId.IsNullOrEmpty())
                {
                    Users.MyPId = 0;
                }
                Users.PayConfigId = 0;
            }
            if (Users.MyPId == 0)
            {
                Response.Write("5");
                return;
            }

            Users.PassWord   = Users.PassWord.GetMD5();
            Users.Mobile     = Users.UserName;
            Users.EmailState = 0;
            Users.CardStae   = 0;
            Users.State      = 0;
            Users.Amount     = 0;
            Users.Frozen     = 0;
            Users.AddTime    = DateTime.Now;
            Users.PayPwd     = "";
            //Users.Agent = 1;//默认指定
            //Users.AId = 2;//默认指定
            Users.MobileState = 2;
            Users.RegAddress  = "网页注册," + Utils.GetAddressAndIp();
            Users.X           = "0";
            Users.Y           = "0";
            Entity.Users.AddObject(Users);
            Entity.SaveChanges();
            //=======================================
            UserTrack UserTrack = new UserTrack();

            UserTrack.ENo        = string.Empty;
            UserTrack.OPType     = "网页注册";
            UserTrack.IfYY       = string.Empty;
            UserTrack.EqMobile   = string.Empty;
            UserTrack.SysVer     = Utils.GetCustomOS();      //操作系统版本
            UserTrack.SoftVer    = Utils.GetCustomBrowser(); //软件版本
            UserTrack.SignalType = string.Empty;
            UserTrack.GPSAddress = string.Empty;
            UserTrack.GPSX       = "0";
            UserTrack.GPSY       = "0";
            Users.SeavGPSLog(UserTrack, Entity);
            //=======================================
            SMSCode.State = 2;
            SMSCode.UId   = Users.Id;
            Entity.SaveChanges();
            //自动开通
            //IList<PayConfig> PCList = Entity.PayConfig.Where(n => n.State == 1).ToList();
            //foreach (var PC in PCList)
            //{
            //    UserPay UserPay = new UserPay();
            //    UserPay.UId = Users.Id;
            //    UserPay.PId = PC.Id;
            //    UserPay.Cost = (double)PC.CostUser;
            //    Entity.UserPay.AddObject(UserPay);
            //}

            SysAgent SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == Users.Agent && n.State == 1);

            if (SysAgent == null)
            {
                Utils.WriteLog("Users.Id=" + Users.Id + "Read Agent Null Users.Agent=" + Users.Agent + "!", "UsersRegAgent" + DateTime.Now.ToString("yyyy-MM-dd"));
                SysAgent    = Entity.SysAgent.FirstOrDefault(n => n.Id == 1 && n.State == 1);
                Users.Agent = SysAgent.Id;
                Users.AId   = SysAgent.AdminId.GetValueOrDefault();
            }
            //使用代理配置
            IList <UserPayAgent> UPAList = Entity.UserPayAgent.Where(n => n.AId == SysAgent.Id).OrderBy(n => n.PId).ToList();

            foreach (var p in UPAList)
            {
                UserPay UserPay = new UserPay();
                UserPay.UId  = Users.Id;
                UserPay.PId  = p.PId;
                UserPay.Cost = p.Cost;
                Entity.UserPay.AddObject(UserPay);
            }

            //SysSet Sys = Entity.SysSet.FirstOrDefault();
            //Users.Cash0 = Sys.Cash0;
            //Users.ECash0 = Sys.ECash0;
            //Users.Cash1 = Sys.Cash1;
            //Users.ECash1 = Sys.ECash1;

            //使用代理配置
            Users.Cash0  = SysAgent.Cash0;
            Users.Cash1  = SysAgent.Cash1;
            Users.ECash0 = SysAgent.ECash0;
            Users.ECash1 = SysAgent.ECash1;

            Users.State = 1;
            Entity.SaveChanges();
            //自动开通End
            Response.Write("OK");
        }
        public void Save(Users Users)
        {
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Id == Users.Id);

            baseUsers          = Request.ConvertRequestToModel <Users>(baseUsers, Users);
            baseUsers.CardType = 0;

            //审核通过
            Card Card = null;

            if (!baseUsers.CardNum.IsNullOrEmpty())
            {
                Card = this.Entity.Card.Where(o => o.Code == baseUsers.CardNum && o.State == 3 && o.Auto == 1).FirstOrDefault();
            }
            if (baseUsers.CardStae == 2)
            {
                #region 推广人处理
                if (!baseUsers.MyPId.IsNullOrEmpty())
                {
                    #region 分享
                    if (baseUsers.ShareType == 2)
                    {
                        //支付通道升级推广
                        PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == baseUsers.PayConfigId && n.State == 1 && n.ShareNumber > 0);
                        if (PCC != null)
                        {
                            //仅统计降费率的人数
                            int count = Entity.Users.Count(n => n.CardStae == 2 && n.State == 1 && n.MyPId == baseUsers.MyPId && n.PayConfigId == baseUsers.PayConfigId && n.ShareType == 2);
                            count++;                                                                  //这里统计会漏掉当前用户的,需要增加1个。
                            if (count == PCC.ShareNumber)
                            {                                                                         //相等的那一次调整,避免超出了还一直调整
                                Users UP = Entity.Users.FirstOrDefault(n => n.Id == baseUsers.MyPId); //读取分享人,不能加ShareType
                                if (PCC.CState == 1)
                                {
                                    if (UP.Cash0 > PCC.Cash0)
                                    {
                                        UP.Cash0 = PCC.Cash0;
                                    }
                                    if (UP.ECash0 > PCC.ECash0)
                                    {
                                        UP.ECash0 = PCC.ECash0;
                                    }
                                }
                                if (PCC.EState == 1)
                                {
                                    if (UP.Cash1 > PCC.Cash1)
                                    {
                                        UP.Cash1 = PCC.Cash1;
                                    }
                                    if (UP.ECash1 > PCC.ECash1)
                                    {
                                        UP.ECash1 = PCC.ECash1;
                                    }
                                }
                                IList <UserPay> List = Entity.UserPay.Where(n => n.UId == UP.Id).ToList();//获取用户配置
                                foreach (var p in List)
                                {
                                    PayConfigTemp PCT = Entity.PayConfigTemp.FirstOrDefault(n => n.PId == p.PId && n.PCCId == PCC.Id);
                                    //获取套餐配置
                                    if (PCT != null)
                                    {
                                        if (PCT.State == 1)
                                        {
                                            if (p.Cost > PCT.Cost)
                                            {
                                                p.Cost = PCT.Cost;
                                            }
                                        }
                                    }
                                }
                                UP.ClearCache(this.Entity);
                            }
                        }
                    }
                    if (baseUsers.ShareType == 1)
                    {
                        //增加推广抽奖次数
                        TurnUsers TurnUsers = Entity.TurnUsers.FirstOrNew(n => n.UId == baseUsers.MyPId);
                        if (!TurnUsers.Id.IsNullOrEmpty())
                        {
                            TurnUsers.Times++;
                        }
                    }
                    #endregion

                    #region 分享统计
                    //===================================增加分享统计数===================================
                    //获取用户所属各级分润配置
                    IList <UserPromoteGet> UserPromoteGetList = Entity.UserPromoteGet.Where(n => n.AgentID == baseUsers.Agent).OrderBy(n => n.PromoteLevel).ToList();
                    int MaxLevel = UserPromoteGetList.Count();
                    //获取用户各级关系,最大级不超过用户配置级数。返回数据包含当前用户,当前用户级数标识Tier为0
                    IList <Users> UsersList = baseUsers.GetUsersById(Entity, MaxLevel);
                    foreach (var U in UsersList.Where(n => n.Tier > 0))
                    {
                        ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(n => n.UId == U.Id && n.Tier == U.Tier);
                        if (ShareTotal == null)
                        {
                            ShareTotal          = new ShareTotal();
                            ShareTotal.UId      = U.Id;
                            ShareTotal.AddTime  = DateTime.Now;
                            ShareTotal.ShareNum = 1;
                            ShareTotal.Amount   = 0;
                            ShareTotal.Profit   = 0;
                            ShareTotal.Tier     = U.Tier;
                            Entity.ShareTotal.AddObject(ShareTotal);
                        }
                        else
                        {
                            ShareTotal.ShareNum += 1;
                        }
                        Entity.SaveChanges();
                    }
                    //===================================增加分享统计数 End===================================
                    #endregion
                }
                #endregion

                #region 激活码处理
                if (Card != null)
                {
                    //代理商信息
                    baseUsers.Agent = Card.AId;
                    baseUsers.AId   = Card.AdminId;
                    //推广信息
                    if (!Card.PUId.IsNullOrEmpty())
                    {
                        if (baseUsers.MyPId.IsNullOrEmpty())
                        {//不是费率升级推广才有效
                            baseUsers.MyPId       = Card.PUId;
                            baseUsers.PayConfigId = 0;
                            baseUsers.ShareType   = 1;
                        }
                    }
                    Card.State = 2;
                }
                #endregion
            }
            else//审核失败
            {
                baseUsers.CardNum = "";
                if (Card != null)
                {
                    Card.State = 1;
                }
            }
            Entity.SaveChanges();
            baseUsers.PushMsg();//推送消息
            BaseRedirect();
        }