Esempio n. 1
0
        public void Batch(int agengtid, string InfoList, int Value)
        {
            SysAgent tempAgent = Entity.SysAgent.FirstOrNew(o => o.Id == Value);    //调入商户
            SysAgent Agengt    = Entity.SysAgent.FirstOrNew(o => o.Id == agengtid); //调出商户

            if (tempAgent == null || Agengt == null)
            {
                Response.Write(0);
            }
            int Ret = 0;

            //string SQL = "update SysAgent set agentid='" + Value + "' where id in("+InfoList+")";
            //Ret = Entity.ExecuteStoreCommand(SQL);
            string[] users = InfoList.Split(',');

            //调入记录
            foreach (var info in users)
            {
                int   temp  = int.Parse(info);
                Users Users = Entity.Users.FirstOrDefault(o => o.Id == temp);
                if (Users != null)
                {
                    UsersMoveLog UsersMoveLog = new UsersMoveLog()
                    {
                        AddTime   = DateTime.Now,
                        ToSAId    = tempAgent.Id,
                        ToName    = tempAgent.Name,
                        FromName  = Agengt.Name,
                        FromSAId  = Agengt.Id,
                        UId       = Users.Id,
                        UTrueName = Users.TrueName.IsNullOrEmpty()?"":Users.TrueName,
                        OpName    = AdminUser.TrueName,
                        Type      = 1,
                        Tel       = Users.UserName,
                    };
                    if (!Users.MyPId.IsNullOrEmpty())
                    {
                        ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(o => o.UId == Users.MyPId && o.Tier == 1);
                        if (ShareTotal != null)
                        {
                            ShareTotal.ShareNum = ShareTotal.ShareNum - 1;
                        }
                    }
                    Users.MyPId = 0;
                    Users.Agent = Value;
                    this.Entity.UsersMoveLog.AddObject(UsersMoveLog);
                }
            }

            Entity.SaveChanges();
            Response.Write(Ret);
        }
Esempio n. 2
0
        public void AllUsers(int agengtid, int Value)
        {
            SysAgent tempAgent = Entity.SysAgent.FirstOrNew(o => o.Id == Value);    //调入商户
            SysAgent Agengt    = Entity.SysAgent.FirstOrNew(o => o.Id == agengtid); //调出商户

            if (tempAgent == null || Agengt == null)
            {
                Response.Write(0);
            }
            int           Ret       = 0;
            IList <Users> UsersList = Entity.Users.Where(o => o.Agent == agengtid && o.UserName != Agengt.LinkMobile).ToList();

            //调入记录
            foreach (var info in UsersList)
            {
                UsersMoveLog UsersMoveLog = new UsersMoveLog()
                {
                    AddTime   = DateTime.Now,
                    ToSAId    = tempAgent.Id,
                    ToName    = tempAgent.Name,
                    FromName  = Agengt.Name,
                    FromSAId  = Agengt.Id,
                    UId       = info.Id,
                    UTrueName = info.TrueName.IsNullOrEmpty() ? "" : info.TrueName,
                    OpName    = AdminUser.TrueName,
                    Type      = 1,
                    Tel       = info.UserName,
                };
                if (!info.MyPId.IsNullOrEmpty())
                {
                    ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(o => o.UId == info.MyPId && o.Tier == 1);
                    if (ShareTotal != null)
                    {
                        ShareTotal.ShareNum = ShareTotal.ShareNum - 1;
                    }
                }
                info.MyPId = 0;
                info.Agent = Value;
                this.Entity.UsersMoveLog.AddObject(UsersMoveLog);
            }
            Entity.SaveChanges();
            Response.Write(Ret);
        }
        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();
        }
        public ActionResult UsersMove(Users users)
        {
            #region 校验
            Users Users = this.Entity.Users.Where(o => o.UserName == users.UserName.Trim() && o.TrueName == users.TrueName.Trim() && o.CardId == users.CardId.Trim()).FirstOrDefault();
            if (Users == null)
            {
                ViewBag.ErrorMsg = "用户不存在";
                return(View("Error"));
            }
            if (Users.CardStae != 2)
            {
                ViewBag.ErrorMsg = "用户未实名认证";
                return(View("Error"));
            }
            if (Users.SAId != 0)
            {
                ViewBag.ErrorMsg = "此商户不可调入";
                return(View("Error"));
            }
            if (Users.Agent == this.BasicAgent.Id)
            {
                ViewBag.ErrorMsg = "用户:" + Users.UserName + " ,已经是你的商户,无需调入";
                return(View("Error"));
            }
            UserCard UserCard = this.Entity.UserCard.FirstOrDefault(o => o.UId == Users.Id && o.Card == users.CardNum.Trim() && o.Type == 1 && o.State == 1);
            if (UserCard == null)
            {
                ViewBag.ErrorMsg = "借记卡卡号不正确";
                return(View("Error"));
            }

            var FSysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == Users.Agent);
            if (FSysAgent == null)
            {
                ViewBag.ErrorMsg = "所属代理不存在";
                return(View("Error"));
            }
            #endregion
            //处理下级用户
            var sonUsers = this.Entity.Users.Where(o => o.MyPId == Users.Id).ToList();
            foreach (var item in sonUsers)
            {
                //新增分享记录减少
                if (!item.MyPId.IsNullOrEmpty())
                {
                    ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(o => o.UId == item.MyPId && o.Tier == 1);
                    if (ShareTotal != null)
                    {
                        ShareTotal.ShareNum = ShareTotal.ShareNum - 1;
                    }
                }
                item.MyPId = 0;
            }

            int Agent = 0;

            //处理调入用户
            Agent = Users.Agent;
            if (!Users.MyPId.IsNullOrEmpty())
            {
                ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(o => o.UId == Users.MyPId && o.Tier == 1);
                if (ShareTotal != null)
                {
                    ShareTotal.ShareNum = ShareTotal.ShareNum - 1;
                }
            }
            Users.MyPId = 0;
            Users.Agent = this.BasicAgent.Id;
            Users.AId   = this.AdminUser.Id;

            //调入记录
            UsersMoveLog UsersMoveLog = new UsersMoveLog()
            {
                AddTime   = DateTime.Now,
                ToSAId    = this.BasicAgent.Id,
                ToName    = this.BasicAgent.Name,
                FromName  = FSysAgent.Name,
                FromSAId  = Agent,
                UId       = Users.Id,
                UTrueName = users.TrueName ?? users.UserName,
                OpName    = this.BasicAgent.Name,
                Type      = 1,
                Tel       = users.UserName,
            };
            this.Entity.UsersMoveLog.AddObject(UsersMoveLog);

            this.Entity.SaveChanges();
            ViewBag.Title = "操作成功";
            ViewBag.Msg   = string.Format("商户:{0},已经成功调入!!", Users.UserName);
            return(View("Succeed"));
        }
