Example #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("[OrderNFC]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }

            OrderF2F OrderF2F = new OrderF2F();

            OrderF2F = JsonToObject.ConvertJsonToModel(OrderF2F, json);

            UserTrack UserTrack = new UserTrack();

            UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json);

            #region 获取并处理用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderF2F.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;
            }
            string NeekName = baseUsers.NeekName;
            if (NeekName.IsNullOrEmpty())
            {
                NeekName = baseUsers.TrueName;
            }
            if (NeekName.IsNullOrEmpty())
            {
                NeekName = "货款";
            }
            #endregion

            if (OrderF2F.Action == "Create")
            {
                //处理交易地点
                if (OrderF2F.X.IsNullOrEmpty() || OrderF2F.Y.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                int PayWay = OrderF2F.PayWay;
                if (PayWay.IsNullOrEmpty())
                {
                    PayWay = 7;//兼容老版本
                }

                //获取系统支付配置
                PayConfig PayConfig = Entity.PayConfig.FirstOrDefault(n => n.Id == PayWay && n.State == 1);
                if (PayConfig == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                if (PayConfig.GroupType != "NFC")
                {
                    DataObj.OutError("1000");
                    return;
                }
                int InType = 0;
                if (!OrderF2F.InType.IsNullOrEmpty())
                {
                    InType = 1;
                }
                SysControl SysControl = new SysControl();
                #region 版本比较 升级之后比较长时间后可以考滤删除版本判断代码
                bool IsNew     = true;
                var  vSysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent);
                if (vSysAgent == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                IsNew = BizExt.NewOrOldVersion(vSysAgent, Equipment, this.Entity);
                #endregion
                if (IsNew)//新版
                {
                    if (InType == 1)
                    {
                        SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == "NFC" && n.PayWay == PayWay && n.LagEntryDay > 0);
                    }
                    else
                    {
                        SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == "NFC" && n.PayWay == PayWay && n.LagEntryDay == 0);
                    }
                }
                else//旧版
                {
                    SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == "NFC" && n.PayWay == PayWay);
                }

                //获取系统支付配置
                if (SysControl == null)
                {
                    DataObj.OutError("1005");
                    return;
                }
                SysControl syscontrol = SysControl.ChkState();
                if (syscontrol.State != 1)
                {
                    DataObj.OutError("1005");
                    return;
                }

                #region 创建交易
                OrderF2F.PayWay  = PayWay;
                OrderF2F.PayType = 0;
                OrderF2F.PayId   = PayConfig.DllName;
                OrderF2F.OType   = 9; //NFC

                //开始处理参数 PayId扣款码,OType通道,7支付宝,8微信
                if (OrderF2F.Amoney.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                OrderF2F.Amoney = OrderF2F.Amoney.FormatMoney();

                //获取用户支付配置
                UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PId == PayConfig.Id);
                if (UserPay == null)
                {
                    DataObj.OutError("1000");
                    return;
                }

                //获取分支机构信息
                SysAgent SysAgent = new SysAgent();
                if (!baseUsers.Agent.IsNullOrEmpty())
                {
                    SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent);
                }


                //获取系统配置
                SysSet SysSet = Entity.SysSet.FirstOrDefault();
                if (InType == 1)
                {//客户端传来T+N但是系统没开启时无效
                    if (SysSet.LagEntry == 0)
                    {
                        InType = 0;
                    }
                }
                if (InType == 1)
                {
                    //手续费
                    OrderF2F.Poundage = 0;
                    //商户费率
                    OrderF2F.UserRate = 0;
                    //T+n时,代理佣金为 交易金额*费率
                    decimal AgentPayGet = OrderF2F.Amoney * SysSet.AgentGet;
                    OrderF2F.AgentPayGet = (Double)AgentPayGet;
                    //佣金舍位
                    OrderF2F.AgentPayGet = OrderF2F.AgentPayGet.Floor();
                }
                else
                {
                    //手续费
                    OrderF2F.Poundage = OrderF2F.Amoney * (decimal)UserPay.Cost;
                    //手续费取进
                    OrderF2F.Poundage = OrderF2F.Poundage.Ceiling();
                    //商户费率
                    OrderF2F.UserRate = UserPay.Cost;
                    //分支机构佣金设置为0,待分润计算后再写入
                    OrderF2F.AgentPayGet = 0;
                }

                OrderF2F.UId = baseUsers.Id;

                //到帐金额=支付金额-手续费
                OrderF2F.PayMoney = OrderF2F.Amoney - OrderF2F.Poundage;
                //第三方支付通道率
                OrderF2F.SysRate = (double)PayConfig.Cost;
                //这里是利润计算==========
                //利润=总金额-到帐-支付手续费
                decimal GetAll = OrderF2F.Amoney - OrderF2F.PayMoney - OrderF2F.Amoney * (decimal)OrderF2F.SysRate;
                //利润舍位
                GetAll = GetAll.Floor();
                //总利润
                OrderF2F.AIdPayGet = (double)GetAll;

                OrderF2F.Agent      = SysAgent.Id;//分支机构Id
                OrderF2F.AId        = baseUsers.AId;
                OrderF2F.FId        = 0;
                OrderF2F.OrderState = 1;
                OrderF2F.PayState   = 0;
                OrderF2F.AgentState = 0;
                OrderF2F.AddTime    = DateTime.Now;

                //写入前,判断交易金额限制
                if (OrderF2F.Amoney < syscontrol.SNum || OrderF2F.Amoney > syscontrol.ENum)
                {
                    DataObj.OutError("1006");
                    return;
                }

                //写入订单总表
                Orders Orders = new Orders();
                Orders.UId   = OrderF2F.UId;
                Orders.TName = NeekName;

                Orders.PayType = OrderF2F.PayType;
                Orders.PayName = "NFC";

                Orders.RUId     = 0;
                Orders.RName    = string.Empty;
                Orders.TType    = OrderF2F.OType;
                Orders.TState   = 1;
                Orders.Amoney   = OrderF2F.Amoney;
                Orders.Poundage = OrderF2F.Poundage;
                Orders.AddTime  = DateTime.Now;
                Orders.PayState = 0;
                Orders.PayWay   = PayConfig.Id;

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

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

                if (InType == 1)
                {
                    if (IsNew)//新版
                    {
                        Orders.LagEntryDay = SysControl.LagEntryDay;
                        Orders.LagEntryNum = SysControl.LagEntryNum;
                    }
                    else
                    {
                        Orders.LagEntryDay = SysSet.LagEntryDay;
                        Orders.LagEntryNum = SysSet.LagEntryNum;
                    }
                }
                else
                {
                    Orders.LagEntryDay = 0;
                    Orders.LagEntryNum = 0;
                }

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

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

                //=======================================
                UserTrack.ENo        = DataObj.ENo;
                UserTrack.OPType     = Orders.PayName;
                UserTrack.UserName   = Orders.TNum;
                UserTrack.GPSAddress = Orders.OrderAddress;
                UserTrack.GPSX       = Orders.X;
                UserTrack.GPSY       = Orders.Y;
                Orders.SeavGPSLog(UserTrack, Entity);
                //=======================================

                if (PayConfig.DllName == "NFC")
                {
                    string[] PayConfigArr = PayConfig.QueryArray.Split(',');
                    if (PayConfigArr.Length != 2)
                    {
                        DataObj.OutError("1000");
                        return;
                    }

                    string NoticeUrl = NoticePath + "/PayCenter/NFC/Notice.html";

                    NFCObj NFCObj = new NFCObj();
                    NFCObj.merchantCode    = PayConfigArr[0];                           //      商户编码
                    NFCObj.outOrderId      = Orders.TNum;                               //		订单号
                    NFCObj.outUserId       = Orders.UId.ToString();                     //		用户编号
                    NFCObj.orderCreateTime = Orders.AddTime.ToString("yyyyMMddHHmmss"); //		订单生成时间20140423112324
                    NFCObj.nonceStr        = Utils.RandomSMSCode(10);                   //		随机字符串
                    NFCObj.goodName        = Orders.TName;                              //		商品名称
                    NFCObj.goodsExplain    = Orders.TNum;;                              //		商品详情
                    NFCObj.totalAmount     = (Orders.Amoney * 100).ToString("F0");      //		订单金额	100
                    NFCObj.payNotifyUrl    = NoticeUrl;                                 //		支付通知地址
                    NFCObj.sign            = PayConfigArr[1];
                    NFCObj.lastPayTime     = "";
                    //===================================
                    JavaScriptSerializer jss = new JavaScriptSerializer();
                    string jsonString        = jss.Serialize(NFCObj);
                    try
                    {
                        json = (JObject)JsonConvert.DeserializeObject(jsonString);
                    }
                    catch (Exception Ex)
                    {
                        Log.Write("[OrderNFC_My]:", "【jsonString】" + jsonString, Ex);
                    }
                    Orders.Json = json;
                }
                else if (PayConfig.DllName == "HFNFC")
                {
                    string NoticeUrl = NoticePath + "/PayCenter/HFNFC/Notice.html";

                    string[] PayConfigArr = PayConfig.QueryArray.Split(',');
                    if (PayConfigArr.Length != 3)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    //提交结算中心
                    string merId    = PayConfigArr[0]; //商户号
                    string merKey   = PayConfigArr[1]; //商户密钥
                    string JsPayWay = PayConfigArr[2]; //绑定通道

                    string  orderId    = Orders.TNum;  //商户流水号
                    decimal money      = Orders.Amoney * 100;
                    long    intmoney   = Int64.Parse(money.ToString("F0"));
                    string  OrderMoney = intmoney.ToString();//金额,以分为单

                    string PostJson = "{\"action\":\"getOrder\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + JsPayWay + "\",\"orderid\":\"" + orderId + "\",\"backurl\":\"" + NoticeUrl + "\"}";

                    string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8");
                    string Sign       = (DataBase64 + merKey).GetMD5();

                    DataBase64 = HttpUtility.UrlEncode(DataBase64);
                    string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign);

                    string HFNFC_Url = "https://api.zhifujiekou.com/api/nfcgateway";

                    string Ret = Utils.PostRequest(HFNFC_Url, PostData, "utf-8");

                    JObject JS = new JObject();
                    try
                    {
                        JS = (JObject)JsonConvert.DeserializeObject(Ret);
                    }
                    catch (Exception Ex)
                    {
                        Log.Write("[OrderNFC_HF]:", "【Ret】" + Ret, Ex);
                    }
                    if (JS == null)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    string resp = JS["resp"].ToString();
                    Ret = LokFuEncode.Base64Decode(resp, "utf-8");
                    try
                    {
                        JS = (JObject)JsonConvert.DeserializeObject(Ret);
                    }
                    catch (Exception Ex)
                    {
                        Log.Write("[OrderNFC_HF]:", "【Ret2】" + Ret, Ex);
                    }
                    if (JS == null)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    string respcode = JS["respcode"].ToString();
                    if (respcode != "00")
                    {
                        string respmsg = JS["respmsg"].ToString();
                        DataObj.OutError("1000");
                        Utils.WriteLog("[OrderNFC_HF_Err]:【" + respcode + "】" + respmsg, "orderface");
                        return;
                    }
                    JObject Json = (JObject)JS["webform"];
                    Orders.Json = Json;
                }
                Orders.Cols  = Orders.Cols + ",Json";
                DataObj.Data = Orders.OutJson();
                DataObj.Code = "0000";
                DataObj.OutString();
                #endregion
            }
            if (OrderF2F.Action == "GET")//获取订交易信息
            {
                //开始处理参数
                if (OrderF2F.OId.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == OrderF2F.OId && n.UId == baseUsers.Id);
                if (Orders == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                OrderF2F  Orderf2f  = Entity.OrderF2F.FirstOrDefault(n => n.OId == OrderF2F.OId && n.UId == baseUsers.Id);
                PayConfig PayConfig = Entity.PayConfig.FirstOrNew(n => n.Id == Orders.PayWay);
                if (Orders.TState == 1 && Orders.PayState == 0)
                {
                    if (PayConfig.DllName == "NFC")
                    {
                        //1000000951,f38e989d-900f-4768-8a01-f6667a21f7d3
                        string[] QueryArr = PayConfig.QueryArray.Split(',');
                        if (QueryArr.Length == 2)
                        {
                            string merchantCode = QueryArr[0];
                            string Key          = QueryArr[1];
                            string outOrderId   = Orders.TNum;
                            string dataStr      = "merchantCode=" + merchantCode + "&outOrderId=" + outOrderId;
                            string signStr      = dataStr + "&KEY=" + Key;
                            string sign         = signStr.GetMD5().ToUpper();
                            string dataJson     = "{\"merchantCode\":\"" + merchantCode + "\",\"outOrderId\":\"" + outOrderId + "\",\"sign\":\"" + sign + "\"}";
                            string postData     = "{\"param\":" + dataJson + ",\"project_id\":\"WEPAYPLUGIN_PAY\"}";
                            string postUrl      = "https://payment.kklpay.com/query/queryOrder.do";
                            string Ret          = Utils.GetPostJson(postUrl, postData);
                            //"{"code":"00","data":{"amount":1,"instructCode":"11001998044","merchantCode":"1000000951","outOrderId":"201511170900077","replyCode":"00","sign":"EA778C87B5ACDCBC7735BB78C15CAC72","transTime":"20151117174726","transType":"00200"},"msg":"成功"}"
                            JObject JS = new JObject();
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Utils.WriteLog("[OrderNFC]:JSON[" + Ret + "]" + Ex.ToString(), "orderface");
                            }
                            if (JS != null)
                            {
                                string code = JS["code"].ToString();//返回状态--
                                if (code == "00")
                                {
                                    JObject JSD = (JObject)JS["data"];
                                    if (JSD != null)
                                    {
                                        string amount        = JSD["amount"].ToString();       //交易金额 单位分
                                        string instructCode  = JSD["instructCode"].ToString(); //交易单号
                                        string merchantCodeR = JSD["merchantCode"].ToString(); //商户号
                                        string outOrderIdR   = JSD["outOrderId"].ToString();   //订单号
                                        string replyCode     = JSD["replyCode"].ToString();    //交易状态
                                        string transTime     = JSD["transTime"].ToString();    //交易时间
                                        string transType     = JSD["transType"].ToString();    //交易类型
                                        string signR         = JSD["sign"].ToString();
                                        //================================================
                                        PayLog PayLog = new PayLog();
                                        PayLog.PId     = PayConfig.Id;
                                        PayLog.OId     = outOrderId;
                                        PayLog.TId     = instructCode;
                                        PayLog.Amount  = decimal.Parse(amount) / 100;
                                        PayLog.Way     = "GET";
                                        PayLog.AddTime = DateTime.Now;
                                        PayLog.Data    = Ret;
                                        PayLog.State   = 1;
                                        Entity.PayLog.AddObject(PayLog);
                                        Entity.SaveChanges();
                                        //================================================
                                        if (replyCode == "00")
                                        {
                                            if (merchantCodeR == merchantCode)
                                            {
                                                int factmoney = int.Parse(amount);
                                                if (((int)(Orders.Amoney * 100)) == factmoney)
                                                {
                                                    //Orders.PayState = 1;//此处不保存支付状态,由通知返回再操作
                                                    Orders = Orders.PaySuccess(Entity);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        //PaySuccess
                    }
                    else if (PayConfig.DllName == "HFNFC")
                    {
                        string[] QueryArr = PayConfig.QueryArray.Split(',');
                        if (QueryArr.Length == 3)
                        {
                            //提交结算中心
                            string merId      = QueryArr[0]; //商户号
                            string merKey     = QueryArr[1]; //商户密钥
                            string orderId    = Orders.TNum; //商户流水号
                            string PostJson   = "{\"merid\":\"" + merId + "\",\"orderid\":\"" + orderId + "\"}";
                            string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8");
                            string Sign       = (DataBase64 + merKey).GetMD5();
                            DataBase64 = HttpUtility.UrlEncode(DataBase64);
                            string PostData  = string.Format("req={0}&sign={1}", DataBase64, Sign);
                            string HFNFC_Url = "https://api.zhifujiekou.com/api/query";
                            string Ret       = Utils.PostRequest(HFNFC_Url, PostData, "utf-8");

                            JObject JS = new JObject();
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Log.Write("[OrderNFC_HFQuery]:", "【Ret】" + Ret, Ex);
                            }
                            if (JS == null)
                            {
                                DataObj.OutError("1000");
                                return;
                            }
                            string resp = JS["resp"].ToString();
                            Ret = LokFuEncode.Base64Decode(resp, "utf-8");
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Log.Write("[OrderNFC_HFQuery]:", "【Ret2】" + Ret, Ex);
                            }
                            if (JS == null)
                            {
                                DataObj.OutError("1000");
                                return;
                            }
                            string respcode = JS["respcode"].ToString();
                            if (respcode != "00")
                            {
                                string respmsg = JS["respmsg"].ToString();
                                DataObj.OutError("1000");
                                Utils.WriteLog("[OrderNFC_HFQuery_Err]:【" + respcode + "】" + respmsg, "orderface");
                                return;
                            }
                            string resultcode = JS["resultcode"].ToString();
                            if (resultcode == "0000" || resultcode == "1002" || resultcode == "1004")
                            {
                                string txnamt    = JS["txnamt"].ToString();
                                int    factmoney = int.Parse(txnamt);
                                if (((int)(Orders.Amoney * 100)) == factmoney)
                                {
                                    //Orders.PayState = 1;//此处不保存支付状态,由通知返回再操作
                                    Orders = Orders.PaySuccess(Entity);
                                }
                            }
                        }
                        //PaySuccess
                    }
                }
                DataObj.Data = Orders.OutJson();
                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("[OrderF2F]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            OrderF2F OrderF2F = new OrderF2F();

            OrderF2F = JsonToObject.ConvertJsonToModel(OrderF2F, json);

            UserTrack UserTrack = new UserTrack();

            UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json);

            #region 获取并处理用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderF2F.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;
            }
            string NeekName = baseUsers.NeekName;
            if (NeekName.IsNullOrEmpty())
            {
                NeekName = baseUsers.TrueName;
            }
            if (NeekName.IsNullOrEmpty())
            {
                NeekName = "货款";
            }
            #endregion

            if (OrderF2F.Action == "Create")
            {
                int    PayWay  = OrderF2F.PayWay;
                string Tag     = "";
                byte   PayType = 0;
                string PayName = "";

                if (OrderF2F.OType == 7)
                {//支付宝
                    Tag     = "AliPay";
                    PayName = "条码付-";
                }
                if (OrderF2F.OType == 8)
                {//微信
                    Tag     = "WeiXin";
                    PayName = "刷卡付-";
                }
                if (PayWay.IsNullOrEmpty())
                {
                    if (Tag == "AliPay")
                    {
                        PayWay = 5;//兼容老版本
                    }
                    if (Tag == "WeiXin")
                    {
                        PayWay = 6;//兼容老版本
                    }
                }
                PayConfig PayConfig = Entity.PayConfig.FirstOrDefault(n => n.Id == PayWay && n.State == 1);
                //获取系统支付配置
                if (PayConfig == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                if (PayConfig.GroupType != Tag)
                {
                    DataObj.OutError("1000");
                    return;
                }
                PayName += PayConfig.Name;

                int InType = 0;
                if (!OrderF2F.InType.IsNullOrEmpty())
                {
                    InType = 1;
                }

                SysControl SysControl = new SysControl();

                #region 版本比较 升级之后比较长时间后可以考滤删除版本判断代码
                bool IsNew     = true;
                var  vSysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent);
                if (vSysAgent == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                IsNew = BizExt.NewOrOldVersion(vSysAgent, Equipment, this.Entity);
                #endregion
                if (IsNew)//新版
                {
                    if (InType == 1)
                    {
                        SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag && n.PayWay == PayWay && n.LagEntryDay > 0);
                    }
                    else
                    {
                        SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag && n.PayWay == PayWay && n.LagEntryDay == 0);
                    }
                }
                else
                {
                    //旧版
                    SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag && n.PayWay == PayWay);
                    if (SysControl.LagEntryDay > 0)
                    {
                        InType = 1;
                    }
                    else
                    {
                        InType = 0;
                    }
                }
                //获取系统支付配置
                if (SysControl == null)
                {
                    DataObj.OutError("1005");
                    return;
                }
                if (InType == 1 && (SysControl.LagEntryDay.IsNullOrEmpty() || SysControl.LagEntryNum.IsNullOrEmpty()))
                {
                    DataObj.Msg = "请升级到最新版再发起Tn到帐交易!";
                    DataObj.OutError("1005");
                    return;
                }
                SysControl syscontrol = SysControl.ChkState();
                if (syscontrol.State != 1)
                {
                    DataObj.OutError("1005");
                    return;
                }

                #region 创建订单
                //处理交易地点
                if (OrderF2F.X.IsNullOrEmpty() || OrderF2F.Y.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                //开始处理参数 PayId扣款码,OType通道,7支付宝,8微信
                if (OrderF2F.Amoney.IsNullOrEmpty() || OrderF2F.PayId.IsNullOrEmpty() || OrderF2F.OType.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }

                OrderF2F.Amoney = OrderF2F.Amoney.FormatMoney();

                //获取用户支付配置
                UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PId == PayWay);
                if (UserPay == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                //获取分支机构信息
                SysAgent SysAgent = new SysAgent();
                if (!baseUsers.Agent.IsNullOrEmpty())
                {
                    SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent);
                }

                OrderF2F.PayWay = PayWay;
                //获取系统配置
                SysSet SysSet = Entity.SysSet.FirstOrDefault();
                if (InType == 1)
                {//客户端传来T+N但是系统没开启时无效
                    if (SysSet.LagEntry == 0)
                    {
                        InType = 0;
                    }
                }
                if (InType == 1)
                {
                    //手续费
                    OrderF2F.Poundage = 0;
                    //商户费率
                    OrderF2F.UserRate = 0;
                    //T+n时,代理佣金为 交易金额*费率
                    decimal AgentPayGet = OrderF2F.Amoney * SysSet.AgentGet;
                    OrderF2F.AgentPayGet = (Double)AgentPayGet;
                    //佣金舍位
                    OrderF2F.AgentPayGet = OrderF2F.AgentPayGet.Floor();
                }
                else
                {
                    //手续费
                    OrderF2F.Poundage = OrderF2F.Amoney * (decimal)UserPay.Cost;
                    //手续费取进
                    OrderF2F.Poundage = OrderF2F.Poundage.Ceiling();
                    //商户费率
                    OrderF2F.UserRate = UserPay.Cost;
                    //分支机构佣金设置为0,待分润计算后再写入
                    OrderF2F.AgentPayGet = 0;
                }

                OrderF2F.UId = baseUsers.Id;
                //到帐金额=支付金额-手续费
                OrderF2F.PayMoney = OrderF2F.Amoney - OrderF2F.Poundage;
                //第三方支付通道率
                OrderF2F.SysRate = (double)PayConfig.Cost;

                //这里是利润计算==========
                //利润=总金额-到帐-支付手续费
                decimal GetAll = OrderF2F.Amoney - OrderF2F.PayMoney - OrderF2F.Amoney * (decimal)OrderF2F.SysRate;
                //利润舍位
                GetAll = GetAll.Floor();
                //总利润
                OrderF2F.AIdPayGet = (double)GetAll;

                OrderF2F.Agent      = SysAgent.Id;//分支机构Id
                OrderF2F.AId        = baseUsers.AId;
                OrderF2F.FId        = 0;
                OrderF2F.OrderState = 1;
                OrderF2F.PayState   = 0;
                OrderF2F.AgentState = 0;
                OrderF2F.AddTime    = DateTime.Now;

                //写入前,判断交易金额限制
                if (OrderF2F.Amoney < syscontrol.SNum || OrderF2F.Amoney > syscontrol.ENum)
                {
                    DataObj.OutError("1006");
                    return;
                }
                //写入订单总表
                Orders Orders = new Orders();
                Orders.UId   = OrderF2F.UId;
                Orders.TName = NeekName;

                Orders.PayType = PayType;
                Orders.PayName = PayName;

                Orders.RUId     = 0;
                Orders.RName    = string.Empty;
                Orders.TType    = OrderF2F.OType;
                Orders.TState   = 1;
                Orders.Amoney   = OrderF2F.Amoney;
                Orders.Poundage = OrderF2F.Poundage;
                Orders.AddTime  = DateTime.Now;
                Orders.PayState = 0;
                Orders.PayWay   = PayConfig.Id;

                Orders.Agent      = OrderF2F.Agent;
                Orders.AgentState = 0;
                Orders.AId        = OrderF2F.AId;
                Orders.FId        = 0;
                Orders.ComeWay    = 1;

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

                if (InType == 1)
                {
                    if (IsNew)//新版
                    {
                        Orders.LagEntryDay = SysControl.LagEntryDay;
                        Orders.LagEntryNum = SysControl.LagEntryNum;
                    }
                    else
                    {
                        Orders.LagEntryDay = SysSet.LagEntryDay;
                        Orders.LagEntryNum = SysSet.LagEntryNum;
                    }
                }
                else
                {
                    Orders.LagEntryDay = 0;
                    Orders.LagEntryNum = 0;
                }

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

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

                //=======================================
                UserTrack.ENo        = DataObj.ENo;
                UserTrack.OPType     = Orders.PayName;
                UserTrack.UserName   = Orders.TNum;
                UserTrack.GPSAddress = Orders.OrderAddress;
                UserTrack.GPSX       = Orders.X;
                UserTrack.GPSY       = Orders.Y;
                if (!OrderF2F.IP.IsNullOrEmpty())
                {
                    UserTrack.IP = OrderF2F.IP;
                }
                Orders.SeavGPSLog(UserTrack, Entity);
                //=======================================

                #endregion

                if (PayConfig.DllName == "AliPay")
                {
                    #region 支付宝调用支付
                    string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' });    //接口信息 商户号,密钥,支付宝号
                    if (PayConfigArr.Length != 3)
                    {
                        DataObj.OutError("9999");
                        return;
                    }
                    if (AlipayVer == "1.0")
                    {
                        #region 1.0老接口
                        Submit Submit = new Submit();
                        Submit.pid = PayConfigArr[0];
                        Submit.key = PayConfigArr[1];
                        //卖家支付宝帐户
                        string seller_email = PayConfigArr[2];

                        //订单业务类型
                        string product_code = "BARCODE_PAY_OFFLINE";
                        //SOUNDWAVE_PAY_OFFLINE:声波支付,FINGERPRINT_FAST_PAY:指纹支付,BARCODE_PAY_OFFLINE:条码支付

                        string dynamic_id_type = "qrcode";    //动态ID类型 soundwave:声波,qrcode:二维码,barcode:条码


                        ////////////////////////////////////////////////////////////////////////////////////////////////

                        //把请求参数打包成数组
                        SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();
                        sParaTemp.Add("partner", Submit.pid);
                        sParaTemp.Add("_input_charset", "utf-8");
                        sParaTemp.Add("service", "alipay.acquire.createandpay");
                        sParaTemp.Add("seller_email", seller_email);
                        sParaTemp.Add("out_trade_no", OrderF2F.OId);
                        sParaTemp.Add("subject", Orders.TName + ":" + OrderF2F.OId);
                        sParaTemp.Add("total_fee", OrderF2F.Amoney.ToString("F2"));
                        sParaTemp.Add("product_code", product_code);
                        sParaTemp.Add("dynamic_id_type", dynamic_id_type);
                        sParaTemp.Add("dynamic_id", OrderF2F.PayId);

                        sParaTemp.Add("notify_url", NoticePath + "/PayCenter/AliPay/Notice.html");
                        //建立请求
                        string sHtmlText = Submit.BuildRequest(sParaTemp);
                        //Utils.WriteLog(sHtmlText);
                        try
                        {
                            XmlDocument xmlDoc = new XmlDocument();
                            xmlDoc.LoadXml(sHtmlText);
                            string is_success = xmlDoc.SelectSingleNode("/alipay/is_success").InnerText;
                            if (is_success == "T")
                            {
                                string trade_no    = xmlDoc.SelectSingleNode("/alipay/response/alipay/trade_no").InnerText;
                                string result_code = xmlDoc.SelectSingleNode("/alipay/response/alipay/result_code").InnerText;
                                if (result_code == "ORDER_SUCCESS_PAY_SUCCESS")
                                {    //成功
                                    OrderF2F.Trade_no = trade_no;
                                    Entity.SaveChanges();
                                    Orders = Orders.PaySuccess(Entity);
                                }
                                else if (result_code == "ORDER_SUCCESS_PAY_INPROCESS")    //返回支付处理中,需要进行轮询
                                {
                                    //此处立马返回
                                    OrderF2F.Trade_no = trade_no;
                                    Entity.SaveChanges();
                                }
                                else
                                {
                                    AliPayApi Api = new AliPayApi();
                                    Api.AlipayCancel(Orders.TNum, Submit.pid, Submit.key);    //交易异常,取消交易

                                    Orders.TState       = 0;
                                    OrderF2F.OrderState = 0;
                                    Entity.SaveChanges();
                                }
                            }
                            else
                            {
                                Orders.TState       = 0;
                                OrderF2F.OrderState = 0;
                                Entity.SaveChanges();
                            }
                        }
                        catch (Exception Ex)
                        {
                            //Utils.WriteLog(Ex.ToString());
                            Orders.TState       = 0;
                            OrderF2F.OrderState = 0;
                            Entity.SaveChanges();
                        }
                        #endregion
                    }
                    if (AlipayVer == "2.0")
                    {
                        #region 2.0新接口

                        ALF2FPAY ALF2FPAY = new ALF2FPAY();
                        ALF2FPAY.pid   = PayConfigArr[0];
                        ALF2FPAY.appId = PayConfigArr[2];
                        IAopClient    client = new DefaultAopClient(ALF2FPAY.serverUrl, ALF2FPAY.appId, ALF2FPAY.merchant_private_key, "json", ALF2FPAY.version, ALF2FPAY.sign_type, ALF2FPAY.alipay_public_key, ALF2FPAY.charset);
                        StringBuilder sb     = new StringBuilder();
                        sb.Append("{\"out_trade_no\":\"" + OrderF2F.OId + "\",");
                        sb.Append("\"scene\":\"bar_code\",");
                        sb.Append("\"auth_code\":\"" + OrderF2F.PayId + "\",");
                        sb.Append("\"total_amount\":\"" + OrderF2F.Amoney.ToMoney() + "\",");
                        sb.Append("\"subject\":\"" + Orders.TName + ":" + OrderF2F.OId + "\",");
                        string expire_time = System.DateTime.Now.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss");
                        sb.Append("\"time_expire\":\"" + expire_time + "\"}");
                        AlipayTradePayRequest payRequst = new AlipayTradePayRequest();
                        payRequst.BizContent = sb.ToString();
                        Dictionary <string, string> paramsDict  = (Dictionary <string, string>)payRequst.GetParameters();
                        AlipayTradePayResponse      payResponse = client.Execute(payRequst);
                        if (payResponse != null)
                        {
                            payResponse.SaveLog(Entity);    //保存记录

                            switch (payResponse.Code)
                            {
                            case "10000":        //成功
                                OrderF2F.Trade_no = payResponse.TradeNo;
                                Entity.SaveChanges();
                                Orders = Orders.PaySuccess(Entity);
                                break;

                            case "10003":        //返回支付处理中,需要进行轮询
                                OrderF2F.Trade_no = payResponse.TradeNo;
                                Entity.SaveChanges();
                                break;

                            case "20000":        //交易异常,取消交易

                                string      CancelStr = "{\"out_trade_no\":\"" + Orders.TNum + "\"}";
                                ALF2FPAYObj ObjCancel = new ALF2FPAYObj();
                                ObjCancel.BizCode = CancelStr;
                                ObjCancel.Client  = client;
                                AliPayApi Api = new AliPayApi();
                                Api.AlipayCancel(ObjCancel);

                                Orders.TState       = 0;
                                OrderF2F.OrderState = 0;
                                Entity.SaveChanges();

                                break;

                            case "40004":        //返回失败
                                Orders.TState       = 0;
                                OrderF2F.OrderState = 0;
                                Entity.SaveChanges();
                                break;
                            }
                        }
                        #endregion
                    }
                    #endregion
                }

                if (PayConfig.DllName == "WeiXin")
                {
                    #region 微信调用支付
                    //初始化支付配置
                    WxPayConfig WxPayConfig  = new WxPayConfig();
                    string[]    PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 appid,mchid,key,appsecret
                    if (PayConfigArr.Length != 4 && PayConfigArr.Length != 5)
                    {
                        DataObj.OutError("9999");
                        return;
                    }
                    string ServerIp     = ConfigurationManager.AppSettings["ServerIp"].ToString();
                    string Wx_Cert_Path = ConfigurationManager.AppSettings["Wx_Cert_Path"].ToString();
                    string Wx_Cert_PWD  = ConfigurationManager.AppSettings["Wx_Cert_PWD"].ToString();
                    WxPayConfig.IP        = ServerIp;
                    WxPayConfig.APPID     = PayConfigArr[0];
                    WxPayConfig.MCHID     = PayConfigArr[1];
                    WxPayConfig.KEY       = PayConfigArr[2];
                    WxPayConfig.APPSECRET = PayConfigArr[3];
                    if (PayConfigArr.Length == 5)
                    {
                        WxPayConfig.SubMCHID = PayConfigArr[4];
                    }
                    WxPayConfig.SSLCERT_PATH     = Wx_Cert_Path;
                    WxPayConfig.SSLCERT_PASSWORD = Wx_Cert_PWD;
                    //支付配置结束

                    WxPayData data = new WxPayData();
                    data.SetValue("auth_code", OrderF2F.PayId);               //授权码
                    data.SetValue("body", Orders.TName + ":" + OrderF2F.OId); //商品描述

                    string total_fee = (OrderF2F.Amoney * 100).ToString("F0");

                    data.SetValue("total_fee", total_fee);                       //总金额
                    data.SetValue("out_trade_no", OrderF2F.OId);                 //产生随机的商户订单号

                    WxPayData result = WxPayApi.Micropay(data, WxPayConfig, 10); //提交被扫支付,接收返回结果
                    result.SaveLog(Entity);

                    if (!result.IsSet("return_code") || result.GetValue("return_code").ToString() == "FAIL")
                    {    //支付失败
                        Orders.TState       = 0;
                        OrderF2F.OrderState = 0;
                        Entity.SaveChanges();
                    }
                    else
                    {
                        if (!result.CheckSign(WxPayConfig.KEY))
                        {    //签名失败,取消订单
                            Orders.TState       = 0;
                            OrderF2F.OrderState = 0;
                            Entity.SaveChanges();
                        }
                        else
                        {
                            if (result.GetValue("return_code").ToString() == "SUCCESS" && result.GetValue("result_code").ToString() == "SUCCESS")
                            {    //直接支付成功
                                OrderF2F.Trade_no = result.GetValue("transaction_id").ToString();
                                Entity.SaveChanges();
                                Orders = Orders.PaySuccess(Entity);
                            }
                            else
                            {
                                if (result.GetValue("err_code").ToString() != "USERPAYING" && result.GetValue("err_code").ToString() != "SYSTEMERROR")
                                {    //业务明确失败
                                    Orders.TState       = 0;
                                    OrderF2F.OrderState = 0;
                                    Entity.SaveChanges();
                                }
                                else
                                {     //需要查单
                                }
                            }
                        }
                    }
                    #endregion
                }

                #region 提交好付
                if (PayConfig.DllName == "HFAliPay" || PayConfig.DllName == "HFWeiXin")
                {
                    string NoticeUrl = "";
                    string Action    = "";
                    if (PayConfig.DllName == "HFAliPay")
                    {
                        NoticeUrl = NoticePath + "/PayCenter/HFAliPay/Notice.html";
                        Action    = "AliCode";
                    }
                    if (PayConfig.DllName == "HFWeiXin")
                    {
                        NoticeUrl = NoticePath + "/PayCenter/HFWeiXin/Notice.html";
                        Action    = "WxCode";
                    }
                    string[] PayConfigArr = PayConfig.QueryArray.Split(',');
                    if (PayConfigArr.Length != 3)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    //提交结算中心
                    string merId    = PayConfigArr[0]; //商户号
                    string merKey   = PayConfigArr[1]; //商户密钥
                    string JsPayWay = PayConfigArr[2]; //绑定通道

                    string  orderId    = Orders.TNum;  //商户流水号
                    decimal money      = Orders.Amoney * 100;
                    long    intmoney   = Int64.Parse(money.ToString("F0"));
                    string  OrderMoney = intmoney.ToString();//金额,以分为单

                    string PostJson = "{\"action\":\"" + Action + "\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + JsPayWay + "\",\"orderid\":\"" + orderId + "\",\"backurl\":\"" + NoticeUrl + "\",\"code\":\"" + OrderF2F.PayId + "\"}";

                    string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8");
                    string Sign       = (DataBase64 + merKey).GetMD5();

                    DataBase64 = HttpUtility.UrlEncode(DataBase64);
                    string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign);

                    string HF_Url = "https://api.zhifujiekou.com/api/mpgateway";

                    string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8");

                    JObject JS = new JObject();
                    try
                    {
                        JS = (JObject)JsonConvert.DeserializeObject(Ret);
                    }
                    catch (Exception Ex)
                    {
                        Log.Write("[Order_HF]:", "【Ret】" + Ret, Ex);
                    }
                    if (JS == null)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    string resp = JS["resp"].ToString();
                    Ret = LokFuEncode.Base64Decode(resp, "utf-8");
                    try
                    {
                        JS = (JObject)JsonConvert.DeserializeObject(Ret);
                    }
                    catch (Exception Ex)
                    {
                        Log.Write("[Order_HF]:", "【Ret2】" + Ret, Ex);
                    }
                    if (JS == null)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    string respcode = JS["respcode"].ToString();
                    if (respcode != "00")
                    {
                        string respmsg = JS["respmsg"].ToString();
                        DataObj.OutError("1000");
                        Utils.WriteLog("[Order_HF_Err]:【" + respcode + "】" + respmsg, "orderface");
                        return;
                    }
                }
                #endregion

                DataObj.Data = Orders.OutJson();
                DataObj.Code = "0000";
                DataObj.OutString();
            }
            if (OrderF2F.Action == "GET")//获取订交易信息
            {
                //开始处理参数
                if (OrderF2F.OId.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == OrderF2F.OId && n.UId == baseUsers.Id);
                if (Orders == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                OrderF2F  Orderf2f  = Entity.OrderF2F.FirstOrDefault(n => n.OId == OrderF2F.OId && n.UId == baseUsers.Id);
                PayConfig PayConfig = Entity.PayConfig.FirstOrNew(n => n.Id == Orders.PayWay);
                if (Orders.TState == 1 && Orders.PayState == 0)
                {
                    if (PayConfig.DllName == "AliPay")
                    {
                        #region 支付宝处理
                        string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' });    //接口信息 商户号,密钥,APPId
                        if (PayConfigArr.Length != 3)
                        {
                            DataObj.OutError("9999");
                            return;
                        }
                        if (AlipayVer == "1.0")
                        {
                            #region 1.0老接口
                            string pid        = PayConfigArr[0];
                            string key        = PayConfigArr[1];
                            int    queryTimes = 10; //查询次数计数器
                            int    Run        = 0;
                            while (queryTimes > 0 && Run != 1)
                            {
                                AliPayApi Api        = new AliPayApi();
                                int       succResult = Api.AliPayQuery(Orderf2f.OId, pid, key);
                                //如果需要继续查询,则等待2s后继续
                                if (succResult == 2)
                                {
                                    //Thread.Sleep(5000);
                                    //continue;
                                    Run = 1;    //跳出循环,20160420
                                }
                                //查询成功,返回订单查询接口返回的数据
                                else if (succResult == 1)
                                {
                                    Orders = Orders.PaySuccess(Entity);
                                    Run    = 1;
                                }
                                //订单交易失败
                                else
                                {
                                    Orders.TState       = 0;
                                    Orderf2f.OrderState = 0;
                                    Entity.SaveChanges();
                                }
                                queryTimes--;
                            }
                            #endregion
                        }
                        if (AlipayVer == "2.0")
                        {
                            #region 2.0新接口
                            ALF2FPAY ALF2FPAY = new ALF2FPAY();
                            ALF2FPAY.pid   = PayConfigArr[0];
                            ALF2FPAY.appId = PayConfigArr[2];

                            IAopClient client = new DefaultAopClient(ALF2FPAY.serverUrl, ALF2FPAY.appId, ALF2FPAY.merchant_private_key, "json", ALF2FPAY.version, ALF2FPAY.sign_type, ALF2FPAY.alipay_public_key, ALF2FPAY.charset);

                            string      QueryStr = "{\"out_trade_no\":\"" + Orders.TNum + "\"}";
                            ALF2FPAYObj ObjQuery = new ALF2FPAYObj();
                            ObjQuery.BizCode = QueryStr;
                            ObjQuery.Client  = client;
                            ObjQuery.Entity  = Entity;
                            AliPayApi Api = new AliPayApi();
                            AlipayTradeQueryResponse queryResponse = Api.LoopAlipayQuery(ObjQuery);
                            if (queryResponse != null)
                            {
                                if (queryResponse.Code == "10000")
                                {
                                    if (queryResponse.TradeStatus == "TRADE_FINISHED" || queryResponse.TradeStatus == "TRADE_SUCCESS")
                                    {
                                        Orders = Orders.PaySuccess(Entity);
                                    }
                                }
                            }
                            #endregion
                        }

                        #endregion
                    }
                    if (PayConfig.DllName == "WeiXin")
                    {
                        #region 微信处理
                        //初始化支付配置
                        WxPayConfig WxPayConfig  = new WxPayConfig();
                        string[]    PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 appid,mchid,key,appsecret
                        if (PayConfigArr.Length != 4 && PayConfigArr.Length != 5)
                        {
                            DataObj.OutError("9999");
                            return;
                        }
                        string ServerIp     = ConfigurationManager.AppSettings["ServerIp"].ToString();
                        string Wx_Cert_Path = ConfigurationManager.AppSettings["Wx_Cert_Path"].ToString();
                        string Wx_Cert_PWD  = ConfigurationManager.AppSettings["Wx_Cert_PWD"].ToString();
                        WxPayConfig.IP        = ServerIp;
                        WxPayConfig.APPID     = PayConfigArr[0];
                        WxPayConfig.MCHID     = PayConfigArr[1];
                        WxPayConfig.KEY       = PayConfigArr[2];
                        WxPayConfig.APPSECRET = PayConfigArr[3];
                        if (PayConfigArr.Length == 5)
                        {
                            WxPayConfig.SubMCHID = PayConfigArr[4];
                        }
                        WxPayConfig.SSLCERT_PATH     = Wx_Cert_Path;
                        WxPayConfig.SSLCERT_PASSWORD = Wx_Cert_PWD;
                        //支付配置结束
                        int queryTimes = 10;    //查询次数计数器
                        int Run        = 0;
                        while (queryTimes > 0 && Run != 1)
                        {
                            int       succResult  = 0;//查询结果
                            MicroPay  MicroPay    = new MicroPay();
                            WxPayData queryResult = MicroPay.WXQuery(Orderf2f.OId, WxPayConfig, Entity, out succResult);
                            //如果需要继续查询,则等待2s后继续
                            if (succResult == 2)
                            {
                                //Thread.Sleep(5000);
                                //continue;
                                Run = 1;    //跳出循环,20160420
                            }
                            //查询成功,返回订单查询接口返回的数据
                            else if (succResult == 1)
                            {
                                Orderf2f.Trade_no = queryResult.GetValue("transaction_id").ToString();
                                int ret = Entity.SaveChanges();
                                Orders = Orders.PaySuccess(Entity);
                                Run    = 1;
                            }
                            //订单交易失败
                            else
                            {
                                Orders.TState       = 0;
                                Orderf2f.OrderState = 0;
                                Entity.SaveChanges();
                            }
                            queryTimes--;
                        }
                        #endregion
                    }
                    if (PayConfig.DllName == "HFAliPay" || PayConfig.DllName == "HFWeiXin")
                    {
                        #region 好付处理
                        string[] QueryArr = PayConfig.QueryArray.Split(',');
                        if (QueryArr.Length == 3)
                        {
                            //提交结算中心
                            string merId      = QueryArr[0]; //商户号
                            string merKey     = QueryArr[1]; //商户密钥
                            string orderId    = Orders.TNum; //商户流水号
                            string PostJson   = "{\"merid\":\"" + merId + "\",\"orderid\":\"" + orderId + "\"}";
                            string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8");
                            string Sign       = (DataBase64 + merKey).GetMD5();
                            DataBase64 = HttpUtility.UrlEncode(DataBase64);
                            string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign);
                            string HF_Url   = "https://api.zhifujiekou.com/api/query";
                            string Ret      = Utils.PostRequest(HF_Url, PostData, "utf-8");

                            JObject JS = new JObject();
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Log.Write("[Order_HFQuery]:", "【Ret】" + Ret, Ex);
                            }
                            if (JS == null)
                            {
                                DataObj.OutError("1000");
                                return;
                            }
                            string resp = JS["resp"].ToString();
                            Ret = LokFuEncode.Base64Decode(resp, "utf-8");
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Log.Write("[Order_HFQuery]:", "【Ret2】" + Ret, Ex);
                            }
                            if (JS == null)
                            {
                                DataObj.OutError("1000");
                                return;
                            }
                            string respcode = JS["respcode"].ToString();
                            if (respcode != "00")
                            {
                                string respmsg = JS["respmsg"].ToString();
                                DataObj.OutError("1000");
                                Utils.WriteLog("[Order_HFQuery_Err]:【" + respcode + "】" + respmsg, "orderface");
                                return;
                            }
                            string resultcode = JS["resultcode"].ToString();
                            if (resultcode == "0000" || resultcode == "1002" || resultcode == "1004")
                            {
                                string txnamt    = JS["txnamt"].ToString();
                                int    factmoney = int.Parse(txnamt);
                                if (((int)(Orders.Amoney * 100)) == factmoney)
                                {
                                    Orders = Orders.PaySuccess(Entity);
                                }
                            }
                        }
                        #endregion
                    }
                }
                DataObj.Data = Orders.OutJson();
                DataObj.Code = "0000";
                DataObj.OutString();
            }
            if (OrderF2F.Action == "Cancel")//取消交易
            {
                //开始处理参数
                if (OrderF2F.OId.IsNullOrEmpty())
                {
                    DataObj.OutError("1000");
                    return;
                }
                Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == OrderF2F.OId && n.UId == baseUsers.Id);
                if (Orders == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                OrderF2F Orderf2f = Entity.OrderF2F.FirstOrDefault(n => n.OId == OrderF2F.OId && n.UId == baseUsers.Id);
                if (Orders.TState == 1 && Orders.PayState == 0)
                {
                    PayConfig PayConfig = Entity.PayConfig.FirstOrNew(n => n.Id == Orders.PayWay);
                    if (PayConfig.DllName == "AliPay")
                    {
                        #region 支付宝处理
                        string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' });    //接口信息 商户号,密钥,支付宝号
                        if (PayConfigArr.Length != 3)
                        {
                            DataObj.OutError("9999");
                            return;
                        }
                        if (AlipayVer == "1.0")
                        {
                            #region 1.0老接口
                            string    pid = PayConfigArr[0];
                            string    key = PayConfigArr[1];
                            AliPayApi Api = new AliPayApi();
                            Api.AlipayCancel(Orders.TNum, pid, key);
                            #endregion
                        }
                        if (AlipayVer == "2.0")
                        {
                            #region 2.0新接口
                            ALF2FPAY ALF2FPAY = new ALF2FPAY();
                            ALF2FPAY.pid   = PayConfigArr[0];
                            ALF2FPAY.appId = PayConfigArr[2];
                            IAopClient  client    = new DefaultAopClient(ALF2FPAY.serverUrl, ALF2FPAY.appId, ALF2FPAY.merchant_private_key, "json", ALF2FPAY.version, ALF2FPAY.sign_type, ALF2FPAY.alipay_public_key, ALF2FPAY.charset);
                            string      CancelStr = "{\"out_trade_no\":\"" + Orders.TNum + "\"}";
                            ALF2FPAYObj ObjCancel = new ALF2FPAYObj();
                            ObjCancel.BizCode = CancelStr;
                            ObjCancel.Client  = client;
                            ObjCancel.Entity  = Entity;
                            AliPayApi Api = new AliPayApi();
                            Api.AlipayCancel(ObjCancel);
                            #endregion
                        }
                        #endregion
                    }
                    if (PayConfig.DllName == "WeiXin")
                    {
                        #region 微信处理
                        //初始化支付配置
                        WxPayConfig WxPayConfig  = new WxPayConfig();
                        string[]    PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 appid,mchid,key,appsecret
                        if (PayConfigArr.Length != 4 && PayConfigArr.Length != 5)
                        {
                            DataObj.OutError("9999");
                            return;
                        }
                        string ServerIp     = ConfigurationManager.AppSettings["ServerIp"].ToString();
                        string Wx_Cert_Path = ConfigurationManager.AppSettings["Wx_Cert_Path"].ToString();
                        string Wx_Cert_PWD  = ConfigurationManager.AppSettings["Wx_Cert_PWD"].ToString();
                        WxPayConfig.IP        = ServerIp;
                        WxPayConfig.APPID     = PayConfigArr[0];
                        WxPayConfig.MCHID     = PayConfigArr[1];
                        WxPayConfig.KEY       = PayConfigArr[2];
                        WxPayConfig.APPSECRET = PayConfigArr[3];
                        if (PayConfigArr.Length == 5)
                        {
                            WxPayConfig.SubMCHID = PayConfigArr[4];
                        }
                        WxPayConfig.SSLCERT_PATH     = Wx_Cert_Path;
                        WxPayConfig.SSLCERT_PASSWORD = Wx_Cert_PWD;
                        //支付配置结束
                        MicroPay MicroPay = new MicroPay();
                        MicroPay.WXCancel(OrderF2F.OId, WxPayConfig, Entity);    //取消订单,重试10次
                        #endregion
                    }
                    if (PayConfig.DllName == "HFAliPay" || PayConfig.DllName == "HFWeiXin")
                    {
                        #region 好付处理
                        string[] QueryArr = PayConfig.QueryArray.Split(',');
                        if (QueryArr.Length == 3)
                        {
                            //提交结算中心
                            string merId      = QueryArr[0]; //商户号
                            string merKey     = QueryArr[1]; //商户密钥
                            string orderId    = Orders.TNum; //商户流水号
                            string PostJson   = "{\"merid\":\"" + merId + "\",\"orderid\":\"" + orderId + "\"}";
                            string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8");
                            string Sign       = (DataBase64 + merKey).GetMD5();
                            DataBase64 = HttpUtility.UrlEncode(DataBase64);
                            string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign);
                            string HF_Url   = "https://api.zhifujiekou.com/api/cancel";
                            string Ret      = Utils.PostRequest(HF_Url, PostData, "utf-8");

                            JObject JS = new JObject();
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Log.Write("[Order_HFCancel]:", "【Ret】" + Ret, Ex);
                            }
                            if (JS == null)
                            {
                                DataObj.OutError("1000");
                                return;
                            }
                            string resp = JS["resp"].ToString();
                            Ret = LokFuEncode.Base64Decode(resp, "utf-8");
                            try
                            {
                                JS = (JObject)JsonConvert.DeserializeObject(Ret);
                            }
                            catch (Exception Ex)
                            {
                                Log.Write("[Order_HFCancel]:", "【Ret2】" + Ret, Ex);
                            }
                            if (JS == null)
                            {
                                DataObj.OutError("1000");
                                return;
                            }
                            string respcode = JS["respcode"].ToString();
                            if (respcode != "00")
                            {
                                string respmsg = JS["respmsg"].ToString();
                                DataObj.OutError("1000");
                                Utils.WriteLog("[Order_HFQuery_Err]:【" + respcode + "】" + respmsg, "orderface");
                                return;
                            }
                        }
                        #endregion
                    }
                    Orders.TState       = 0;
                    Orderf2f.OrderState = 0;
                    Entity.SaveChanges();
                }
                DataObj.Data = Orders.OutJson();
                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("[MsgNotice]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            MsgNotice MsgNotice = new MsgNotice();

            MsgNotice = JsonToObject.ConvertJsonToModel(MsgNotice, json);

            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == MsgNotice.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;
            //}

            //下次改版让手机端传AgentId,这让有点伤性能,然后删除这条备注
            SysAgent SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent);

            SysAgent = SysAgent.GetTopAgent(Entity);

            EFPagingInfo <MsgNotice> p = new EFPagingInfo <MsgNotice>();

            if (!MsgNotice.Pg.IsNullOrEmpty())
            {
                p.PageIndex = MsgNotice.Pg;
            }
            if (!MsgNotice.Pgs.IsNullOrEmpty())
            {
                p.PageSize = MsgNotice.Pgs;
            }

            p.SqlWhere.Add(f => f.NType == 0 || f.NType == 3);
            p.SqlWhere.Add(f => f.State == 1 && f.AddTime > baseUsers.AddTime);
            int AgentId = 999999999;

            if (SysAgent.IsTeiPai == 1)
            {
                AgentId = SysAgent.Id;
            }
            p.SqlWhere.Add(f => f.AgentId == 0 || f.AgentId == AgentId);

            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <MsgNotice> List = Entity.Selects <MsgNotice>(p);

            //处理以读未读
            string UserId = string.Format("|{0}|", baseUsers.Id);

            foreach (var pp in List)
            {
                pp.State = (byte)(pp.ReadUsers != null && pp.ReadUsers.IndexOf(UserId) == -1 ? 1 : 2);
                if (pp.Info != null)
                {
                    pp.Info = Utils.RemoveHtml(pp.Info);
                    pp.Info = pp.Info.Replace("	", "");
                }
            }
            IList <MsgNotice> iList = List.ToList();
            StringBuilder     sb    = new StringBuilder("");

            sb.Append("{");
            sb.Append(List.PageToString());
            sb.Append(",");
            sb.Append(iList.EntityToString());
            sb.Append("}");
            DataObj.Data = sb.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("[OrderRecharge]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }

            OrderRecharge OrderRecharge = new OrderRecharge();

            OrderRecharge = JsonToObject.ConvertJsonToModel(OrderRecharge, json);

            UserTrack UserTrack = new UserTrack();

            UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json);
            int PayWay = OrderRecharge.PayWay;

            if (PayWay.IsNullOrEmpty())
            {
                PayWay = OrderRecharge.AId;
            }
            if (PayWay.IsNullOrEmpty())
            {
                //支付方式,用于取出支付费率信息,计算各接口金额
                DataObj.OutError("1000");
                return;
            }
            if (OrderRecharge.PayType.IsNullOrEmpty())
            {
                OrderRecharge.PayType = 0;
            }
            //获取用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderRecharge.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                DataObj.OutError("2003");
                return;
            }

            int InType = 0;

            if (!OrderRecharge.InType.IsNullOrEmpty())
            {
                InType = 1;
            }
            SysControl SysControl = new SysControl();
            bool       IsNew      = true;

            if (OrderRecharge.Id.IsNullOrEmpty())
            {
                //这是旧逻辑,有一些旧版还在用
                #region 版本比较 升级之后比较长时间后可以考滤删除版本判断代码
                SysAgent vSysAgent = Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent);
                if (vSysAgent == null)
                {
                    DataObj.OutError("1000");
                    return;
                }
                IsNew = BizExt.NewOrOldVersion(vSysAgent, Equipment, this.Entity);
                #endregion
                if (IsNew)//新版
                {
                    if (InType == 1)
                    {
                        SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == "RecMoneyLocal" && n.PayWay == PayWay && n.LagEntryDay > 0);
                    }
                    else
                    {
                        SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == "RecMoneyLocal" && n.PayWay == PayWay && n.LagEntryDay == 0);
                    }
                }
                else//旧版
                {
                    SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == "RecMoneyLocal" && n.PayWay == PayWay);
                }
            }
            else
            {
                SysControl = Entity.SysControl.FirstOrDefault(n => n.Id == OrderRecharge.Id);
                PayWay     = SysControl.PayWay;
                if (SysControl.LagEntryDay > 0)
                {
                    InType = 1;
                }
                else
                {
                    InType = 0;
                }
            }
            //获取系统支付配置
            if (SysControl == null)
            {
                DataObj.OutError("1005");
                return;
            }
            if (InType == 1 && (SysControl.LagEntryDay.IsNullOrEmpty() || SysControl.LagEntryNum.IsNullOrEmpty()))
            {
                DataObj.Msg = "请升级到最新版再发起Tn到帐交易!";
                DataObj.OutError("1005");
                return;
            }
            SysControl syscontrol = SysControl.ChkState();
            if (syscontrol.State != 1)
            {
                DataObj.OutError("1005");
                return;
            }

            //开始处理参数
            if (OrderRecharge.Amoney.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            OrderRecharge.Amoney = OrderRecharge.Amoney.FormatMoney();

            if (OrderRecharge.X.IsNullOrEmpty() || OrderRecharge.Y.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }

            //获取用户支付配置
            UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PId == PayWay);
            if (UserPay == null)
            {
                DataObj.Msg = "你当前版本不支持该交易,请等待新版本发布及升级!";
                DataObj.OutError("1000");
                return;
            }
            //获取系统支付配置
            PayConfig PayConfig = Entity.PayConfig.FirstOrDefault(n => n.Id == PayWay && n.State == 1);
            if (PayConfig == null)
            {
                DataObj.OutError("1000");
                return;
            }
            if (PayConfig.GroupType != "Bank")
            {
                DataObj.OutError("1000");
                return;
            }
            //获取分支机构信息
            SysAgent SysAgent = new SysAgent();
            if (!baseUsers.Agent.IsNullOrEmpty())
            {
                SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent);
            }
            //获取系统配置
            SysSet SysSet = Entity.SysSet.FirstOrDefault();
            if (InType == 1)
            {//客户端传来T+N但是系统没开启时无效
                if (SysSet.LagEntry == 0)
                {
                    InType = 0;
                }
            }
            //本算法在当系统费用为0时有问题,系统费用为0的T5会导致代理分不到钱。
            if (InType == 1)
            {
                //T+N免手续费
                OrderRecharge.Poundage = 0;
                //商户费率
                OrderRecharge.UserRate = 0;
                //T+n时,代理佣金为 交易金额*费率

                decimal AgentPayGet = OrderRecharge.Amoney * SysSet.AgentGet;
                OrderRecharge.AgentPayGet = (Double)AgentPayGet;
                //佣金舍位
                OrderRecharge.AgentPayGet = OrderRecharge.AgentPayGet.Floor();
            }
            else
            {
                //手续费
                OrderRecharge.Poundage = OrderRecharge.Amoney * (decimal)UserPay.Cost;
                //手续费取进
                OrderRecharge.Poundage = OrderRecharge.Poundage.Ceiling();
                //商户费率
                OrderRecharge.UserRate = UserPay.Cost;
                //分支机构佣金设置为0,待分润计算后再写入
                OrderRecharge.AgentPayGet = 0;
            }

            OrderRecharge.UId = baseUsers.Id;

            //到帐金额=支付金额-手续费
            OrderRecharge.PayMoney = OrderRecharge.Amoney - OrderRecharge.Poundage;
            //第三方支付通道率
            OrderRecharge.SysRate = (double)PayConfig.Cost;

            //这里是利润计算==========
            //利润=总金额-到帐-支付手续费
            decimal GetAll = OrderRecharge.Amoney - OrderRecharge.PayMoney - OrderRecharge.Amoney * (decimal)OrderRecharge.SysRate;
            //利润舍位
            GetAll = GetAll.Floor();
            //总利润
            OrderRecharge.AIdPayGet  = (double)GetAll;
            OrderRecharge.PayWay     = PayWay;
            OrderRecharge.Agent      = SysAgent.Id;//分支机构Id
            OrderRecharge.AId        = baseUsers.AId;
            OrderRecharge.FId        = 0;
            OrderRecharge.OrderState = 1;
            OrderRecharge.PayState   = 0;
            OrderRecharge.AgentState = 0;
            OrderRecharge.AddTime    = DateTime.Now;

            //写入前,判断交易金额限制
            if (OrderRecharge.Amoney < syscontrol.SNum || OrderRecharge.Amoney > syscontrol.ENum)
            {
                DataObj.OutError("1006");
                return;
            }

            //写入订单总表
            Orders Orders = new Orders();
            Orders.UId   = OrderRecharge.UId;
            Orders.TName = baseUsers.TrueName;

            Orders.PayType = OrderRecharge.PayType;
            switch (Orders.PayType)
            {
            case 0:
                Orders.ComeWay = 1;
                Orders.PayName = "充值-" + PayConfig.Name;
                break;

            case 1:
                Orders.ComeWay = 1;
                Orders.PayName = "短信收款-" + PayConfig.Name;
                break;

            case 2:
                Orders.ComeWay = 1;
                Orders.PayName = "本地收款-" + PayConfig.Name;
                break;

            case 3:
                Orders.ComeWay = 1;
                Orders.PayName = "当面付-" + PayConfig.Name;
                break;

            case 4:
                Orders.ComeWay = 2;
                Orders.PayName = "收银台-" + PayConfig.Name;
                break;
            }

            Orders.RUId     = 0;
            Orders.RName    = string.Empty;
            Orders.TType    = 1;
            Orders.TState   = 1;
            Orders.Amoney   = OrderRecharge.Amoney;
            Orders.Poundage = OrderRecharge.Poundage;
            Orders.AddTime  = DateTime.Now;
            Orders.PayState = 0;
            Orders.PayWay   = PayConfig.Id;

            Orders.Agent      = OrderRecharge.Agent;
            Orders.AgentState = 0;
            Orders.AId        = OrderRecharge.AId;
            Orders.FId        = 0;
            //Orders.ComeWay = 1;

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

            if (InType == 1)
            {
                if (IsNew)//新版
                {
                    Orders.LagEntryDay = SysControl.LagEntryDay;
                    Orders.LagEntryNum = SysControl.LagEntryNum;
                }
                else
                {
                    Orders.LagEntryDay = SysSet.LagEntryDay;
                    Orders.LagEntryNum = SysSet.LagEntryNum;
                }
            }
            else
            {
                Orders.LagEntryDay = 0;
                Orders.LagEntryNum = 0;
            }

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

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

            //=======================================
            UserTrack.ENo        = DataObj.ENo;
            UserTrack.OPType     = Orders.PayName;
            UserTrack.UserName   = Orders.TNum;
            UserTrack.GPSAddress = Orders.OrderAddress;
            UserTrack.GPSX       = Orders.X;
            UserTrack.GPSY       = Orders.Y;
            Orders.SeavGPSLog(UserTrack, Entity);
            //=======================================
            Orders.SendMsg(Entity);//发送消息类
            //=======================================
            Orders.Cols = "Id,TNum,PayId";
            string TNum = Orders.TNum;
            string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8);
            Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign;
            //=======================================
            DataObj.Data = Orders.OutJson();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
        public ActionResult Index(SysAgent SysAgent, EFPagingInfo <APPModule> p, int SourceAgentId = 0)
        {
            var APPModuleList = Entity.APPModule.Where(o => o.AgentId == SysAgent.Id && o.Version == 1 && o.State == 1).OrderBy(o => o.Sort).ToList();

            ViewBag.APPModuleList = APPModuleList;
            var APPBlockList = Entity.APPBlock.Where(o => o.AgentId == SysAgent.Id && o.State == 1).OrderBy(o => o.Sort).ToList();

            ViewBag.APPBlockList = APPBlockList;
            //加载类型选项
            string filename             = HttpContext.Server.MapPath("/ModuleTypeSelectList.json");
            string jsonstr              = System.IO.File.ReadAllText(filename);
            var    ModuleTypeSelectList = JsonConvert.DeserializeObject <SortedList <string, string> >(jsonstr);

            ViewBag.ModuleTypeSelectList = ModuleTypeSelectList;
            string Bottomfilename             = HttpContext.Server.MapPath("/ModuleTypeBottomSelectList.json");
            string Bottomjsonstr              = System.IO.File.ReadAllText(Bottomfilename);
            var    ModuleTypeBottomSelectList = JsonConvert.DeserializeObject <SortedList <string, string> >(Bottomjsonstr);

            ViewBag.ModuleTypeBottomSelectList = ModuleTypeBottomSelectList;
            //加载广告及标识
            AdTag bannerTag = Entity.AdTag.FirstOrDefault(o => o.Tag == "newBanner" && o.State == 1);

            ViewBag.BannerTag = bannerTag;
            if (bannerTag == null)
            {
                ViewBag.ErrorMsg = "无法找到广告标识";
                return(View("Error"));
            }
            var bannerInfos = Entity.AdInfo.OrderBy(o => o.Sort).Where(o => o.TId == bannerTag.Id && o.State == 1 && o.AgentId == SysAgent.Id).ToList();

            ViewBag.bannerInfos = bannerInfos;
            //贴牌代理
            var SysAgentList  = Entity.SysAgent.Where(o => o.IsTeiPai == 1 && o.State == 1).ToList();
            var haofusysagent = new SysAgent()
            {
                Id           = 0,
                Name         = "好付",
                AppBtnNumber = BasicSet.AppBtnNumber,
                APPHasMore   = BasicSet.APPHasMore,
                APPName      = BasicSet.Name,
            };

            SysAgentList.Add(haofusysagent);
            SysAgentList          = SysAgentList.OrderBy(o => o.Id).ToList();
            ViewBag.SysAgentList  = SysAgentList;
            ViewBag.SysAgent      = SysAgentList.FirstOrNew(o => o.Id == SysAgent.Id);
            ViewBag.SourceAgentId = SourceAgentId;
            if (Request.UrlReferrer != null)
            {
                Session["Url"] = Request.UrlReferrer.ToString();
            }

            //取得系统图标
            string PhysicalApplicationPath = this.HttpContext.Request.PhysicalApplicationPath;
            string APPModelPath            = PhysicalApplicationPath + "UpLoadFiles\\APPModule\\";
            var    homeDir      = new System.IO.DirectoryInfo(APPModelPath + "home2");
            var    bottomDefDir = new System.IO.DirectoryInfo(APPModelPath + "bottom2\\default");
            var    bottomActDir = new System.IO.DirectoryInfo(APPModelPath + "bottom2\\activate");

            var homeFiles      = homeDir.GetFiles();
            var bottomDefFiles = bottomDefDir.GetFiles();
            var bottomActFiles = bottomActDir.GetFiles();

            ViewBag.homeFiles          = homeFiles;
            ViewBag.bottomDefaultFiles = bottomDefFiles;
            ViewBag.bottomActFiles     = bottomActFiles;

            //公告
            var Notice = this.Entity.MsgNotice.Where(o => (o.AgentId == 0 || o.AgentId == SysAgent.Id) && (o.NType == 0 || o.NType == 3) && o.State == 1).OrderByDescending(o => o.Id)
                         .Select(o => new { info = o.Info }).FirstOrDefault();
            var ninfo = string.Empty;

            if (Notice != null)
            {
                ninfo += Notice.info.IsNullOrEmpty() ? Notice.info : Utils.RemoveHtml(Notice.info) + "          ";
            }
            ViewBag.ninfo = ninfo;

            this.ViewBag.IsSave       = this.checkSignPower("Save");
            this.ViewBag.IsDelete     = this.checkSignPower("Delete");
            this.ViewBag.IsImportData = this.checkPower("ImportData");
            return(View());
        }
