コード例 #1
0
 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();
 }
コード例 #2
0
        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();
        }
コード例 #3
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("[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();
        }
コード例 #4
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);
        }
コード例 #5
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=费率设置有误~");
            }
        }
コード例 #6
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("[ShareTotal3]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }

            Users Users = new Users();

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

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

            StringBuilder allsb = new StringBuilder("");

            allsb.Append("{ ");
            #region 分润统计
            DateTime tdate     = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            DateTime ldate     = tdate.AddDays(-1);
            decimal  Today     = Entity.OrderProfitLog.Where(n => n.UId == Users.Id && n.LogType == 1 && n.AddTime > tdate).Sum(n => (decimal?)n.Profit) ?? 0m;
            decimal  Yesterday = Entity.OrderProfitLog.Where(n => n.UId == Users.Id && n.LogType == 1 && n.AddTime > ldate && n.AddTime < tdate).Sum(n => (decimal?)n.Profit) ?? 0m;
            decimal  Amount    = Entity.ShareTotal.Where(n => n.UId == Users.Id).Sum(o => (decimal?)o.Profit) ?? 0m;
            allsb.Append("\"today\":\"" + Today.ToString("f2") + "\",\"yesterday\":\"" + Yesterday.ToString("f2") + "\",\"total\":\"" + Amount.ToString("f2") + "\",\"list\":");

            #endregion

            string CashName = "PayConfigChange_" + Users.Agent + "_" + Users.Id;
            if (HasCache)
            {
                string StringJson = CacheBuilder.EntityCache.Get(CashName, null) as string;
                if (!StringJson.IsNullOrEmpty())
                {
                    allsb.Append(StringJson + "}");
                    DataObj.Data = allsb.ToString();
                    DataObj.Code = "0000";
                    DataObj.OutString();
                    return;
                }
            }

            #region 降费套餐
            //获取用户所属代理商
            SysAgent SysAgent = Entity.SysAgent.FirstOrDefault(x => x.Id == Users.Agent);
            int      ShowType = 0;
            int      AgentId  = 0;
            if (SysAgent != null)
            {
                SysAgent TopAgent = SysAgentExtensions.GetTopAgent(SysAgent, Entity);
                ShowType = TopAgent.AgentState.HasValue ? TopAgent.AgentState.Value : 0;
                AgentId  = TopAgent.Id;
            }
            //获取顶级代理商
            IList <PayConfigChange> List = null;
            switch (ShowType)
            {
            case 0:     //显示好付
                List = Entity.PayConfigChange.Where(n => n.AgentId == 0 && n.State == 1).ToList();
                break;

            case 1:     //不显示
                List = new List <PayConfigChange>();
                break;

            case 2:     //显示代理商
                List = Entity.PayConfigChange.Where(n => n.AgentId == AgentId && n.State == 1).ToList();
                break;
            }
            StringBuilder sb = new StringBuilder("");
            sb.Append("[");
            int i = 0;
            foreach (var p in List)
            {
                //处理数据
                List <PayConfigTemp> list = Entity.PayConfigTemp.Where(n => n.PCCId == p.Id && n.State == 1).ToList();
                bool isAct     = false;//是否可升级,默认不能升级
                var  PCTDelIds = new List <int>();
                foreach (var pp in list)
                {
                    pp.Cols = "PId,Name,Cost,GroupType,Poundage";
                    PayConfig PC = Entity.PayConfig.FirstOrDefault(n => n.Id == pp.PId && n.State == 1);
                    if (PC != null)
                    {
                        pp.Name      = PC.Name;
                        pp.GroupType = PC.GroupType;
                        pp.Poundage  = 0;
                        UserPay UP = Entity.UserPay.FirstOrNew(n => n.UId == Users.Id && n.PId == pp.PId);
                        if (pp.Cost < UP.Cost)
                        {//只要有一个比原配置低就可升级
                            isAct = true;
                        }
                        else
                        {
                            PCTDelIds.Add(pp.Id);
                        }
                    }
                    else
                    {
                        PCTDelIds.Add(pp.Id);
                    }
                }
                if (PCTDelIds.Count > 0)
                {
                    list.RemoveAll(o => PCTDelIds.Contains(o.Id));
                }


                if (p.CState == 1)
                {//本套餐可升级提现费率
                    //用户可升级提现费率或提现服务费
                    if (p.Cash0 < Users.Cash0 || p.ECash0 < Users.ECash0)
                    {
                        var T0Cash = new PayConfigTemp()
                        {
                            Poundage  = p.ECash0,
                            Cost      = (double)p.Cash0,
                            GroupType = "Cash",
                            Name      = "T0提现",
                            PId       = 0,
                        };
                        T0Cash.Cols = "PId,Name,Cost,GroupType,Poundage";
                        list.Add(T0Cash);
                        isAct = true;
                    }
                    //var T0Cash = new PayConfigTemp()
                    //{
                    //    Poundage = p.ECash0,
                    //    Cost = (double)p.Cash0,
                    //    GroupType = "Cash",
                    //    Name = "T0提现",
                    //    PId = 0,
                    //};
                    //T0Cash.Cols = "PId,Name,Cost,GroupType,Poundage";
                    //list.Add(T0Cash);
                    //isAct = true;
                }

                if (p.EState == 1)
                {                                                         //本套餐可升级提现费率
                    //用户可升级提现费率或提现服务费
                    if (p.Cash1 < Users.Cash1 || p.ECash1 < Users.ECash1) //用户可升级提现费率
                    {
                        var T1Cash = new PayConfigTemp()
                        {
                            Poundage  = p.ECash1,
                            Cost      = (double)p.Cash1,
                            GroupType = "Cash",
                            Name      = "T1提现",
                            PId       = 0,
                        };
                        T1Cash.Cols = "PId,Name,Cost,GroupType,Poundage";
                        list.Add(T1Cash);
                        isAct = true;
                    }

                    //var T1Cash = new PayConfigTemp()
                    //{
                    //    Poundage = p.ECash1,
                    //    Cost = (double)p.Cash1,
                    //    GroupType = "Cash",
                    //    Name = "T1提现",
                    //    PId = 0,
                    //};
                    //T1Cash.Cols = "PId,Name,Cost,GroupType,Poundage";
                    //list.Add(T1Cash);
                    //isAct = true;
                }
                if (!isAct)
                {
                    p.State = 0;
                }
                //处理数据End
                if (p.State == 1)
                {
                    if (i > 0)
                    {
                        sb.Append(",");
                    }
                    sb.Append("{");
                    sb.Append(p.ToStr());
                    sb.Append(",");
                    sb.Append(list.EntityToString());
                    sb.Append("}");
                    i++;
                }
            }
            sb.Append("]");

            string data = sb.ToString();
            if (HasCache)
            {
                CacheBuilder.EntityCache.Remove(CashName, null);
                CacheBuilder.EntityCache.Add(CashName, data, DateTime.Now.AddMinutes(6), null);
            }

            allsb.Append(sb.ToString() + "}");
            #endregion

            DataObj.Data = allsb.ToString();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
コード例 #7
0
        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();
        }