Esempio n. 5
0
        public void Post()
        {
            string Data = DataObj.GetData();

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

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

            ShareTotal = JsonToObject.ConvertJsonToModel(ShareTotal, json);

            //获取用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == ShareTotal.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;
            }

            IList <ShareTotal> STList = new List <ShareTotal>();
            SysSet             SysSet = Entity.SysSet.FirstOrNew();

            for (byte i = 1; i <= SysSet.GlobaPromoteMaxLevel; i++)
            {
                ShareTotal st = Entity.ShareTotal.FirstOrDefault(n => n.UId == baseUsers.Id && n.Tier == i);
                if (st == null)
                {
                    st          = new ShareTotal();
                    st.ShareNum = 0;
                    st.Amount   = 0;
                    st.Profit   = 0;
                    st.Tier     = i;
                }
                STList.Add(st);
            }
            STList = STList.OrderBy(n => n.Tier).ToList();
            //计算总的
            int     ShareNum = 0;
            decimal Amount = 0, Profit = 0;

            foreach (var p in STList)
            {
                ShareNum += p.ShareNum;
                Amount   += p.Amount;
                Profit   += p.Profit;
            }

            decimal  Today     = 0;
            decimal  Yesterday = 0;
            DateTime tdate     = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            DateTime ldate     = tdate.AddDays(-1);

            Today     = Entity.OrderProfitLog.Where(n => n.UId == baseUsers.Id && n.LogType == 1 && n.AddTime > tdate).Sum(n => (decimal?)n.Profit) ?? 0m;
            Yesterday = Entity.OrderProfitLog.Where(n => n.UId == baseUsers.Id && n.LogType == 1 && n.AddTime > ldate && n.AddTime < tdate).Sum(n => (decimal?)n.Profit) ?? 0m;

            //增加汇总行
            ShareTotal ST = new ShareTotal();

            ST.ShareNum = ShareNum;
            ST.Amount   = Amount;
            ST.Profit   = Profit;
            ST.Tier     = 0;

            ST.Total     = Profit;
            ST.Today     = Today;
            ST.Yesterday = Yesterday;


            //判断是否为代理商
            //SysAgent SysAgent = Entity.SysAgent.FirstOrDefault(o => o.LinkMobile == baseUsers.UserName && o.State == 1);
            //if (SysAgent != null)
            //{
            //    ST.UserType = 2;
            //}
            //if (ST.UserType == 1)
            //{
            //    ST.UserTotal = Entity.Users.Where(o => o.MyPId == baseUsers.Id).Count();
            //}
            //if (ST.UserType == 2)
            //{
            //    ST.UserTotal = Entity.Users.Where(o => o.Agent == SysAgent.Id && o.Id != baseUsers.Id).Count();
            //}

            string STStr = STList.EntityToJson();

            JArray JS = new JArray();

            try
            {
                JS = (JArray)JsonConvert.DeserializeObject(STStr);
            }
            catch (Exception Ex)
            {
                Log.Write("[ShareTotal2]:", "【STStr】" + STStr, Ex);
            }
            if (JS == null)
            {
                DataObj.OutError("1000");
                return;
            }

            ST.Json = JS;
            ST.Cols = "Total,Today,Yesterday,Json,UserType,UserTotal";
            //STList.Add(ST);
            DataObj.Data = ST.OutJson();

            DataObj.Code = "0000";
            DataObj.OutString();
        }
        /// <summary>
        /// 订单分润/分润退款
        /// </summary>
        /// <param name="O"></param>
        /// <param name="Entity"></param>
        /// <param name="Type">1分润入帐 2分润退款</param>
        /// <returns></returns>
        public static FastOrder PayAgent(this FastOrder O, LokFuEntity Entity, int Type)
        {
            FastConfig FastConfig = Entity.FastConfig.FirstOrNew();

            if (FastConfig.AgentWay != 1)
            {
                return(O);
            }
            if (O.Agent.IsNullOrEmpty())
            {//代理商没有情况下
                return(O);
            }
            //if (O.AgentPayGet.IsNullOrEmpty())
            //{
            //    //没有佣金
            //    //直接标识为已结算
            //    O.AgentState = 1;
            //    O.AgentTime = DateTime.Now;
            //    Entity.SaveChanges();
            //    return O;
            //}
            if (Type != 1)//类型不对
            {
                return(O);
            }
            Users OrderUser = Entity.Users.FirstOrDefault(n => n.Id == O.UId);//读取订单用户

            if (Type == 1)
            {
                string TypeString = "收付直通车";
                #region 结算
                if (O.AgentState != 0)
                {//已结算,不能重复结算
                    return(O);
                }
                O.AgentState = 1;
                O.AgentTime  = DateTime.Now;
                Entity.SaveChanges();
                //获取各级代理商
                SysAgent SysAgent = new SysAgent();
                SysAgent.Id = O.Agent;
                IList <SysAgent> SysAgentList = SysAgent.GetAgentsById(Entity);
                decimal          AIdPayGet    = (decimal)O.AgentPayGet; //
                decimal          sumpayget    = 0;
                int tier = 1;
                foreach (var p in SysAgentList)
                {
                    if (p.State == 1)
                    {
                        decimal PayGet = SysAgent.GetSplit(p.Tier, Entity);
                        AIdPayGet = O.Amoney * PayGet; //当前级总佣金,需获取是否有下级拆分他的佣金
                        AIdPayGet = AIdPayGet.Floor();
                        decimal AIdPayGetNext = 0;     //定义下一级佣金
                        if (tier < SysAgentList.Count)
                        {
                            //不是最后一级,需计算下级拆分金额
                            SysAgent SysAgentNext = SysAgentList.Skip(tier).Take(1).FirstOrDefault();
                            if (SysAgentNext != null)
                            {
                                if (SysAgentNext.State == 1)
                                {//下级状态有效时才计算,如关闭了则不正计算下级
                                    decimal PayGetNext = SysAgent.GetSplit(SysAgentNext.Tier, Entity);
                                    AIdPayGetNext = O.Amoney * PayGetNext;
                                    AIdPayGetNext = AIdPayGetNext.Floor();
                                }
                            }
                        }
                        decimal AIdPayGetMy = AIdPayGet - AIdPayGetNext; //当前级所能得到真实佣金

                        decimal UsersGetAll = 0;                         //定义所有用户佣金
                        //最后一级代理商 处理用户分润
                        #region 最后一级代理商 处理用户分润
                        if (tier == SysAgentList.Count)
                        {
                            //获取各级分润配置
                            SysSet SysSet   = Entity.SysSet.FirstOrNew();
                            int    MaxLevel = SysSet.GlobaPromoteMaxLevel;
                            //有用户分润,开始执行用户分润
                            Users Users = new Users();
                            Users.Id = O.UId;
                            //获取用户各级关系,最大级不超过用户配置级数。返回数据包含当前用户,当前用户级数标识Tier为0
                            IList <Users> UsersList = Users.GetUsersById(Entity, MaxLevel);
                            int           UsersTier = 1;
                            foreach (var U in UsersList.Where(n => n.Tier > 0 && n.State == 1))
                            {
                                //UsersGetAll
                                //UserPromoteGet UserPromoteGet = UserPromoteGetList.FirstOrDefault(n => n.PromoteLevel == U.Tier);
                                //if (UserPromoteGet != null)
                                //{
                                decimal PromoteGet = Users.GetUsersSplit(Entity, U.Tier);
                                decimal UsersGet   = O.Amoney * PromoteGet;
                                UsersGet = UsersGet.Floor();
                                if (UsersTier == 1)
                                {
                                    UsersGetAll = UsersGet;
                                }
                                //UsersGetSum += UsersGet;

                                if (UsersTier < UsersList.Count)
                                {
                                    //不是最后一级,需计算下级拆分金额
                                    byte  nexttier  = (byte)(U.Tier + 1);
                                    Users UsersNext = UsersList.FirstOrDefault(o => o.Tier == nexttier);
                                    if (UsersNext != null)
                                    {
                                        if (UsersNext.State == 1)
                                        {    //下级状态有效时才计算,如关闭了则不正计算下级
                                            decimal PayGetNext     = Users.GetUsersSplit(Entity, UsersNext.Tier);
                                            decimal UserPayGetNext = O.Amoney * PayGetNext;
                                            UserPayGetNext = UserPayGetNext.Floor();
                                            //减掉下级用户的金额
                                            UsersGet = UsersGet - UserPayGetNext;
                                        }
                                    }
                                }
                                if (UsersGet > 0)
                                {
                                    //帐户变动记录
                                    string Remark = string.Format("{0}[{1}]", TypeString, O.TNum);
                                    string SP_Ret = Entity.SP_UsersMoney(U.Id, O.TNum, UsersGet, 8, Remark, 0);
                                    if (SP_Ret != "3")
                                    {
                                        Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", U.Id, O.TNum, 8, UsersGet, SP_Ret), "SP_UsersMoney");
                                    }
                                    //记录清分记录
                                    OrderProfitLog OPL = new OrderProfitLog();
                                    OPL.AddTime   = DateTime.Now;
                                    OPL.UId       = U.Id;
                                    OPL.Agent     = 0;
                                    OPL.TNum      = O.TNum;
                                    OPL.LogType   = 1;
                                    OPL.Tier      = U.Tier;
                                    OPL.Profit    = UsersGet;
                                    OPL.Amoney    = O.Amoney;
                                    OPL.OrderType = 21;
                                    OPL.UserName  = OrderUser.UserName;
                                    Entity.OrderProfitLog.AddObject(OPL);
                                    //=====增加统计记录=====
                                    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 = 0;
                                        ShareTotal.Amount   = O.Amoney;
                                        ShareTotal.Profit   = UsersGet;
                                        ShareTotal.Tier     = U.Tier;
                                        Entity.ShareTotal.AddObject(ShareTotal);
                                    }
                                    else
                                    {
                                        ShareTotal.Amount += O.Amoney;
                                        ShareTotal.Profit += UsersGet;
                                    }
                                    sumpayget = sumpayget + UsersGet;
                                }
                                UsersTier++;
                                // }
                            }
                        }
                        #endregion
                        //20160704 Lin 增加统计用户拆分多少,最后一级代理金额减掉这部分金额即可。
                        //解决用户分剩下钱规系统逻辑问题
                        AIdPayGetMy = AIdPayGetMy - UsersGetAll;

                        #region 最后一级代理商 处理同级分润
                        if (tier == SysAgentList.Count)
                        {
                            if (!p.SameAgent.IsNullOrEmpty() && AIdPayGet > 0)
                            {
                                SysMoneySet SysMoneySet = Entity.SysMoneySet.FirstOrNew();
                                decimal     SameMoney   = AIdPayGet * SysMoneySet.SameAgent;
                                SameMoney = SameMoney.Floor();
                                SysAgent SameSysAgent = Entity.SysAgent.FirstOrNew(o => o.Id == p.SameAgent);
                                if (SameSysAgent.State == 1 && !SameSysAgent.MyUId.IsNullOrEmpty())
                                {
                                    //帐户变动记录
                                    string Remark = string.Format("{0}[{1}]", "直通车同级分润", O.TNum);
                                    string SP_Ret = Entity.SP_UsersMoney(SameSysAgent.MyUId, O.TNum, SameMoney, 8, Remark, 0);
                                    if (SP_Ret != "3")
                                    {
                                        Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", SameSysAgent.MyUId, O.TNum, 8, SameMoney, SP_Ret), "SP_UsersMoney");
                                    }
                                    //记录清分记录
                                    OrderProfitLog OPL = new OrderProfitLog();
                                    OPL.AddTime   = DateTime.Now;
                                    OPL.UId       = SameSysAgent.MyUId;
                                    OPL.Agent     = SameSysAgent.Id;
                                    OPL.TNum      = O.TNum;
                                    OPL.LogType   = 3;
                                    OPL.Tier      = p.Tier;
                                    OPL.Profit    = SameMoney;
                                    OPL.Amoney    = O.Amoney;
                                    OPL.OrderType = 21;
                                    OPL.UserName  = OrderUser.UserName;
                                    Entity.OrderProfitLog.AddObject(OPL);
                                    O.SameGet = SameMoney;
                                }
                            }
                        }
                        #endregion

                        if (!p.MyUId.IsNullOrEmpty() && AIdPayGetMy > 0)//某一级未绑定钱包,钱留给系统^-^
                        {
                            //获取钱包信息
                            //为了减少系统开销,这里不读取用户信息——By Lin
                            //Users Users = Entity.Users.FirstOrDefault(n => n.Id == p.MyUId);
                            if (p.MyUId > 0)
                            {
                                //帐户变动记录
                                string Remark = string.Format("{0}[{1}]", TypeString, O.TNum);
                                string SP_Ret = Entity.SP_UsersMoney(p.MyUId, O.TNum, AIdPayGetMy, 8, Remark, 0);
                                if (SP_Ret != "3")
                                {
                                    Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", p.MyUId, O.TNum, 8, AIdPayGetMy, SP_Ret), "SP_UsersMoney");
                                }
                                //记录清分记录
                                OrderProfitLog OPL = new OrderProfitLog();
                                OPL.AddTime   = DateTime.Now;
                                OPL.UId       = p.MyUId;
                                OPL.Agent     = p.Id;
                                OPL.TNum      = O.TNum;
                                OPL.LogType   = 2;
                                OPL.Tier      = p.Tier;
                                OPL.Profit    = AIdPayGetMy;
                                OPL.Amoney    = O.Amoney;
                                OPL.OrderType = 21;
                                OPL.UserName  = OrderUser.UserName;
                                Entity.OrderProfitLog.AddObject(OPL);
                                sumpayget = sumpayget + AIdPayGetMy;
                            }
                        }
                    }
                    tier++;
                }

                Entity.SaveChanges();
                //统计所有分润
                //decimal Profit = 0;
                //if (Entity.OrderProfitLog.Count(n => n.TNum == O.TNum) > 0)
                //{
                //    Profit = Entity.OrderProfitLog.Where(n => n.TNum == O.TNum).Sum(n => n.Profit);//是否会为空的情况
                //}
                O.AgentPayGet = sumpayget;//记录总佣金支出,以便总系统计算利润
                O.AgentState  = 1;
                Entity.SaveChanges();
                #endregion
            }
            if (Type == 2)
            {
                //没有退款,分润也不需要写
            }
            return(O);
        }
        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("[ShareTotal]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            ShareTotal ShareTotal = new ShareTotal();

            ShareTotal = JsonToObject.ConvertJsonToModel(ShareTotal, json);

            //获取用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == ShareTotal.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;
            }

            IList <ShareTotal> STList = new List <ShareTotal>();
            SysSet             SysSet = Entity.SysSet.FirstOrNew();

            for (byte i = 1; i <= SysSet.GlobaPromoteMaxLevel; i++)
            {
                ShareTotal st = Entity.ShareTotal.FirstOrDefault(n => n.UId == baseUsers.Id && n.Tier == i);
                if (st == null)
                {
                    st          = new ShareTotal();
                    st.ShareNum = 0;
                    st.Amount   = 0;
                    st.Profit   = 0;
                    st.Tier     = i;
                }
                STList.Add(st);
            }
            //计算总的
            int     ShareNum = 0;
            decimal Amount = 0, Profit = 0;

            foreach (var p in STList)
            {
                ShareNum += p.ShareNum;
                Amount   += p.Amount;
                Profit   += p.Profit;
            }
            //增加汇总行
            ShareTotal ST = new ShareTotal();

            ST.ShareNum = ShareNum;
            ST.Amount   = Amount;
            ST.Profit   = Profit;
            ST.Tier     = 0;
            STList.Add(ST);
            STList = STList.OrderBy(n => n.Tier).ToList();

            DataObj.Data = STList.EntityToJson();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
        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();
        }