Example #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("[Users]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            Users Users = new Users();

            Users = JsonToObject.ConvertJsonToModel(Users, json);

            //获取用户信息
            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Users.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                DataObj.OutError("2003");
                return;
            }
            //判断是否为代理商
            SysAgent         SysAgent     = Entity.SysAgent.FirstOrDefault(o => o.LinkMobile == baseUsers.UserName && o.State == 1);
            IList <SysAgent> SysAgentList = null;
            IList <Users>    UsersList    = null;
            SysSet           baseSysSet   = Entity.SysSet.FirstOrDefault();

            //1用户2代理商
            if (SysAgent != null)
            {
                baseUsers.UserType = 2;
            }
            else
            {
                baseUsers.UserType = 1;
            }
            //if (baseUsers.UserType == 1)
            //{
            UsersList           = baseUsers.GetSupUsers(Entity, baseSysSet.GlobaPromoteMaxLevel);
            UsersList           = UsersList.Where(o => o.Id != baseUsers.Id).ToList();
            baseUsers.UserTotal = UsersList.Count();
            // }
            if (baseUsers.UserType == 2)
            {
                SysAgentList = SysAgent.GetSupAgent(Entity);
                IList <int> agents = SysAgentList.Where(o => o.Id != SysAgent.Id).Select(o => o.Id).ToList();
                // UsersList = Entity.Users.Where(o => agents.Contains(o.Agent) && o.Id != baseUsers.Id).ToList();
                //baseUsers.UserTotal = UsersList.Count();
                //SysAgentList = SysAgentList.Where(o => o.Id != SysAgent.Id).ToList();
                baseUsers.AgentTotal = agents.Count();
            }
            baseUsers.Cols = "Id,UserName,UserType,UserTotal,AgentTotal";
            DataObj.Data   = baseUsers.OutJson();
            DataObj.Code   = "0000";
            DataObj.OutString();
        }
        public ActionResult Index(UserPayChange UserPayChange, EFPagingInfo <UserPayChange> p, bool?IsShowSupAgent, int IsFirst = 0)
        {
            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            if (IsFirst == 0)
            {
                PageOfItems <UserPayChange> UserPayChangeList1 = new PageOfItems <UserPayChange>(new List <UserPayChange>(), 0, 10, 0, new Hashtable());
                ViewBag.UserPayChangeList = UserPayChangeList1;
                ViewBag.UserPayChange     = UserPayChange;
                ViewBag.UsersList         = null;
                ViewBag.SysAdminList      = Entity.SysAdmin.Where(n => n.State == 1).ToList();
                ViewBag.SysAgentList      = Entity.SysAgent.Where(n => n.State == 1).ToList();
                ViewBag.IsShowSupAgent    = IsShowSupAgent;//是否显示下级

                return(View());
            }
            //if (UserPayChange.State.IsNullOrEmpty())
            //{
            //    UserPayChange.State = 1;
            //}
            //if (UserPayChange.State == 99)
            //{
            //    UserPayChange.State = 0;
            //}
            if (!UserPayChange.Remark.IsNullOrEmpty())
            {
                IList <Users> UList = Entity.Users.Where(n => n.TrueName.Contains(UserPayChange.Remark) || n.NeekName.Contains(UserPayChange.Remark) || n.UserName == UserPayChange.Remark).ToList();
                List <int>    UIds  = new List <int>();
                foreach (var pp in UList)
                {
                    UIds.Add(pp.Id);
                }
                p.SqlWhere.Add(f => UIds.Contains(f.UId));
            }
            if (!UserPayChange.State.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.State == UserPayChange.State);
            }
            if (!UserPayChange.SId.IsNullOrEmpty())
            {
                //是否要显示下级
                if ((bool)IsShowSupAgent)
                {
                    SysAgent         LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == UserPayChange.SId).FirstOrNew();
                    IList <SysAgent> SysAgentList    = LowerLevelAgent.GetSupAgent(Entity);
                    IList <int>      UID             = new List <int>();
                    foreach (var s in SysAgentList)
                    {
                        UID.Add(s.Id);
                    }
                    p.SqlWhere.Add(f => UID.Contains(f.SId));
                }
                else
                {
                    p.SqlWhere.Add(f => f.SId == UserPayChange.SId);
                }
            }
            if (!UserPayChange.SAId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.SAId == UserPayChange.SAId);
            }
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <UserPayChange> UserPayChangeList = null;

            if (IsFirst == 0)
            {
                UserPayChangeList = new PageOfItems <UserPayChange>(new List <UserPayChange>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                UserPayChangeList = Entity.Selects <UserPayChange>(p);
            }
            ViewBag.UserPayChangeList = UserPayChangeList;
            ViewBag.UserPayChange     = UserPayChange;
            IList <UserPayChange> List = UserPayChangeList.GroupBy(n => n.UId).Select(n => n.First()).ToList();
            List <int>            UId  = new List <int>();

            foreach (var pp in List)
            {
                UId.Add(pp.UId);
            }
            ViewBag.UsersList      = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList();
            ViewBag.SysAdminList   = Entity.SysAdmin.Where(n => n.State == 1).ToList();
            ViewBag.SysAgentList   = Entity.SysAgent.Where(n => n.State == 1).ToList();
            ViewBag.IsShowSupAgent = IsShowSupAgent;//是否显示下级
            ViewBag.Edit           = this.checkPower("Edit");
            ViewBag.Save           = this.checkPower("Save");
            return(View());
        }
        public ActionResult EditImportData(string guanggao, string saoma, string home, string bottom, string more, int TargetAgentId, int SourceAgentId)
        {
            #region 校验
            if (SourceAgentId == TargetAgentId)
            {
                ViewBag.ErrorMsg = "不能导入自己的数据,请重新选择";
                return(View("Error"));
            }
            if (TargetAgentId == 0)
            {
                ViewBag.ErrorMsg = "不能导入到默认(好付)的数据,请重新选择";
                return(View("Error"));
            }
            if (SourceAgentId != 0)
            {
                SysAgent SysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == SourceAgentId);
                if (SysAgent == null)
                {
                    ViewBag.ErrorMsg = "源代理商不存在";
                    return(View("Error"));
                }
            }
            if (TargetAgentId != 0)
            {
                SysAgent SysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == TargetAgentId);
                if (SysAgent == null)
                {
                    ViewBag.ErrorMsg = "目标代理商不存在";
                    return(View("Error"));
                }
            }
            #endregion

            #region 替换
            if (!guanggao.IsNullOrEmpty())
            {
                this.ReplaceAdInfo(SourceAgentId, TargetAgentId, "banner");
            }

            if (!saoma.IsNullOrEmpty())
            {
                this.ReplaceAdInfo(SourceAgentId, TargetAgentId, "SaoBg");
            }

            if (!home.IsNullOrEmpty())
            {
                this.ReplaceAPPModule(SourceAgentId, TargetAgentId, 1);
            }

            if (!bottom.IsNullOrEmpty())
            {
                this.ReplaceAPPModule(SourceAgentId, TargetAgentId, 2);
            }

            if (!more.IsNullOrEmpty())
            {
                this.ReplaceAPPModule(SourceAgentId, TargetAgentId, 3);
            }
            #endregion

            this.UpdateVersionAll(TargetAgentId);

            this.Entity.SaveChanges();
            System.Threading.Tasks.Task t = new System.Threading.Tasks.Task(() =>
            {
                ClearCacheSysConfig();
                ClearCacheAdInfo();
            });
            return(this.RedirectToRoute("ManageAction", new { action = "Index", Controller = "APPModule", Id = TargetAgentId, SourceAgentId = SourceAgentId }));
        }
        public void Post()
        {
            SysSet SysSet = new SysSet();
            string Data   = DataObj.GetData();

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

                //处理贴牌相关
                SysAgent SysAgent = new SysAgent();
                SysAgent = JsonToObject.ConvertJsonToModel(SysAgent, json);
                if (SysAgent.Id.IsNullOrEmpty())
                {
                    SysAgent.Id = 0;
                }

                bool IsOld = true;
                if (!Equipment.SoftVer.IsNullOrEmpty())
                {
                    Version v1 = new Version(Equipment.SoftVer);//当前版本
                    Version v2 = new Version("1.0");

                    if (!SysAgent.Id.IsNullOrEmpty())
                    {
                        SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == SysAgent.Id && n.State == 1 && n.IsTeiPai == 1);
                    }
                    if (SysAgent == null)
                    {
                        DataObj.OutError("1000");
                        return;
                    }
                    if (Equipment.RqType.ToLower() == "apple")
                    {
                        //苹果
                        if (SysAgent.IsTeiPai.IsNullOrEmpty())//好付
                        {
                            v2 = new Version("7.5");
                        }
                        else//贴牌
                        {
                            v2 = new Version("5.0");
                        }
                    }
                    else if (Equipment.RqType.ToLower() == "android")
                    {
                        //安卓
                        if (SysAgent.IsTeiPai.IsNullOrEmpty())//好付
                        {
                            v2 = new Version("6.6.6");
                        }
                        else //贴牌
                        {
                            v2 = new Version("4.0");
                        }
                    }
                    if (v1 >= v2)
                    {
                        IsOld = false;
                    }
                }

                string CashName = "SysConfig_" + (IsOld ? "O" : "N") + "_" + Equipment.RqType + SysAgent.Id;

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

                SysSet = Entity.SysSet.FirstOrDefault();
                if (!SysAgent.Id.IsNullOrEmpty())
                {
                    if (!SysAgent.IsTeiPai.IsNullOrEmpty())
                    {
                        //SysSet.Name = SysAgent.Name;

                        SysSet.IosVer   = SysAgent.IosVer;
                        SysSet.IosInt   = SysAgent.IosInt;
                        SysSet.IosUrl   = SysAgent.IosUrl;
                        SysSet.IosInfo  = SysAgent.IosInfo;
                        SysSet.IosColor = SysAgent.IosColor.IsNullOrEmpty() ? SysSet.IosColor : SysAgent.IosColor;

                        SysSet.ApkVer   = SysAgent.ApkVer;
                        SysSet.ApkInt   = SysAgent.ApkInt;
                        SysSet.ApkUrl   = SysAgent.ApkUrl;
                        SysSet.ApkInfo  = SysAgent.ApkInfo;
                        SysSet.ApkColor = SysAgent.ApkColor.IsNullOrEmpty() ? SysSet.ApkColor : SysAgent.ApkColor;

                        SysSet.Tel = SysAgent.Tel;

                        SysSet.AppBtnNumber  = SysAgent.AppBtnNumber.IsNullOrEmpty() ? SysSet.AppBtnNumber : SysAgent.AppBtnNumber;
                        SysSet.APPHasMore    = SysAgent.APPHasMore.IsNullOrEmpty() ? SysSet.APPHasMore : SysAgent.APPHasMore;
                        SysSet.AppMenuBottom = SysAgent.AppMenuBottom;
                        SysSet.AppMenuHome   = SysAgent.AppMenuHome;
                        SysSet.AppMenuMore   = SysAgent.AppMenuMore;
                        SysSet.Name          = SysAgent.APPName.IsNullOrEmpty() ? SysAgent.Name : SysAgent.APPName;

                        SysSet.ApkSet3 = SysAgent.Set3;
                        SysSet.IosSet3 = SysAgent.Set3;

                        SysSet.ApkSet4 = SysAgent.Set4;
                        SysSet.IosSet4 = SysAgent.Set4;

                        #region 废弃
                        //特别处理,等开放自由设置后,需要去掉
                        //惠付钱包615 不要分享挣钱
                        //商银汇富796 激活码必填、不要分享挣钱
                        //铭越钱包1348不要降费率
                        //0 关闭 1仅开挣钱 2仅开降费率 3都打开
                        //if (SysAgent.Id == 615)
                        //{
                        //    if (SysSet.ApkSet4 == 3 || SysSet.ApkSet4 == 2)
                        //    {
                        //        SysSet.ApkSet4 = 2;
                        //    }
                        //    else
                        //    {
                        //        SysSet.ApkSet4 = 0;
                        //    }
                        //    if (SysSet.IosSet4 == 3 || SysSet.IosSet4 == 2)
                        //    {
                        //        SysSet.IosSet4 = 2;
                        //    }
                        //    else
                        //    {
                        //        SysSet.IosSet4 = 0;
                        //    }
                        //    //激活码必填
                        //    SysSet.ApkSet3 = 1;
                        //    SysSet.IosSet3 = 1;
                        //}
                        //if (SysAgent.Id == 796)
                        //{
                        //    if (SysSet.ApkSet4 == 3 || SysSet.ApkSet4 == 2)
                        //    {
                        //        SysSet.ApkSet4 = 2;
                        //    }
                        //    else
                        //    {
                        //        SysSet.ApkSet4 = 0;
                        //    }
                        //    if (SysSet.IosSet4 == 3 || SysSet.IosSet4 == 2)
                        //    {
                        //        SysSet.IosSet4 = 2;
                        //    }
                        //    else
                        //    {
                        //        SysSet.IosSet4 = 0;
                        //    }
                        //    //激活码必填
                        //    SysSet.ApkSet3 = 1;
                        //    SysSet.IosSet3 = 1;
                        //}
                        //if (SysAgent.Id == 1348)
                        //{
                        //    if (SysSet.ApkSet4 == 3 || SysSet.ApkSet4 == 1)
                        //    {
                        //        SysSet.ApkSet4 = 1;
                        //    }
                        //    else {
                        //        SysSet.ApkSet4 = 0;
                        //    }
                        //    if (SysSet.IosSet4 == 3 || SysSet.IosSet4 == 1)
                        //    {
                        //        SysSet.IosSet4 = 1;
                        //    }
                        //    else
                        //    {
                        //        SysSet.IosSet4 = 0;
                        //    }
                        //}
                        #endregion

                        if (SysAgent.IsShowWord.IsNullOrEmpty())
                        {
                            SysSet.AppWord = "";
                        }
                    }
                    else
                    {
                        DataObj.OutError("3005");
                        return;
                    }
                }

                //处理返回支付通道配置
                IList <SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl
                foreach (var p in SysControlList)
                {
                    p.Cols = "Tag,CName,State,SNum,ENum,PayWay";
                    p.ChkState();
                }
                //处理关闭的不显示
                //IList<SysControl> SCList = new List<SysControl>();
                //foreach (var p in SysControlList) {
                //    if (p.State == 1) {
                //        SCList.Add(p);
                //    }
                //}
                if (IsOld)
                {
                    //老板本,去除新加的标识
                    SysControlList = SysControlList.Where(n => n.Id < 16).ToList();
                }
                SysSet.CtrlSet = SysControlList.EntityToJson();

                //处理图标菜单
                Dictionary <int, List <APPModule> > APPModuleDictionary = new Dictionary <int, List <APPModule> >();
                int[] DisplaySite = new int[] { 1, 2, 3 };//1:home 2:底部 3:更多
                foreach (var index in DisplaySite)
                {
                    List <APPModule> List = new List <APPModule>();
                    //SysSet.APPHasMore 0:未设置 1:有 2:无
                    if (!(SysSet.APPHasMore == 2 && index == 3))
                    {
                        //查询区域的图标
                        IQueryable <APPModule> query = Entity.APPModule.Where(n => n.State == 1 && n.DisplaySite == index && n.Version == 0).OrderBy(o => o.Sort);
                        int count = 0;
                        if (!SysAgent.Id.IsNullOrEmpty())
                        {
                            IQueryable <APPModule> countQuery = query.Where(n => n.AgentId == SysAgent.Id);
                            count = countQuery.Count();
                            if (count > 0)
                            {
                                query = countQuery;
                            }
                        }

                        //如果未配置使用默认(好付)的配置
                        if (count == 0)
                        {
                            query = query.Where(n => n.AgentId == 0);
                        }

                        //宫格模式
                        if (index == 1)
                        {
                            int take = SysSet.AppBtnNumber * 3;
                            if (SysSet.APPHasMore == 1)
                            {
                                take = take - 1;
                            }
                            query = query.Take(take);
                        }

                        List = query.ToList();
                        //添加Url域名
                        List.ForEach(o =>
                        {
                            o.PictureUrl = Utils.ImageUrl("APPModule", o.PictureUrl, SysImgPath);
                            if (!o.PicUrl.IsNullOrEmpty())
                            {
                                o.PicUrl = Utils.ImageUrl("APPModule", o.PicUrl, SysImgPath);
                            }
                        });
                    }

                    APPModuleDictionary.Add(index, List);
                }

                //添加更多按钮
                APPModule APP = new APPModule();
                APP.Id          = 0;
                APP.Name        = "更多";
                APP.PictureUrl  = Utils.ImageUrl("APPModule", "gd.png", SysImgPath);
                APP.Value       = "GD_home";
                APP.ModuleType  = 1;
                APP.AddTime     = DateTime.Now;
                APP.State       = 1;
                APP.DisplaySite = 1;
                APP.Sort        = 999;
                APPModuleDictionary[1].Add(APP);

                SysSet.Home   = APPModuleDictionary[1].OrderBy(o => o.Sort).ToList().EntityToJson();
                SysSet.Bottom = APPModuleDictionary[2].OrderBy(o => o.Sort).ToList().EntityToJson();
                SysSet.More   = APPModuleDictionary[3].OrderBy(o => o.Sort).ToList().EntityToJson();

                //处理快速到帐相关
                if (SysSet.SW1Key.IsNullOrEmpty())
                {
                    SysSet.SW1Key = "2小时到帐";
                }
                if (SysSet.SW2Key.IsNullOrEmpty())
                {
                    SysSet.SW2Key = "次日到帐";
                }
                DateTime Now = DateTime.Now;
                if (!SysSet.SW1sTime.IsNullOrEmpty() && !SysSet.SW1eTime.IsNullOrEmpty())
                {
                    if (SysSet.SW1sTime <= Now && SysSet.SW1eTime > Now)
                    {
                        if (!SysSet.SW1KeyT.IsNullOrEmpty())
                        {
                            SysSet.SW1Key = SysSet.SW1KeyT;
                        }
                    }
                }
                if (!SysSet.SW2sTime.IsNullOrEmpty() && !SysSet.SW2eTime.IsNullOrEmpty())
                {
                    if (SysSet.SW2sTime <= Now && SysSet.SW2eTime > Now)
                    {
                        if (!SysSet.SW2KeyT.IsNullOrEmpty())
                        {
                            SysSet.SW2Key = SysSet.SW2KeyT;
                        }
                    }
                }
                //定义返回数据
                if (Equipment.RqType == "Apple")
                {
                    SysSet.Cols = "Name,IosVer,IosInt,IosUrl,IosInfo,IOSState,IosSet1,IosSet2,IosSet3,IosSet4,IosSet5,IosSet6,IosSet7,IosSet8,IosSet9,IosSet10,IosSet11,CtrlSet,Tel,CtrlMoney1,Home,More,Bottom,AppMenuHome,AppMenuMore,AppMenuBottom,AppWord,SW1Key,SW2Key,AppBtnNumber,IosColor,LagEntry,LagEntryNum,LagEntryDay,Cash0Times,Cash1Times,AutoCashMoney,AuthType,AuthPrice";
                }
                if (Equipment.RqType == "Android")
                {
                    SysSet.Cols = "Name,ApkVer,ApkInt,ApkUrl,ApkInfo,APKState,ApkSet1,ApkSet2,ApkSet3,ApkSet4,ApkSet5,ApkSet6,ApkSet7,ApkSet8,ApkSet9,ApkSet10,ApkSet11,CtrlSet,Tel,CtrlMoney1,Home,More,Bottom,AppMenuHome,AppMenuMore,AppMenuBottom,AppWord,SW1Key,SW2Key,AppBtnNumber,ApkColor,LagEntry,LagEntryNum,LagEntryDay,Cash0Times,Cash1Times,AutoCashMoney,AuthType,AuthPrice";
                }

                //T+n相关
                if (SysSet.LagEntry == 0)
                {
                    SysSet.LagEntryDay = 0;
                    SysSet.LagEntryNum = 0;
                }

                //贴牌特别处理
                if (SysAgent.IsTeiPai == 1)
                {
                    SysSet.LagEntry    = 0;
                    SysSet.LagEntryDay = 0;
                    SysSet.LagEntryNum = 0;
                }

                SysSet.Cash0Times = 0;
                SysSet.Cash1Times = 0;

                string data = SysSet.OutJson();
                data = data.Replace("\"[{", "[{").Replace("}]\"", "}]");
                if (HasCache)
                {
                    CacheBuilder.EntityCache.Remove(CashName, null);
                    CacheBuilder.EntityCache.Add(CashName, data, DateTime.Now.AddMinutes(15), null);
                }
                DataObj.Data = data;
                DataObj.Code = "0000";
                DataObj.OutString();
                //Tools.OutString(ErrInfo.Return("0000"));
            }
        }
