public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[OrderPayConfig]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } PayConfigOrder PayConfigOrder = new PayConfigOrder(); PayConfigOrder = JsonToObject.ConvertJsonToModel(PayConfigOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (PayConfigOrder.PCCId.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (PayConfigOrder.X.IsNullOrEmpty() || PayConfigOrder.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == PayConfigOrder.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (baseUsers.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } //获取系统配置 //SysSet SysSet = Entity.SysSet.FirstOrDefault(); PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigOrder.PCCId); if (PCC == null) { DataObj.OutError("1001"); return; } PayConfigOrder.UId = baseUsers.Id; PayConfigOrder.Agent = baseUsers.Agent; PayConfigOrder.AId = baseUsers.AId; PayConfigOrder.Amoney = PCC.BPrice.GetValueOrDefault(); PayConfigOrder.OrderState = 1; PayConfigOrder.PayState = 0; PayConfigOrder.AddTime = DateTime.Now; //这里是利润计算========== //分支机构提成=产品价格-代理商价格 decimal GetAll = PCC.BPrice.GetValueOrDefault() - PCC.CPrice.GetValueOrDefault(); //利润舍位 GetAll = GetAll.Floor(); //总利润 PayConfigOrder.AIdGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 PayConfigOrder.AgentGet = 0; PayConfigOrder.AgentState = 0; //这里暂时写0,等后面支付再重新计算 PayConfigOrder.SysRate = 0; PayConfigOrder.Poundage = PayConfigOrder.Amoney * (decimal)PayConfigOrder.SysRate; //写入订单总表 Orders Orders = new Orders(); Orders.UId = PayConfigOrder.UId; Orders.TName = PCC.Title; Orders.PayType = 0; Orders.PayName = "升级费率"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 6; Orders.TState = 1; Orders.Amoney = PayConfigOrder.Amoney; Orders.Poundage = PayConfigOrder.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = 0; Orders.Agent = PayConfigOrder.Agent; Orders.AgentState = 0; Orders.AId = PayConfigOrder.AId; Orders.FId = 0; string OrderAddress = PayConfigOrder.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(PayConfigOrder.X, PayConfigOrder.Y); } Orders.OrderAddress = OrderAddress; Orders.X = PayConfigOrder.X; Orders.Y = PayConfigOrder.Y; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); PayConfigOrder.OId = Orders.TNum; Entity.PayConfigOrder.AddObject(PayConfigOrder); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 //======================================= Orders.Cols = "TNum,PayId,Amount,PayState"; string TNum = Orders.TNum; string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8); Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign; //======================================= //获取最佳支付通道 IList <PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList(); IList <SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl IList <SysControl> SCList = new List <SysControl>(); IList <PayConfig> PCList = new List <PayConfig>(); foreach (var p in SysControlList) { SysControl T = p.ChkState(); if (T.State == 1) { SCList.Add(p); } } foreach (var p in PayConfigList) { SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id); if (T != null) { if (PayConfigOrder.Amoney >= (decimal)T.SNum && PayConfigOrder.Amoney <= (decimal)T.ENum) { PCList.Add(p); } } } IList <PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList(); IList <PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList(); IList <PayConfig> WxList = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList(); IList <PayConfig> AliList = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList(); IList <PayConfig> List = new List <PayConfig>(); if (CashList.Count > 0) { PayConfig Cash = new PayConfig(); Cash.GroupType = "Cash"; Cash.Name = "余额支付"; Cash.State = 1; Cash.Cols = "Name,GroupType,State"; List.Add(Cash); } if (BankList.Count > 0) { PayConfig Bank = new PayConfig(); Bank.GroupType = "Bank"; Bank.Name = "银联支付"; Bank.State = 1; Bank.Cols = "Name,GroupType,State"; List.Add(Bank); } //if (WxList.Count > 0) //{ // PayConfig Wx = new PayConfig(); // Wx.GroupType = "WeiXin"; // Wx.Name = "微信支付"; // Wx.State = 0; // Wx.Cols = "Name,GroupType,State"; // List.Add(Wx); //} if (AliList.Count > 0) { PayConfig Ali = new PayConfig(); Ali.GroupType = "AliPay"; Ali.Name = "支付宝支付"; Ali.State = 1; Ali.Cols = "Name,GroupType,State"; List.Add(Ali); } string PCString = List.EntityToJson(); JArray PCJson = (JArray)JsonConvert.DeserializeObject(PCString); Orders.PayConfig = PCJson; Orders.Cols += ",PayConfig"; //Orders.paycon DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
public void XLSDo(Orders Orders, EFPagingInfo <Orders> p, bool?IsShowSupAgent, int TimeType = 1) { if (IsShowSupAgent == null) { IsShowSupAgent = false; } p = this.Condition(Orders, p, IsShowSupAgent, TimeType); p.PageSize = 99999999; p.OrderByList.Add("Id", "DESC"); IPageOfItems <Orders> OrdersList = Entity.Selects <Orders>(p); if (OrdersList.Count() > 0) { #region 导出 string file = Server.MapPath("/template") + "\\finorders.xlsx"; ExcelPackage package = new ExcelPackage(new FileInfo(file), true); var sheet = package.Workbook.Worksheets[1]; var cells = sheet.Cells; int Rows = OrdersList.Count(); //设置数据开始行 int Befor = 2; sheet.InsertRow(Befor + 1, Rows - 1, Befor); int i = Befor; sheet.Row(i - 1).Height = 22;//设置行高 int maxCol = 0; //获取机构及管理员 IList <Orders> List = OrdersList.GroupBy(n => n.UId).Select(n => n.First()).ToList(); List <int> UId = new List <int>(); foreach (var pp in List) { UId.Add(pp.UId); } IList <Users> UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList(); IList <PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).ToList(); IList <SysAgent> SysAgentList = Entity.SysAgent.ToList(); foreach (var item in OrdersList) { #region MyRegion string AName = "--"; if (item.AId > 0) { SysAgent SA = SysAgentList.FirstOrNew(n => n.Id == item.Agent); if (!SA.Name.IsNullOrEmpty()) { AName = SA.Name; } } string BName = "--"; Users OU = UsersList.FirstOrNew(n => n.Id == item.UId); if (!OU.TrueName.IsNullOrEmpty()) { BName = OU.TrueName; } PayConfig PayConfig = PayConfigList.FirstOrNew(n => n.Id == item.PayWay); sheet.Row(i).Height = 22;//设置行高 //机构 cells["A" + i].Value = AName; //交易号 cells["B" + i].Value = item.TNum; //交易商户 cells["C" + i].Value = OU.NeekName + "[" + OU.TrueName + "]"; //交易类型 cells["D" + i].Value = item.GetTTName(); //交易内容 cells["E" + i].Value = item.GetPayNameWithTName(); //交易金额 cells["F" + i].Value = item.Amoney.ToString("f2"); //交易时间 cells["G" + i].Value = item.PayTime; //入账时间 cells["H" + i].Value = (item.InTimed != null?Convert.ToDateTime(item.InTimed).ToString():""); //支付方式 cells["I" + i].Value = PayConfig.Name; //订单状态 cells["J" + i].Value = item.GetState(); string temp = string.Empty; if (item.TType == 2 || item.TType == 5) { temp = "T+" + item.TrunType; } if (item.TType == 1 || item.TType == 7 || item.TType == 8 || item.TType == 9) { temp = "T+" + item.LagEntryDay; } //接收方式 cells["K" + i].Value = temp; double I = 0, K = 0, N = 0; decimal J = 0, L = 0, M = 0; string Is = ""; #region MyRegion if (item.TType == 1) { //银联卡支付订单 OrderRecharge OrderRecharge = Entity.OrderRecharge.FirstOrNew(n => n.OId == item.TNum); I = OrderRecharge.UserRate; //商户费率 J = OrderRecharge.Poundage; //手续费 K = OrderRecharge.SysRate; //第三方费率 L = ((decimal)OrderRecharge.SysRate * OrderRecharge.Amoney).Ceiling(); //第三方手续费 N = OrderRecharge.AgentPayGet; //分支机构提成 M = OrderRecharge.Poundage - (decimal)OrderRecharge.SysRate * OrderRecharge.Amoney - (decimal)OrderRecharge.AgentPayGet; //利润 } if (item.TType == 2) { //提现订单 OrderCash OrderCash = Entity.OrderCash.FirstOrNew(n => n.OId == item.TNum); I = 0; if (!OrderCash.ECash.IsNullOrEmpty() && !OrderCash.Cash.IsNullOrEmpty()) { Is = OrderCash.ECash.ToMoney() + "+" + (OrderCash.Cash * 100).ToString("F2") + "%"; } else if (!OrderCash.ECash.IsNullOrEmpty()) { Is = OrderCash.ECash.ToMoney(); } else if (!OrderCash.Cash.IsNullOrEmpty()) { Is = (OrderCash.Cash * 100).ToString("F2") + "%"; } else { Is = "0"; } J = (decimal)OrderCash.UserRate; //手续费 K = 0; //第三方费率 L = OrderCash.CashRate; //第三方手续费 N = OrderCash.AgentCashGet; //分支机构提成 M = (decimal)OrderCash.UserRate - OrderCash.CashRate - (decimal)OrderCash.AgentCashGet; //利润 } if (item.TType == 3) { //转帐订单 OrderTransfer OrderTransfer = Entity.OrderTransfer.FirstOrNew(n => n.OId == item.TNum); I = OrderTransfer.UserRate; //商户费率 J = OrderTransfer.Poundage; //手续费 K = OrderTransfer.SysRate; //第三方费率 L = ((decimal)OrderTransfer.SysRate * OrderTransfer.Amoney).Ceiling(); //第三方手续费 N = OrderTransfer.AgentPayGet; //分支机构提成 M = OrderTransfer.Amoney - OrderTransfer.PayMoney - L - (decimal)OrderTransfer.AgentPayGet; //利润 } if (item.TType == 5) { //付房租订单 OrderHouse OrderHouse = Entity.OrderHouse.FirstOrNew(n => n.OId == item.TNum); I = OrderHouse.UserRate + (double)OrderHouse.CashRate; //商户费率 J = OrderHouse.Poundage; //手续费 K = OrderHouse.SysRate; //第三方费率 L = ((decimal)OrderHouse.SysRate * OrderHouse.Amoney).Ceiling(); //第三方手续费 N = OrderHouse.AgentPayGet; //分支机构提成 M = OrderHouse.Amoney - OrderHouse.PayMoney - L - (decimal)OrderHouse.AgentPayGet; //利润 } if (item.TType == 6) { //升级订单 PayConfigOrder PayConfigOrder = Entity.PayConfigOrder.FirstOrNew(n => n.OId == item.TNum); I = 0; //商户费率 J = PayConfigOrder.Poundage; //手续费 K = PayConfigOrder.SysRate; //第三方费率 L = ((decimal)PayConfigOrder.SysRate * PayConfigOrder.Amoney).Ceiling(); //第三方手续费 N = PayConfigOrder.AgentGet; //分支机构提成 M = PayConfigOrder.Amoney - (decimal)PayConfigOrder.AgentGet; //利润 } if (item.TType == 7 || item.TType == 8 || item.TType == 9) { //当面付 OrderF2F OrderF2F = Entity.OrderF2F.FirstOrNew(n => n.OId == item.TNum); I = OrderF2F.UserRate; //商户费率 J = OrderF2F.Poundage; //手续费 K = OrderF2F.SysRate; //第三方费率 L = ((decimal)OrderF2F.SysRate * OrderF2F.Amoney).Ceiling(); //第三方手续费 N = OrderF2F.AgentPayGet; //分支机构提成 M = OrderF2F.Poundage - (decimal)OrderF2F.SysRate * OrderF2F.Amoney - (decimal)OrderF2F.AgentPayGet; //利润 } if (item.TType == 10) { //升级订单 DaiLiOrder DaiLiOrder = Entity.DaiLiOrder.FirstOrNew(n => n.OId == item.TNum); I = 0; //商户费率 J = 0; //手续费 K = 0; //第三方费率 L = 0; //第三方手续费 N = DaiLiOrder.AgentGet; //分支机构提成 M = DaiLiOrder.Amoney - (decimal)DaiLiOrder.AgentGet; //利润 } #endregion //用户费率9 if (item.TType == 2) { cells["L" + i].Value = Is; } else { cells["L" + i].Value = I; } //用户手续费10 cells["M" + i].Value = J; //支出费率11 系统费率 cells["N" + i].Value = K; //支出手续费12 cells["O" + i].Value = L; //利润13 cells["P" + i].Value = M; //结算金额14 cells["Q" + i].Value = N; i++; #endregion } sheet.Row(i).Height = 40;//设置行高 //交易总额 cells["F" + i].Formula = "SUM(F" + Befor + ":F" + (i - 1) + ")"; //用户手续费10 cells["M" + i].Formula = "SUM(M" + Befor + ":M" + (i - 1) + ")"; //支出手续费12 cells["O" + i].Formula = "SUM(O" + Befor + ":O" + (i - 1) + ")"; //利润13 cells["P" + i].Formula = "SUM(P" + Befor + ":P" + (i - 1) + ")"; //结算金额14 cells["Q" + i].Formula = "SUM(Q" + Befor + ":Q" + (i - 1) + ")"; i--; maxCol = 17; //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, 7, i, 7].Style.Numberformat.Format = "yyyy-mm-dd HH:mm:ss"; sheet.Cells[Befor, 8, i, 8].Style.Numberformat.Format = "yyyy-mm-dd HH:mm:ss"; sheet.Cells[Befor, 12, i, 12].Style.Numberformat.Format = "#0.00%"; sheet.Cells[Befor, 14, i, 14].Style.Numberformat.Format = "#0.00%"; i++; sheet.Cells[Befor, 6, i, 6].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)"; sheet.Cells[Befor, 13, i, 13].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)"; sheet.Cells[Befor, 15, i, 15].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)"; sheet.Cells[Befor, 16, i, 16].Style.Numberformat.Format = "\"¥\"#,##0.00_);[Red](\"¥\"#,##0.00)"; sheet.Cells[Befor, 17, i, 17].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"); #endregion } else { Response.Write("暂无符合条件数据"); } }