123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- using MySystem.MainModels;
- using Library;
- using System.Collections.Generic;
- using System;
- using System.Data;
- namespace MySystem
- {
- /// <summary>
- /// 经营数据工具类
- /// </summary>
- public class BusinessUtil
- {
- #region 经营数据记录(月)
- /// <summary>
- /// 经营数据记录(月)
- /// </summary>
- /// <param name="MerchantId">商户Id</param>
- /// <param name="TradeMonth">月份</param>
- /// <param name="pageSize">条数</param>
- /// <param name="pageNum">页数</param>
- /// <returns></returns>
- public static List<Dictionary<string, object>> BussinessRecordForMonth(int MerchantId, string TradeMonth, int pageSize, int pageNum)
- {
- List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
- if (!new MerchantTradeSummaryService().CheckTableExist(TradeMonth))
- {
- return dataList;
- }
- // List<Dictionary<string, object>> source = new MerchantTradeSummaryService().List2(new List<FieldItem>(), " and MerchantId=" + MerchantId, TradeMonth, pageNum, pageSize, "TradeDate desc");
- // // var infos = UserTradeDbconn.GetDateTradeList(MerchantId,TradeMonth);
- // foreach (Dictionary<string, object> subdata in source)
- // {
- // Dictionary<string, object> curData = new Dictionary<string, object>();
- // 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<string, object> curData = new Dictionary<string, object>();
- 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 经营数据记录(半年)
- /// <summary>
- /// 经营数据记录(半年)
- /// </summary>
- /// <param name="MerchantId">商户Id</param>
- /// <param name="pageSize">条数</param>
- /// <param name="pageNum">页数</param>
- /// <returns></returns>
- public static List<Dictionary<string, object>> BussinessRecordForHalfYear(int MerchantId, int pageSize, int pageNum)
- {
- List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
- // List<Dictionary<string, object>> source = UserTradeDbconn.Instance.GetMonthTradeList(MerchantId, "TradeAmount,InFactAmount,ActAmount,NonActAmount,WeChatInFactAmount,AliPayInFactAmount,OderCount");
- // foreach (Dictionary<string, object> subdata in source)
- // {
- // Dictionary<string, object> curData = new Dictionary<string, object>();
- // 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<string, object> curData = new Dictionary<string, object>();
- 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 经营详情列表
- /// <summary>
- /// 经营详情列表
- /// </summary>
- /// <param name="condition">查询条件</param>
- /// <param name="pageSize">条数</param>
- /// <param name="pageNum">页数</param>
- /// <returns></returns>
- public static List<Dictionary<string, object>> DayDetailList(string condition, int pageSize, int pageNum)
- {
- List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
- List<Dictionary<string, object>> source = new ConsumerOrdersService().List(new List<FieldItem>(), condition, pageNum, pageSize);
- foreach (Dictionary<string, object> subdata in source)
- {
- Dictionary<string, object> curData = new Dictionary<string, object>();
- 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 交易详情
- /// <summary>
- /// 交易详情
- /// </summary>
- /// <param name="condition">查询条件</param>
- /// <returns></returns>
- public static Dictionary<string, object> OrderDetail(string condition)
- {
- Dictionary<string, object> obj = new Dictionary<string, object>();
- List<Dictionary<string, object>> source = new ConsumerOrdersService().List(new List<FieldItem>(), condition, 1, 999);
- foreach (Dictionary<string, object> 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<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
- List<Dictionary<string, object>> dics = new ConsumerProfitService().List(new List<FieldItem>(), " and OrderId=" + int.Parse(subdata["Id"].ToString()) + "", 1, 999);
- foreach (Dictionary<string, object> dic in dics)
- {
- Dictionary<string, object> cdata = new Dictionary<string, object>();
- 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
- }
- }
|