Example #10
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("[UsersReg_2_0]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            //JObject pp = (JObject)p;
            Users Users = new Users();

            Users = JsonToObject.ConvertJsonToModel(Users, json);

            UserTrack UserTrack = new UserTrack();

            UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json);

            if (Users.UserName.IsNullOrEmpty() || Users.PassWord.IsNullOrEmpty() || Users.Mobile.IsNullOrEmpty() || Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty())
            {
                //
                DataObj.OutError("1000");
                return;
            }
            //手机号码黑名单验证
            if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == Users.UserName && UBL.State == 1) != null)
            {
                //提示暂不支持您手机号入网
                DataObj.OutError("2026");
                return;
            }
            //验证是否重复
            Users Old = Entity.Users.FirstOrDefault(n => n.UserName == Users.UserName);

            if (Old != null)
            {
                DataObj.OutError("2005");
                return;
            }

            //Card Card = Entity.Card.FirstOrDefault(n => n.Code == Users.CardNum && n.PasWd == Users.CardPWD);
            //if (Card == null) {
            //    DataObj.OutError("5001");
            //    return;
            //}
            //if (Card.State != 1) {
            //    DataObj.OutError("5002");
            //    return;
            //}
            //if (Card.AId.IsNullOrEmpty())
            //{
            //    DataObj.OutError("5002");
            //    return;
            //}
            //if (Card.AdminId.IsNullOrEmpty())
            //{
            //    DataObj.OutError("5002");
            //    return;
            //}

            //手机验证码
            //失效之前获取验证码
            SMSCode SMSCode = Entity.SMSCode.OrderByDescending(n => n.Id).FirstOrDefault(n => n.UId == 0 && n.Mobile == Users.UserName && n.CType == 1 && n.Code == Users.Code);

            if (SMSCode == null)
            {
                DataObj.OutError("2033");
                return;
            }
            SysSet SysSet = Entity.SysSet.FirstOrNew();

            if (SMSCode.State != 1)
            {
                DataObj.OutError("2034");
                return;
            }
            if (SMSCode.AddTime.AddMinutes(SysSet.SMSActives) < DateTime.Now)
            {
                DataObj.OutError("2034");
                return;
            }

            SysAgent SysAgent = null;

            //处理代理商
            if (!Users.Agent.IsNullOrEmpty())
            {
                SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == Users.Agent);
            }
            if (SysAgent == null)
            {
                SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == 1);
            }
            if (SysAgent == null)
            {
                SysAgent = Entity.SysAgent.Where(n => n.State == 1 && n.Tier == 1).OrderBy(n => n.Id).FirstOrDefault();
            }
            if (SysAgent != null)
            {
                Users.Agent = SysAgent.Id;
                Users.AId   = SysAgent.AdminId.GetValueOrDefault();
            }

            Users.PassWord    = Users.PassWord.GetMD5();
            Users.MobileState = 0;
            Users.EmailState  = 0;
            Users.CardStae    = 0;
            Users.State       = 0;
            Users.Amount      = 0;
            Users.Frozen      = 0;
            Users.AddTime     = DateTime.Now;

            Users.PayPwd = "";

            Users.MobileState = 2;

            Entity.Users.AddObject(Users);
            Entity.SaveChanges();

            //=======================================
            UserTrack.ENo        = DataObj.ENo;
            UserTrack.OPType     = "应用注册";
            UserTrack.GPSAddress = Users.RegAddress;
            UserTrack.GPSX       = Users.X;
            UserTrack.GPSY       = Users.Y;
            Users.SeavGPSLog(UserTrack, Entity);
            //=======================================

            SMSCode.State = 2;
            SMSCode.UId   = Users.Id;
            Entity.SaveChanges();
            //if (!Users.Id.IsNullOrEmpty()) {
            //    Card.State = 2;
            //    Entity.SaveChanges();
            //}

            //自动开通
            //IList<PayConfig> PCList = Entity.PayConfig.Where(n => n.State == 1).ToList();
            //foreach (var PC in PCList)
            //{
            //    UserPay UserPay = new UserPay();
            //    UserPay.UId = Users.Id;
            //    UserPay.PId = PC.Id;
            //    UserPay.Cost = (double)PC.CostUser;
            //    Entity.UserPay.AddObject(UserPay);
            //}
            //使用代理配置

            IList <UserPayAgent> UPAList = Entity.UserPayAgent.Where(n => n.AId == SysAgent.Id).OrderBy(n => n.PId).ToList();

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

            //SysSet Sys = Entity.SysSet.FirstOrDefault();
            //Users.Cash0 = Sys.Cash0;
            //Users.Cash1 = Sys.Cash1;
            //Users.ECash0 = Sys.ECash0;
            //Users.ECash1 = Sys.ECash1;
            //使用代理配置
            Users.Cash0  = SysAgent.Cash0;
            Users.Cash1  = SysAgent.Cash1;
            Users.ECash0 = SysAgent.ECash0;
            Users.ECash1 = SysAgent.ECash1;

            Users.State = 1;
            Entity.SaveChanges();
            //自动开通End
            DataObj.Data = "";
            DataObj.Code = "0000";
            DataObj.OutString();
            //Tools.OutString(ErrInfo.Return("0000"));
        }
        public string EditSort(string homeids, string bottomids, string movelistids, int AgentId, int AppBtnNumber, byte APPHasMore)
        {
            int[]    homeIds = { 0 }; int[] bottomIds = { 0 }; int[] movelistIds = { 0 }; int[] ids = { 0 };
            SysAgent SysAgent = null;

            if (!homeids.IsNullOrEmpty())
            {
                homeIds = Array.ConvertAll <string, int>(homeids.Split(','), delegate(string s) { return(int.Parse(s)); });
                ids     = ids.Union(homeIds).ToArray();
            }
            if (!bottomids.IsNullOrEmpty())
            {
                bottomIds = Array.ConvertAll <string, int>(bottomids.Split(','), delegate(string s) { return(int.Parse(s)); });
                ids       = ids.Union(bottomIds).ToArray();
            }
            if (!movelistids.IsNullOrEmpty())
            {
                movelistIds = Array.ConvertAll <string, int>(movelistids.Split(','), delegate(string s) { return(int.Parse(s)); });
                ids         = ids.Union(movelistIds).ToArray();
            }
            //更新配置
            if (AgentId == 0)
            {
                this.BasicSet.APPHasMore   = APPHasMore;
                this.BasicSet.AppBtnNumber = AppBtnNumber;
            }
            else
            {
                SysAgent = Entity.SysAgent.FirstOrDefault(o => o.Id == AgentId);
                if (SysAgent != null)
                {
                    SysAgent.APPHasMore   = APPHasMore;
                    SysAgent.AppBtnNumber = AppBtnNumber;
                }
                else
                {
                    return("");//没有找到对应的代理商
                }
            }

            this.UpdateVersionAll(AgentId);

            //保存排序
            var entitys = Entity.APPModule.Where(o => ids.Contains(o.Id) && o.AgentId == AgentId).ToList();

            if (entitys != null && entitys.Count > 0)
            {
                int homeSort = 1;
                foreach (var item in homeIds)
                {
                    var temp = entitys.FirstOrDefault(o => o.Id == item);
                    if (temp != null)
                    {
                        temp.Sort = homeSort;
                        homeSort++;
                    }
                }
                int bottomSort = 1;
                foreach (var item in bottomIds)
                {
                    var temp = entitys.FirstOrDefault(o => o.Id == item);
                    if (temp != null)
                    {
                        temp.Sort = bottomSort;
                        bottomSort++;
                    }
                }
                int moveSort = 1;
                foreach (var item in movelistIds)
                {
                    var temp = entitys.FirstOrDefault(o => o.Id == item);
                    if (temp != null)
                    {
                        temp.Sort = moveSort;
                        moveSort++;
                    }
                }
            }
            Entity.SaveChanges();
            System.Threading.Tasks.Task t = new System.Threading.Tasks.Task(() =>
            {
                ClearCacheSysConfig();
            });
            return("1");
        }
        public ActionResult Index(BaoUsers BaoUsers, EFPagingInfo <BaoUsersVM> p, string UserName, int?AgentID, bool?HasMoney, int IsFirst = 0, bool IsShowSupAgent = false)
        {
            int id     = 0;
            var iquery = Entity.BaoUsers.Join(this.Entity.Users, b => b.UId, u => u.Id, (b, u) => new BaoUsersVM()
            {
                Users = u, BaoUsers = b
            });

            if (!UserName.IsNullOrEmpty())
            {
                iquery = iquery.Where(o => o.Users.UserName == UserName);
            }
            if (!BaoUsers.PayPwd.IsNullOrEmpty())
            {
                id = this.Entity.Users.FirstOrNew(o => o.CardId == BaoUsers.PayPwd).Id;
                if (id != 0)
                {
                    iquery = iquery.Where(o => o.BaoUsers.UId == id);
                }
            }
            if (HasMoney.HasValue)
            {
                if (HasMoney.Value)
                {
                    iquery = iquery.Where(o => o.BaoUsers.AllMoney > 0);
                }
                else
                {
                    iquery = iquery.Where(o => o.BaoUsers.AllMoney == 0);
                }
            }

            if (AgentID.HasValue)
            {
                //是否要显示下级
                if ((bool)IsShowSupAgent)
                {
                    SysAgent         LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == AgentID.Value).FirstOrNew();
                    IList <SysAgent> SysAgentList    = LowerLevelAgent.GetSupAgent(Entity, true);
                    IList <int>      UID             = SysAgentList.Select(o => o.Id).ToList();
                    iquery = iquery.Where(f => UID.Contains(f.Users.Agent));
                }
                else
                {
                    iquery = iquery.Where(f => f.Users.Agent == AgentID.Value);
                }
            }
            PageOfItems <BaoUsersVM> BaoUsersList = null;
            decimal sumAllMoney = 0m;
            decimal sumInMoney  = 0m;

            if (IsFirst == 0)
            {
                BaoUsersList = new PageOfItems <BaoUsersVM>(new List <BaoUsersVM>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                var count = iquery.Count();
                sumAllMoney = iquery.Sum(o => (decimal?)o.BaoUsers.AllMoney) ?? 0;
                sumInMoney  = iquery.Sum(o => (decimal?)o.BaoUsers.InMoney) ?? 0;
                List <BaoUsersVM> a = iquery.OrderByDescending(o => o.BaoUsers.AllMoney).Skip(p.PageIndex < 1 ? 0 : ((p.PageIndex - 1) * p.PageSize)).Take(p.PageSize).ToList();
                BaoUsersList = new PageOfItems <BaoUsersVM>(a, p.PageIndex, p.PageSize, count, p.OrderByList);
            }

            ViewBag.BaoUsersList = BaoUsersList;
            ViewBag.BaoUsers     = BaoUsers;

            ViewBag.SysAgentList   = Entity.SysAgent.Where(n => n.Tier == 1).ToList();
            ViewBag.IsShowSupAgent = IsShowSupAgent;//是否显示下级
            ViewBag.AgentID        = AgentID;
            ViewBag.UserName       = UserName;

            ViewBag.sumAllMoney  = sumAllMoney;
            ViewBag.sumInMoney   = sumInMoney;
            ViewBag.HasMoney     = HasMoney;
            ViewBag.Log          = this.checkPower("Log");
            ViewBag.TransferUser = this.checkPower("TransferUser");
            return(View());
        }
        public ActionResult Index(Orders Orders, bool?IsShowSupAgent, int IsFirst = 0)
        {
            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            if (Orders.STime.IsNullOrEmpty())
            {
                Orders.STime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            }
            if (Orders.ETime.IsNullOrEmpty())
            {
                // Orders.ETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
                Orders.ETime = DateTime.Now;
            }
            EFPagingInfo <ApplyCredit> cp = new EFPagingInfo <ApplyCredit>();
            EFPagingInfo <ApplyLoan>   lp = new EFPagingInfo <ApplyLoan>();

            if (!Orders.Agent.IsNullOrEmpty())
            {
                //是否要显示下级
                if ((bool)IsShowSupAgent)
                {
                    SysAgent         LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == Orders.Agent).FirstOrNew();
                    IList <SysAgent> SysAgentList    = LowerLevelAgent.GetSupAgent(Entity);
                    IList <int>      UID             = new List <int>();
                    foreach (var s in SysAgentList)
                    {
                        UID.Add(s.Id);
                    }
                    cp.SqlWhere.Add(f => UID.Contains(f.AgentId));
                    lp.SqlWhere.Add(f => UID.Contains(f.AgentId));
                }
                else
                {
                    cp.SqlWhere.Add(f => f.AgentId == Orders.Agent);
                    lp.SqlWhere.Add(f => f.AgentId == Orders.Agent);
                }
            }
            if (!Orders.STime.IsNullOrEmpty() && !Orders.ETime.IsNullOrEmpty())
            {
                DateTime ETime = Orders.ETime;
                cp.SqlWhere.Add(f => f.PayTime > Orders.STime && f.PayTime < ETime);
                lp.SqlWhere.Add(f => f.PayTime > Orders.STime && f.PayTime < ETime);
            }
            cp.SqlWhere.Add(f => f.PayState == 1);
            lp.SqlWhere.Add(f => f.PayState == 1);
            cp.PageSize = 99999999;
            lp.PageSize = 99999999;
            cp.OrderByList.Add("Id", "DESC");
            lp.OrderByList.Add("Id", "DESC");
            IPageOfItems <ApplyCredit> ApplyCreditList = null;
            IPageOfItems <ApplyLoan>   ApplyLoanList   = null;

            if (IsFirst == 0)
            {
                ApplyLoanList   = new PageOfItems <ApplyLoan>(new List <ApplyLoan>(), 0, 10, 0, new Hashtable());
                ApplyCreditList = new PageOfItems <ApplyCredit>(new List <ApplyCredit>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                if (Orders.TType.IsNullOrEmpty())
                {
                    ApplyCreditList = Entity.Selects <ApplyCredit>(cp);
                    ApplyLoanList   = Entity.Selects <ApplyLoan>(lp);
                }
                else if (Orders.TType == 1)
                {
                    ApplyCreditList = Entity.Selects <ApplyCredit>(cp);
                    ApplyLoanList   = new PageOfItems <ApplyLoan>(new List <ApplyLoan>(), 0, 10, 0, new Hashtable());
                }
                else if (Orders.TType == 2)
                {
                    ApplyLoanList   = Entity.Selects <ApplyLoan>(lp);
                    ApplyCreditList = new PageOfItems <ApplyCredit>(new List <ApplyCredit>(), 0, 10, 0, new Hashtable());
                }
                else
                {
                    ApplyLoanList   = new PageOfItems <ApplyLoan>(new List <ApplyLoan>(), 0, 10, 0, new Hashtable());
                    ApplyCreditList = new PageOfItems <ApplyCredit>(new List <ApplyCredit>(), 0, 10, 0, new Hashtable());
                }
            }
            ViewBag.ApplyLoanList   = ApplyLoanList;
            ViewBag.ApplyCreditList = ApplyCreditList;
            ViewBag.Orders          = Orders;
            ViewBag.SysAgentList    = Entity.SysAgent.Where(n => n.Tier == 1).ToList();
            ViewBag.IsShowSupAgent  = IsShowSupAgent;
            ViewBag.Xls             = this.checkPower("Xls");
            return(View());
        }
        public void XLSDo(Orders Orders)
        {
            if (Orders.STime.IsNullOrEmpty())
            {
                Orders.STime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            }
            if (Orders.ETime.IsNullOrEmpty())
            {
                //Orders.ETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
                Orders.ETime = DateTime.Now;
            }
            EFPagingInfo <ApplyCredit> cp = new EFPagingInfo <ApplyCredit>();
            EFPagingInfo <ApplyLoan>   lp = new EFPagingInfo <ApplyLoan>();

            if (!Orders.Agent.IsNullOrEmpty())
            {
                cp.SqlWhere.Add(f => f.AgentId == Orders.Agent);
                lp.SqlWhere.Add(f => f.AgentId == Orders.Agent);
            }
            if (!Orders.STime.IsNullOrEmpty() && !Orders.ETime.IsNullOrEmpty())
            {
                DateTime ETime = Orders.ETime;
                cp.SqlWhere.Add(f => f.PayTime > Orders.STime && f.PayTime < ETime);
                lp.SqlWhere.Add(f => f.PayTime > Orders.STime && f.PayTime < ETime);
            }
            cp.SqlWhere.Add(f => f.PayState == 1);
            lp.SqlWhere.Add(f => f.PayState == 1);
            cp.PageSize = 99999999;
            lp.PageSize = 99999999;
            cp.OrderByList.Add("Id", "DESC");
            lp.OrderByList.Add("Id", "DESC");
            IPageOfItems <ApplyCredit> ApplyCreditList = null;
            IPageOfItems <ApplyLoan>   ApplyLoanList   = null;

            if (Orders.TType.IsNullOrEmpty())
            {
                ApplyCreditList = Entity.Selects <ApplyCredit>(cp);
                ApplyLoanList   = Entity.Selects <ApplyLoan>(lp);
            }
            else if (Orders.TType == 1)
            {
                ApplyCreditList = Entity.Selects <ApplyCredit>(cp);
            }
            else if (Orders.TType == 2)
            {
                ApplyLoanList = Entity.Selects <ApplyLoan>(lp);
            }
            if (ApplyCreditList.Count() > 0 || ApplyLoanList.Count() > 0)
            {
                string       file    = Server.MapPath("/template") + "\\finhaodai.xlsx";
                ExcelPackage package = new ExcelPackage(new FileInfo(file), true);
                var          sheet   = package.Workbook.Worksheets[1];
                var          cells   = sheet.Cells;
                int          Rows    = ApplyCreditList.Count() + ApplyLoanList.Count();
                //设置数据开始行
                int Befor = 2;
                sheet.InsertRow(Befor + 1, Rows - 1, Befor);
                int i = Befor;
                sheet.Row(i - 1).Height = 22;//设置行高
                int maxCol = 0;
                //获取机构及管理员
                IList <SysAgent> SysAgentList = Entity.SysAgent.Where(n => n.State == 1).ToList();
                foreach (var item in ApplyCreditList)
                {
                    string AName = "--";
                    if (item.AId > 0)
                    {
                        SysAgent SA = SysAgentList.FirstOrNew(n => n.Id == item.AgentId);
                        if (!SA.Name.IsNullOrEmpty())
                        {
                            AName = SA.Name;
                        }
                    }
                    sheet.Row(i).Height = 22;//设置行高
                    //信息编号1
                    cells["A" + i].Value = "X" + item.Id.ToString().PadLeft(8, '0');
                    //分支机构2
                    cells["B" + i].Value = AName;
                    //信息类型3
                    cells["C" + i].Value = "信用卡申请";
                    //申请时间4
                    cells["D" + i].Value = item.AddTime;
                    //售出金额5
                    cells["E" + i].Value = item.Amoney;
                    //售出时间6
                    cells["F" + i].Value = item.PayTime;
                    //利润7
                    cells["G" + i].Value = item.Amoney - item.AgentMoney;
                    //结算金额8
                    cells["H" + i].Value = item.AgentMoney;
                    i++;
                }
                foreach (var item in ApplyLoanList)
                {
                    string AName = "--";
                    if (item.AId > 0)
                    {
                        SysAgent SA = SysAgentList.FirstOrNew(n => n.Id == item.AgentId);
                        if (!SA.Name.IsNullOrEmpty())
                        {
                            AName = SA.Name;
                        }
                    }
                    sheet.Row(i).Height = 22;//设置行高
                    //信息编号1
                    cells["A" + i].Value = "D" + item.Id.ToString().PadLeft(8, '0');
                    //分支机构2
                    cells["B" + i].Value = AName;
                    //信息类型3
                    cells["C" + i].Value = "贷款申请";
                    //申请时间4
                    cells["D" + i].Value = item.AddTime;
                    //售出金额5
                    cells["E" + i].Value = item.Amoney;
                    //售出时间6
                    cells["F" + i].Value = item.PayTime;
                    //利润7
                    cells["G" + i].Value = item.Amoney - item.AgentMoney;
                    //结算金额8
                    cells["H" + i].Value = item.AgentMoney;
                    i++;
                }
                sheet.Row(i).Height = 40;//设置行高
                //交易总额5
                cells["E" + i].Formula = "SUM(E" + Befor + ":E" + (i - 1) + ")";
                //利润7
                cells["G" + i].Formula = "SUM(G" + Befor + ":G" + (i - 1) + ")";
                //结算金额8
                cells["H" + i].Formula = "SUM(H" + Befor + ":H" + (i - 1) + ")";
                i--;
                maxCol = 8;
                //cells["B" + (i + 2)].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                sheet.Cells[Befor, 1, i, maxCol].Style.Border.Left.Style   = ExcelBorderStyle.Thin;
                sheet.Cells[Befor, 1, i, maxCol].Style.Border.Right.Style  = ExcelBorderStyle.Thin;
                sheet.Cells[Befor, 1, i, maxCol].Style.Border.Top.Style    = ExcelBorderStyle.Thin;
                sheet.Cells[Befor, 1, i, maxCol].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
                sheet.Cells[Befor, 1, i, maxCol].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//居中
                sheet.Cells[Befor, 4, i, 4].Style.Numberformat.Format      = "yyyy-mm-dd HH:mm:ss";
                sheet.Cells[Befor, 6, i, 6].Style.Numberformat.Format      = "yyyy-mm-dd HH:mm:ss";
                //sheet.Cells[Befor, 9, i, 9].Style.Numberformat.Format = "#0.00%";
                //sheet.Cells[Befor, 11, i, 11].Style.Numberformat.Format = "#0.00%";
                i++;
                sheet.Cells[Befor, 5, i, 5].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)";
                sheet.Cells[Befor, 7, i, 7].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)";
                sheet.Cells[Befor, 8, i, 8].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)";
                Response.BinaryWrite(package.GetAsByteArray());
                //输出
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;  filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(10, 99) + ".xlsx");
            }
            else
            {
                Response.Write("暂无符合条件数据");
            }
        }
