Esempio n. 1
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();
        }
        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("[PayConfigChange]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            //JObject pp = (JObject)p;
            Users Users = new Users();

            Users = JsonToObject.ConvertJsonToModel(Users, json);
            if (Users.Token.IsNullOrEmpty())
            {
                //
                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;
            }

            string CashName = "PayConfigChange_" + Users.Agent + "_" + Users.Id;

            if (HasCache)
            {
                string StringJson = CacheBuilder.EntityCache.Get(CashName, null) as string;
                if (!StringJson.IsNullOrEmpty())
                {
                    DataObj.Data = StringJson;
                    DataObj.Code = "0000";
                    DataObj.OutString();
                    return;
                }
            }

            //获取用户所属代理商
            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)
            {
                //处理数据
                IList <PayConfigTemp> list = Entity.PayConfigTemp.Where(n => n.PCCId == p.Id && n.State == 1).ToList();
                bool isAct = false;//是否可升级,默认不能升级
                foreach (var pp in list)
                {
                    pp.Cols = "PId,Name,Cost";
                    PayConfig PC = Entity.PayConfig.FirstOrNew(n => n.Id == pp.PId && n.State == 1);
                    pp.Name = PC.Name;
                    UserPay UP = Entity.UserPay.FirstOrNew(n => n.UId == Users.Id && n.PId == pp.PId);
                    if (pp.Cost < UP.Cost)
                    {//只要有一个比原配置低就可升级
                        isAct = true;
                    }
                }
                if (p.CState == 1)
                {                              //本套餐可升级提现费率
                    if (p.Cash0 < Users.Cash0) //用户可升级提现费率
                    {
                        isAct = true;
                    }
                    if (p.ECash0 < Users.ECash0)//用户可升级提现服务费
                    {
                        isAct = true;
                    }
                }
                else
                {
                    p.Cash0  = -1;
                    p.ECash0 = -1;
                }
                if (p.EState == 1)
                {
                    //本套餐可升级提现服务费
                    if (p.Cash1 < Users.Cash1)//用户可升级提现费率
                    {
                        isAct = true;
                    }
                    if (p.ECash1 < Users.ECash1)//用户可升级提现服务费
                    {
                        isAct = true;
                    }
                }
                else
                {
                    p.Cash1  = -1;
                    p.ECash1 = -1;
                }
                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);
            }
            DataObj.Data = data;

            DataObj.Code = "0000";
            DataObj.OutString();
            //Tools.OutString(ErrInfo.Return("0000"));
        }