using MySystem.MainModels; using Library; using System.Collections.Generic; using System; using System.Data; namespace MySystem { /// /// 经营数据工具类 /// public class BusinessUtil { #region 经营数据记录(月) /// /// 经营数据记录(月) /// /// 商户Id /// 月份 /// 条数 /// 页数 /// public static List> BussinessRecordForMonth(int MerchantId, string TradeMonth, int pageSize, int pageNum) { List> dataList = new List>(); if (!new MerchantTradeSummaryService().CheckTableExist(TradeMonth)) { return dataList; } // List> source = new MerchantTradeSummaryService().List2(new List(), " and MerchantId=" + MerchantId, TradeMonth, pageNum, pageSize, "TradeDate desc"); // // var infos = UserTradeDbconn.GetDateTradeList(MerchantId,TradeMonth); // foreach (Dictionary subdata in source) // { // Dictionary curData = new Dictionary(); // curData.Add("TradeDate", subdata["TradeDate"].ToString()); //日期 // curData.Add("TotalAmount", subdata["TradeAmount"].ToString()); //营业总金额 // curData.Add("InFactAmount", subdata["InFactAmount"].ToString()); //实收总金额 // curData.Add("ActAmount", subdata["ActAmount"].ToString()); //活动总金额 // curData.Add("NonActAmount", subdata["NonActAmount"].ToString()); //非活动总金额 // curData.Add("WeChatInFactAmount", subdata["WeChatInfactAmount"].ToString()); //微信实收 // curData.Add("AliPayInFactAmount", subdata["AliPayInFactAmount"].ToString()); //支付宝实收 // curData.Add("OrderCount", subdata["OderCount"].ToString()); //订单数 // curData.Add("Kind", 1); //通道(1 直连 2 银联) // dataList.Add(curData); // } // return dataList; string limit = " limit " + pageSize; if (pageNum > 1) { int skip = (pageNum - 1) * pageSize; limit = " limit " + skip + "," + pageSize; } DataTable dt = CustomerSqlConn.dtable("select TradeDate,sum(TradeAmount) TotalAmount,sum(TotalActual) InFactAmount,sum(if(IsAct=1,TradeAmount,0)) ActAmount,sum(if(IsAct=0,TradeAmount,0)) NonActAmount,sum(if(PayMode=2,TotalActual,0)) WeChatInFactAmount,sum(if(PayMode=1,TotalActual,0)) AliPayInFactAmount,sum(TradeCount) OrderCount from MerchantAmountSummay where MerchantId=" + MerchantId + " and TradeMonth='" + TradeMonth + "' group by TradeDate order by TradeDate desc" + limit, AppConfig.Base.SqlConnStr); if (dt.Rows.Count < 1) { return dataList; } foreach (DataRow subdata in dt.Rows) { Dictionary curData = new Dictionary(); curData.Add("TradeDate", subdata["TradeDate"].ToString()); //日期 curData.Add("TotalAmount", decimal.Parse(subdata["TotalAmount"].ToString()).ToString("f2")); //营业总金额 curData.Add("InFactAmount", decimal.Parse(subdata["InFactAmount"].ToString()).ToString("f2")); //实收总金额 curData.Add("ActAmount", decimal.Parse(subdata["ActAmount"].ToString()).ToString("f2")); //活动总金额 curData.Add("NonActAmount", decimal.Parse(subdata["NonActAmount"].ToString()).ToString("f2")); //非活动总金额 curData.Add("WeChatInFactAmount", decimal.Parse(subdata["WeChatInfactAmount"].ToString()).ToString("f2")); //微信实收 curData.Add("AliPayInFactAmount", decimal.Parse(subdata["AliPayInFactAmount"].ToString()).ToString("f2")); //支付宝实收 curData.Add("OrderCount", subdata["OrderCount"].ToString()); //订单数 curData.Add("Kind", 1); //通道(1 直连 2 银联) dataList.Add(curData); } return dataList; } #endregion #region 经营数据记录(半年) /// /// 经营数据记录(半年) /// /// 商户Id /// 条数 /// 页数 /// public static List> BussinessRecordForHalfYear(int MerchantId, int pageSize, int pageNum) { List> dataList = new List>(); // List> source = UserTradeDbconn.Instance.GetMonthTradeList(MerchantId, "TradeAmount,InFactAmount,ActAmount,NonActAmount,WeChatInFactAmount,AliPayInFactAmount,OderCount"); // foreach (Dictionary subdata in source) // { // Dictionary curData = new Dictionary(); // curData.Add("TradeDate", subdata["TradeDate"].ToString()); //日期 // curData.Add("TotalAmount", subdata["TradeAmount"].ToString()); //营业总金额 // curData.Add("InFactAmount", subdata["InFactAmount"].ToString()); //实收总金额 // curData.Add("ActAmount", subdata["ActAmount"].ToString()); //活动总金额 // curData.Add("NonActAmount", subdata["NonActAmount"].ToString()); //非活动总金额 // curData.Add("WeChatInFactAmount", subdata["WeChatInFactAmount"].ToString()); //微信实收 // curData.Add("AliPayInFactAmount", subdata["AliPayInFactAmount"].ToString()); //支付宝实收 // curData.Add("OrderCount", subdata["OderCount"].ToString()); //订单数 // dataList.Add(curData); // } var end = DateTime.Now.ToString("yyyyMM"); var start = DateTime.Now.AddMonths(-5).ToString("yyyyMM"); DataTable dt = CustomerSqlConn.dtable("SELECT TradeMonth 日期,SUM(TradeAmount) 营业总金额,SUM(TotalActual) 实收总金额,SUM(IF(IsAct=1,TotalActual,0)) 活动总金额,SUM(IF(IsAct=0,TotalActual,0)) 非活动总金额,SUM(IF(PayMode=1,TotalActual,0)) 微信实收,SUM(IF(PayMode=2,TotalActual,0)) 支付宝实收,SUM(TradeCount) 订单数 FROM MerchantAmountSummay WHERE MerchantId=" + MerchantId + " AND TradeMonth>='" + start + "' AND TradeMonth<='" + end + "' GROUP BY TradeMonth ORDER BY TradeMonth DESC", AppConfig.Base.SqlConnStr); if (dt.Rows.Count < 1) { return dataList; } else { foreach (DataRow item in dt.Rows) { Dictionary curData = new Dictionary(); var TradeDate = item["日期"].ToString(); curData.Add("TradeDate", TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(TradeDate.Length - 2, 2)); //日期 curData.Add("TotalAmount", decimal.Parse(item["营业总金额"].ToString()).ToString("f2")); //营业总金额 curData.Add("InFactAmount", decimal.Parse(item["实收总金额"].ToString()).ToString("f2")); //实收总金额 curData.Add("ActAmount", decimal.Parse(item["活动总金额"].ToString()).ToString("f2")); //活动总金额 curData.Add("NonActAmount", decimal.Parse(item["非活动总金额"].ToString()).ToString("f2")); //非活动总金额 curData.Add("WeChatInFactAmount", decimal.Parse(item["微信实收"].ToString()).ToString("f2")); //微信实收 curData.Add("AliPayInFactAmount", decimal.Parse(item["支付宝实收"].ToString()).ToString("f2")); //支付宝实收 curData.Add("OrderCount", item["订单数"].ToString()); //订单数 dataList.Add(curData); } } return dataList; } #endregion #region 经营详情列表 /// /// 经营详情列表 /// /// 查询条件 /// 条数 /// 页数 /// public static List> DayDetailList(string condition, int pageSize, int pageNum) { List> dataList = new List>(); List> source = new ConsumerOrdersService().List(new List(), condition, pageNum, pageSize); foreach (Dictionary subdata in source) { Dictionary curData = new Dictionary(); curData.Add("Id", subdata["Id"].ToString()); //订单Id curData.Add("TradeDate", DateTime.Parse(subdata["CreateDate"].ToString()).ToString("HH:mm:ss")); //日期 curData.Add("PayMode", subdata["PayMode"].ToString()); //支付方式(1 支付宝 2 微信) curData.Add("IsAct", subdata["IsAct"].ToString()); //是否活动(1 是 0 否) curData.Add("PayMoney", subdata["PayMoney"].ToString()); //订单金额 curData.Add("Kind", 1); //通道(1 直连 2 银联) dataList.Add(curData); } return dataList; } #endregion #region 交易详情 /// /// 交易详情 /// /// 查询条件 /// public static Dictionary OrderDetail(string condition) { Dictionary obj = new Dictionary(); List> source = new ConsumerOrdersService().List(new List(), condition, 1, 999); foreach (Dictionary subdata in source) { var leaveAmount = decimal.Parse(subdata["MaxDivi"].ToString()) - decimal.Parse(subdata["CurDivi"].ToString()); obj.Add("TradeDate", DateTime.Parse(subdata["CreateDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss")); //日期 obj.Add("PayMode", subdata["PayMode"].ToString()); //支付方式(1 微信 2 支付宝) obj.Add("PayMoney", subdata["PayMoney"].ToString()); //是否活动(1 是 0 否) obj.Add("IsAct", subdata["IsAct"].ToString()); //是否活动(1 是 0 否) obj.Add("OrderNo", subdata["OrderNo"].ToString()); //订单号 obj.Add("ReturnFlag", int.Parse(subdata["ReturnFlag"].ToString())); //返现标记(0 否 1 是) obj.Add("Kind", 1); //通道(1 直连 2 银联) obj.Add("LeaveAmount", leaveAmount); //剩余返现金额 List> dataList = new List>(); List> dics = new ConsumerProfitService().List(new List(), " and OrderId=" + int.Parse(subdata["Id"].ToString()) + "", 1, 999); foreach (Dictionary dic in dics) { Dictionary cdata = new Dictionary(); var CreateDate = DateTime.Parse(dic["CreateDate"].ToString()); var TradeDate = CreateDate.Month + "月" + CreateDate.Day + "日" + " " + CreateDate.ToString("HH:mm"); cdata.Add("ProfitDate", TradeDate); //分红时间 cdata.Add("ProfitAmount", dic["GetMoney"].ToString()); //分红金额 dataList.Add(cdata); } obj.Add("ProfitTotalAmount", new ConsumerProfitService().Sum("GetMoney", " and OrderId=" + int.Parse(subdata["Id"].ToString()) + "")["GetMoney"]); //分红总金额 MerchantInfo merchant = new MerchantInfoService().Query(int.Parse(function.CheckInt(subdata["MerchantId"].ToString()))); obj.Add("MerchantName", merchant.Name); //门店名称 obj.Add("ProfitList", dataList); //订单分红记录列表 } return obj; } #endregion } }