Example #15
0
        public ActionResult XLSDo(OrderProfitLog OrderProfitLog, EFPagingInfo <OrderProfitLog> p)
        {
            p.SqlWhere.Add(f => f.LogType == 3);
            if (!OrderProfitLog.TNum.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TNum == OrderProfitLog.TNum);
            }
            if (!OrderProfitLog.LogType.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.LogType == OrderProfitLog.LogType);
            }
            if (!OrderProfitLog.Agent.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Agent == OrderProfitLog.Agent);
            }
            if (!OrderProfitLog.STime.IsNullOrEmpty() && !OrderProfitLog.ETime.IsNullOrEmpty())
            {
                DateTime ETime = OrderProfitLog.ETime;
                p.SqlWhere.Add(f => f.AddTime > OrderProfitLog.STime && f.AddTime < ETime);
            }
            p.PageSize = 999999;
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <OrderProfitLog> OrderProfitLogList = null;

            OrderProfitLogList = Entity.Selects <OrderProfitLog>(p);
            IList <OrderProfitLog> List      = OrderProfitLogList.GroupBy(n => n.UId).Select(n => n.First()).ToList();
            List <int>             UId       = OrderProfitLogList.Select(o => o.UId).Distinct().ToList();
            IList <Users>          UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList();

            List <int>       AgentId   = OrderProfitLogList.Select(o => o.Agent).Distinct().ToList();
            IList <SysAgent> AgentList = Entity.SysAgent.Where(n => n.State == 1 && AgentId.Contains(n.Id)).ToList();
            DataTable        table     = new DataTable();
            DataRow          row       = null;

            // 创建 datatable
            table.Columns.Add(new DataColumn("交易号", typeof(string)));
            table.Columns.Add(new DataColumn("交易商户", typeof(string)));
            table.Columns.Add(new DataColumn("交易类型", typeof(string)));
            table.Columns.Add(new DataColumn("交易金额", typeof(string)));
            table.Columns.Add(new DataColumn("分润金额", typeof(string)));
            table.Columns.Add(new DataColumn("分润时间", typeof(string)));
            table.Columns.Add(new DataColumn("代理商名称", typeof(string)));
            table.Columns.Add(new DataColumn("代理商层级", typeof(string)));
            string state = "";

            //订单按照支付时间排序
            foreach (var item in OrderProfitLogList)
            {
                Users    Users    = UsersList.FirstOrNew(n => n.Id == item.UId);
                SysAgent SysAgent = AgentList.FirstOrNew(o => o.Id == item.Agent);
                if (item.OrderType == 21)
                {
                    state = "直通车交易";
                }
                else if (item.OrderType == 10)
                {
                    state = "自助开通代理";
                }
                else if (item.OrderType == 31)
                {
                    state = "刷还交易";
                }
                row    = table.NewRow();
                row[0] = item.TNum;
                row[1] = Users.TrueName;
                row[2] = state;
                row[3] = item.Amoney;
                row[4] = item.Profit;
                row[5] = item.AddTime.ToString("yyyy-MM-dd HH:mm");
                row[6] = SysAgent.Name;
                row[7] = item.Tier + "级";
                table.Rows.Add(row);
            }
            string Time = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(10, 99);

            return(this.ExportExcelBase(table, "同级分润明细-" + Time));
        }
        public void PayCash(OrderCash OrderCash, EFPagingInfo <OrderCash> p, bool?IsShowSupAgent)
        {
            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            p.PageSize = 99999999;
            p.SqlWhere.Add(f => f.OrderState == 2);
            p.SqlWhere.Add(f => f.PayState == 1 || f.PayState == 2);

            if (OrderCash.AddTime.IsNullOrEmpty())
            {
                OrderCash.AddTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
            }
            if (OrderCash.FTime.IsNullOrEmpty())
            {
                OrderCash.FTime = DateTime.Now;
            }
            if (!OrderCash.Owner.IsNullOrEmpty())
            {
                IList <Users> UList = Entity.Users.Where(n => n.TrueName.Contains(OrderCash.Owner) || n.NeekName.Contains(OrderCash.Owner) || n.UserName == OrderCash.Owner).ToList();
                List <int>    UIds  = new List <int>();
                foreach (var pp in UList)
                {
                    UIds.Add(pp.Id);
                }
                p.SqlWhere.Add(f => UIds.Contains(f.UId));
            }
            if (!OrderCash.Cash.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Amoney >= OrderCash.Cash);
            }
            if (!OrderCash.ECash.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Amoney <= OrderCash.ECash);
            }
            if (!OrderCash.OId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.OId == OrderCash.OId);
            }
            if (!OrderCash.Agent.IsNullOrEmpty())
            {
                //是否要显示下级
                if ((bool)IsShowSupAgent)
                {
                    SysAgent         LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == OrderCash.Agent).FirstOrNew();
                    IList <SysAgent> SysAgentList    = LowerLevelAgent.GetSupAgent(Entity);
                    IList <int>      UID             = new List <int>();
                    foreach (var s in SysAgentList)
                    {
                        UID.Add(s.Id);
                    }
                    p.SqlWhere.Add(f => UID.Contains(f.Agent));
                }
                else
                {
                    p.SqlWhere.Add(f => f.Agent == OrderCash.Agent);
                }
            }
            if (!OrderCash.FState.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.FState == (OrderCash.FState == 99 ? 0 : OrderCash.FState));
            }
            if (!OrderCash.TrunType.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TrunType == (OrderCash.TrunType == 99 ? 0 : OrderCash.TrunType));
            }
            if (!OrderCash.AId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AId == OrderCash.AId);
            }
            if (!OrderCash.FId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.FId == OrderCash.FId);
            }
            if (!OrderCash.AgentState.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AgentState == OrderCash.AgentState);
            }
            if (!OrderCash.AddTime.IsNullOrEmpty() && !OrderCash.FTime.IsNullOrEmpty())
            {
                // DateTime FTime = ((DateTime)OrderCash.FTime).AddDays(1);
                DateTime FTime = OrderCash.FTime.Value;
                p.SqlWhere.Add(f => f.AddTime > OrderCash.AddTime && f.AddTime < FTime);
            }
            p.OrderByList.Add("Id", "ASC");
            IPageOfItems <OrderCash> OrderCashList = Entity.Selects <OrderCash>(p);

            TaskCash TaskCash = new TaskCash();

            TaskCash.State   = 0;
            TaskCash.AddTime = DateTime.Now;
            TaskCash.Total   = OrderCashList.Count();
            TaskCash.Success = 0;
            TaskCash.Fail    = 0;
            Entity.TaskCash.AddObject(TaskCash);
            Entity.SaveChanges();
            int suc  = 0;
            int fa   = 0;
            int same = 0;

            foreach (var O in OrderCashList)
            {
                if (O.PayState == 1 && O.OrderState == 2)
                {
                    TaskCashInfo TaskCashInfo = Entity.TaskCashInfo.FirstOrDefault(n => n.OId == O.OId);
                    if (TaskCashInfo == null)
                    {
                        TaskCashInfo         = new TaskCashInfo();
                        TaskCashInfo.OId     = O.OId;
                        TaskCashInfo.TId     = TaskCash.Id;
                        TaskCashInfo.State   = 0;
                        TaskCashInfo.OState  = 0;
                        TaskCashInfo.NState  = 0;
                        TaskCashInfo.AddTime = DateTime.Now;
                        Entity.TaskCashInfo.AddObject(TaskCashInfo);
                        suc++;
                    }
                    else
                    {
                        same++;
                    }
                }
                else
                {
                    fa++;
                }
            }
            TaskCash.Total = suc;
            Entity.SaveChanges();
            System.Web.HttpContext.Current.Response.AddHeader("content-type", "application/json");
            Response.Write("{\"id\":" + TaskCash.Id + ",\"same\":" + same + ",\"success\":" + suc + ",\"fail\":" + fa + "}");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="JobOrders"></param>
        /// <param name="p"></param>
        /// <param name="IsShowSupAgent">是否显示下级</param>
        /// <param name="LowerLevel">下级代理商</param>
        /// <returns></returns>
        public ActionResult Index(JobOrders JobOrders, EFPagingInfo <JobOrders> p, DateTime?STime, DateTime?ETime, bool?IsShowSupAgent, int?LowerLevel, int IsFirst = 0)
        {
            #region 条件校验
            if (IsShowSupAgent == null)
            {
                IsShowSupAgent = false;
            }
            LowerLevel = LowerLevel == null ? 0 : LowerLevel;
            p.SqlWhere.Add(f => f.PayState != 0);
            p.SqlWhere.Add(f => f.AgentState != 0);
            if (!JobOrders.TNum.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TNum == JobOrders.TNum);
            }
            if (!JobOrders.Code.IsNullOrEmpty())
            {
                IList <Users> UList = Entity.Users.Where(n => n.TrueName == JobOrders.Code || n.NeekName == JobOrders.Code || n.UserName == JobOrders.Code).ToList();
                List <int>    UIds  = new List <int>();
                foreach (var pp in UList)
                {
                    UIds.Add(pp.Id);
                }
                p.SqlWhere.Add(f => UIds.Contains(f.UId));
            }
            if (!JobOrders.AgentId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AgentId == JobOrders.AgentId);
            }
            if (!JobOrders.AgentState.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.AgentState == JobOrders.AgentState);
            }
            if (!STime.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.PayTime > STime);
            }
            else
            {
                STime = DateTime.Now.AddMonths(-1);
            }
            if (!ETime.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.PayTime < ETime);
            }
            else
            {
                ETime = DateTime.Now;
            }
            TimeSpan TS   = ETime.Value.Subtract(STime.Value);
            int      Days = TS.Days;
            if (Days > 31)
            {
                ViewBag.ErrorMsg = "统计时间间隔不能超过31天!";
                return(View("Error"));
            }
            IList <SysAgent> AgentsList = null;
            if ((bool)IsShowSupAgent)
            {
                IList <int> UID = new List <int>();
                if (LowerLevel != 0)
                {
                    SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew();
                    AgentsList = LowerLevelAgent.GetSupAgent(Entity, true);
                }
                else
                {
                    AgentsList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息
                }
                UID = AgentsList.Select(o => o.Id).ToList();
                p.SqlWhere.Add(f => UID.Contains(f.AgentId));
            }
            else
            {
                p.SqlWhere.Add(f => f.AgentId == BasicAgent.Id);//读取全部分支机构
            }
            #endregion
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <JobOrders> JobOrdersList = null;
            if (IsFirst == 0)
            {
                JobOrdersList = new PageOfItems <JobOrders>(new List <JobOrders>(), 0, 10, 0, new Hashtable());
            }
            else
            {
                JobOrdersList = Entity.Selects <JobOrders>(p);
            }

            ViewBag.JobOrdersList = JobOrdersList;
            ViewBag.JobOrders     = JobOrders;
            //统计查询
            if (JobOrdersList.TotalCount > 0)
            {
                var iquery = Entity.JobOrders.AsQueryable();
                foreach (var item in p.SqlWhere)
                {
                    iquery = iquery.Where(item);
                }
                //总金额
                decimal SumAmoney = iquery.Sum(o => o.TotalMoney);
                ViewBag.SumAmoney = SumAmoney;
                //我的总佣金
                decimal?SumMyProfit = Entity.OrderProfitLog.Where(o => o.Agent == BasicAgent.Id && o.OrderType == 31).Join(iquery, op => op.TNum, o => o.TNum, (op, o) => op.Profit).Sum(o => (decimal?)o);
                ViewBag.SumMyProfit = SumMyProfit;
            }

            //商户查询
            IList <JobOrders> List = JobOrdersList.GroupBy(n => n.UId).Select(n => n.First()).ToList();
            List <int>        UId  = new List <int>();
            foreach (var pp in List)
            {
                UId.Add(pp.UId);
            }
            Dictionary <string, decimal> DicOrderProfitLog = new Dictionary <string, decimal>();
            IList <Users> UsersList = Entity.Users.Where(n => UId.Contains(n.Id)).ToList();
            foreach (var item in JobOrdersList)
            {
                DicOrderProfitLog.Add(item.TNum, Entity.OrderProfitLog.Where(o => o.TNum == item.TNum && o.Agent == BasicAgent.Id).Select(o => o.Profit).FirstOrDefault());
            }
            ViewBag.DicOrderProfitLog = DicOrderProfitLog;
            ViewBag.UsersList         = UsersList;
            ViewBag.SysAdminList      = Entity.SysAdmin.Where(n => n.State == 1 && n.AgentId == AdminUser.AgentId).ToList();
            ViewBag.IsShowSupAgent    = IsShowSupAgent;
            ViewBag.BasicAgent        = BasicAgent;
            SysSet SysSet = Entity.SysSet.FirstOrNew();
            ViewBag.SysSet     = SysSet;
            ViewBag.LowerLevel = LowerLevel;
            ViewBag.Edit       = this.checkPower("Edit");
            ViewBag.STime      = STime;
            ViewBag.ETime      = ETime;
            return(View());
        }
 /// <summary>
 /// 条件
 /// </summary>
 private EFPagingInfo <OrderCash> Condition(OrderCash OrderCash, EFPagingInfo <OrderCash> p, bool?IsShowSupAgent)
 {
     p.SqlWhere.Add(f => f.OrderState == 2);
     p.SqlWhere.Add(f => f.PayState == 1 || f.PayState == 2);
     //if (OrderCash.AddTime.IsNullOrEmpty())
     //{
     //    OrderCash.AddTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
     //}
     //if (OrderCash.FTime.IsNullOrEmpty())
     //{
     //    //OrderCash.FTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
     //    OrderCash.FTime = DateTime.Now;
     //}
     //if (!OrderCash.UId.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.UId == OrderCash.UId); }
     if (!OrderCash.Owner.IsNullOrEmpty())
     {
         IList <Users> UList = Entity.Users.Where(n => n.TrueName == OrderCash.Owner || n.NeekName == OrderCash.Owner || n.UserName == OrderCash.Owner).ToList();
         List <int>    UIds  = new List <int>();
         foreach (var pp in UList)
         {
             UIds.Add(pp.Id);
         }
         p.SqlWhere.Add(f => UIds.Contains(f.UId));
     }
     if (!OrderCash.Cash.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.Amoney >= OrderCash.Cash);
     }
     if (!OrderCash.ECash.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.Amoney <= OrderCash.ECash);
     }
     if (!OrderCash.OId.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.OId == OrderCash.OId);
     }
     if (!OrderCash.Agent.IsNullOrEmpty())
     {
         //是否要显示下级
         if ((bool)IsShowSupAgent)
         {
             SysAgent         LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == OrderCash.Agent).FirstOrNew();
             IList <SysAgent> SysAgentList    = LowerLevelAgent.GetSupAgent(Entity);
             IList <int>      UID             = new List <int>();
             foreach (var s in SysAgentList)
             {
                 UID.Add(s.Id);
             }
             p.SqlWhere.Add(f => UID.Contains(f.Agent));
         }
         else
         {
             p.SqlWhere.Add(f => f.Agent == OrderCash.Agent);
         }
     }
     if (!OrderCash.FState.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.FState == (OrderCash.FState == 99 ? 0 : OrderCash.FState));
     }
     if (!OrderCash.TrunType.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.TrunType == (OrderCash.TrunType == 99 ? 0 : OrderCash.TrunType));
     }
     if (!OrderCash.AId.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.AId == OrderCash.AId);
     }
     if (!OrderCash.FId.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.FId == OrderCash.FId);
     }
     if (!OrderCash.AgentState.IsNullOrEmpty())
     {
         p.SqlWhere.Add(f => f.AgentState == OrderCash.AgentState);
     }
     if (!OrderCash.AddTime.IsNullOrEmpty() && !OrderCash.FTime.IsNullOrEmpty())
     {
         // DateTime FTime = ((DateTime)OrderCash.FTime).AddDays(1);
         DateTime FTime = OrderCash.FTime.Value;
         p.SqlWhere.Add(f => f.AddTime > OrderCash.AddTime && f.AddTime < FTime);
     }
     return(p);
 }
        public ActionResult Index(SysAgent SysAgent)
        {
            if (this.BasicAgent.Tier != 1)
            {
                ViewBag.ErrorMsg = "抱歉!该功能只有一级代理可用.";
                return(View("Error"));
            }
            if (this.BasicAgent.IsTeiPai == 0)
            {
                ViewBag.ErrorMsg = "非贴牌用户无法使用该功能";
                return(View("Error"));
            }

            var APPModuleList = Entity.APPModule.Where(o => o.AgentId == this.BasicAgent.Id && o.Version == 0).OrderBy(o => o.Id).ToList();

            ViewBag.APPModuleList = APPModuleList;
            //加载类型选项
            string filename             = HttpContext.Server.MapPath("/ModuleTypeSelectList.json");
            string jsonstr              = System.IO.File.ReadAllText(filename);
            var    ModuleTypeSelectList = JsonConvert.DeserializeObject <SortedList <string, string> >(jsonstr);

            ViewBag.ModuleTypeSelectList = ModuleTypeSelectList;
            string Bottomfilename             = HttpContext.Server.MapPath("/ModuleTypeBottomSelectList.json");
            string Bottomjsonstr              = System.IO.File.ReadAllText(Bottomfilename);
            var    ModuleTypeBottomSelectList = JsonConvert.DeserializeObject <SortedList <string, string> >(Bottomjsonstr);

            ViewBag.ModuleTypeBottomSelectList = ModuleTypeBottomSelectList;
            //加载广告及标识
            AdTag scanCodeTag = Entity.AdTag.FirstOrDefault(o => o.Tag == "SaoBg" && o.State == 1);

            ViewBag.ScanCodeTag = scanCodeTag;
            AdTag bannerTag = Entity.AdTag.FirstOrDefault(o => o.Tag == "banner" && o.State == 1);

            ViewBag.BannerTag = bannerTag;
            if (scanCodeTag == null || bannerTag == null)
            {
                ViewBag.ErrorMsg = "无法找到广告标识";
                return(View("Error"));
            }
            var scanCodeInfo = Entity.AdInfo.FirstOrNew(o => o.TId == scanCodeTag.Id && o.State == 1 && o.AgentId == this.BasicAgent.Id);

            ViewBag.scanCodeInfo = scanCodeInfo;
            var bannerInfos = Entity.AdInfo.OrderBy(o => o.Sort).Where(o => o.TId == bannerTag.Id && o.State == 1 && o.AgentId == this.BasicAgent.Id).ToList();

            ViewBag.bannerInfos = bannerInfos;

            if (Request.UrlReferrer != null)
            {
                Session["Url"] = Request.UrlReferrer.ToString();
            }

            //取得系统图标
            string PhysicalApplicationPath = this.HttpContext.Request.PhysicalApplicationPath;
            string APPModelPath            = PhysicalApplicationPath + "UpLoadFiles\\APPModule\\";
            var    homeDir      = new System.IO.DirectoryInfo(APPModelPath + "home");
            var    bottomDefDir = new System.IO.DirectoryInfo(APPModelPath + "bottom\\default");
            var    bottomActDir = new System.IO.DirectoryInfo(APPModelPath + "bottom\\activate");

            var homeFiles      = homeDir.GetFiles();
            var bottomDefFiles = bottomDefDir.GetFiles();
            var bottomActFiles = bottomActDir.GetFiles();

            ViewBag.homeFiles          = homeFiles;
            ViewBag.bottomDefaultFiles = bottomDefFiles;
            ViewBag.bottomActFiles     = bottomActFiles;

            ViewBag.SysAgent      = this.BasicAgent;
            this.ViewBag.IsAdd    = this.checkPower("Add");
            this.ViewBag.IsSave   = this.checkPower("Save");
            this.ViewBag.IsDelete = this.checkPower("Delete");
            this.ViewBag.IsEdit   = this.checkPower("Edit");
            return(View());
        }
        public ActionResult Index(AdInfo AdInfo, EFPagingInfo <AdInfo> p, int IsFirst = 0)
        {
            if (IsFirst == 0)
            {
                PageOfItems <AdInfo> AdInfoList1 = new PageOfItems <AdInfo>(new List <AdInfo>(), 0, 10, 0, new Hashtable());
                ViewBag.AdInfoList = AdInfoList1;
                ViewBag.AdInfo     = AdInfo;
                ViewBag.AdTagList  = Entity.AdTag.Where(n => n.State == 1).ToList();
                //贴牌代理
                var SysAgentList1  = Entity.SysAgent.Where(o => o.IsTeiPai == 1 && o.State == 1).ToList();
                var haofusysagent1 = new SysAgent()
                {
                    Id           = 0,
                    Name         = "好付",
                    AppBtnNumber = BasicSet.AppBtnNumber,
                    APPHasMore   = BasicSet.APPHasMore,
                    APPName      = BasicSet.Name,
                };
                SysAgentList1.Add(haofusysagent1);
                SysAgentList1        = SysAgentList1.OrderBy(o => o.Id).ToList();
                ViewBag.SysAgentList = SysAgentList1;
                ViewBag.Add          = this.checkPower("Add");
                ViewBag.Edit         = this.checkPower("Edit");
                ViewBag.Delete       = this.checkPower("Delete");
                ViewBag.Save         = this.checkPower("Save");
                return(View());
            }
            if (!AdInfo.Name.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Name.Contains(AdInfo.Name));
            }
            if (!AdInfo.TId.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.TId == AdInfo.TId);
                p.OrderByList.Add("Sort", "DESC");
            }
            else
            {
                p.OrderByList.Add("Id", "DESC");
            }
            if (!AdInfo.State.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.State == (AdInfo.State == 99 ? 0 : AdInfo.State));
            }
            p.SqlWhere.Add(f => f.AgentId == AdInfo.AgentId);
            IPageOfItems <AdInfo> AdInfoList = Entity.Selects <AdInfo>(p);

            ViewBag.AdInfoList = AdInfoList;
            ViewBag.AdInfo     = AdInfo;
            ViewBag.AdTagList  = Entity.AdTag.Where(n => n.State == 1).ToList();
            //贴牌代理
            var SysAgentList  = Entity.SysAgent.Where(o => o.IsTeiPai == 1 && o.State == 1).ToList();
            var haofusysagent = new SysAgent()
            {
                Id           = 0,
                Name         = "好付",
                AppBtnNumber = BasicSet.AppBtnNumber,
                APPHasMore   = BasicSet.APPHasMore,
                APPName      = BasicSet.Name,
            };

            SysAgentList.Add(haofusysagent);
            SysAgentList         = SysAgentList.OrderBy(o => o.Id).ToList();
            ViewBag.SysAgentList = SysAgentList;
            ViewBag.Add          = this.checkPower("Add");
            ViewBag.Edit         = this.checkPower("Edit");
            ViewBag.Delete       = this.checkPower("Delete");
            ViewBag.Save         = this.checkPower("Save");
            return(View());
        }