BusinessUtil.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using MySystem.Models.Main;
  2. using Library;
  3. using MySystem.Service.Main;
  4. using System.Collections.Generic;
  5. using System;
  6. using System.Linq;
  7. using System.Data;
  8. namespace MySystem
  9. {
  10. /// <summary>
  11. /// 经营数据工具类
  12. /// </summary>
  13. public class BusinessUtil
  14. {
  15. #region 经营数据记录(月)
  16. /// <summary>
  17. /// 经营数据记录(月)
  18. /// </summary>
  19. /// <param name="MerchantId">商户Id</param>
  20. /// <param name="TradeMonth">月份</param>
  21. /// <param name="pageSize">条数</param>
  22. /// <param name="pageNum">页数</param>
  23. /// <returns></returns>
  24. public static List<Dictionary<string, object>> BussinessRecordForMonth(int MerchantId, string TradeMonth, int pageSize, int pageNum)
  25. {
  26. List<RelationData> relationData = new List<RelationData>();
  27. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  28. if (!new MerchantTradeSummaryService().CheckTableExist(TradeMonth))
  29. {
  30. return dataList;
  31. }
  32. // List<Dictionary<string, object>> source = MerchantTradeSummaryService.List2(relationData, " and MerchantId=" + MerchantId, TradeMonth, pageNum, pageSize,"TradeDate desc");
  33. // foreach (Dictionary<string, object> subdata in source)
  34. // {
  35. // Dictionary<string, object> curData = new Dictionary<string, object>();
  36. // curData.Add("TradeDate", subdata["TradeDate"].ToString()); //日期
  37. // curData.Add("TotalAmount", decimal.Parse(subdata["TradeAmount"].ToString()).ToString("f2")); //营业总金额
  38. // curData.Add("InFactAmount", decimal.Parse(subdata["InFactAmount"].ToString()).ToString("f2")); //实收总金额
  39. // curData.Add("ActAmount", decimal.Parse(subdata["ActAmount"].ToString()).ToString("f2")); //活动总金额
  40. // curData.Add("NonActAmount", decimal.Parse(subdata["NonActAmount"].ToString()).ToString("f2")); //非活动总金额
  41. // curData.Add("WeChatInFactAmount", decimal.Parse(subdata["WeChatInfactAmount"].ToString()).ToString("f2")); //微信实收
  42. // curData.Add("AliPayInFactAmount", decimal.Parse(subdata["AliPayInFactAmount"].ToString()).ToString("f2")); //支付宝实收
  43. // curData.Add("OrderCount", subdata["OderCount"].ToString()); //订单数
  44. // curData.Add("Kind", 2); //通道(1 直连 2 银联)
  45. // dataList.Add(curData);
  46. // }
  47. 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 + " group by TradeDate order by TradeDate desc;", AppConfig.Base.SqlConnStr);
  48. foreach (DataRow subdata in dt.Rows)
  49. {
  50. Dictionary<string, object> curData = new Dictionary<string, object>();
  51. curData.Add("TradeDate", subdata["TradeDate"].ToString()); //日期
  52. curData.Add("TotalAmount", decimal.Parse(subdata["TradeAmount"].ToString()).ToString("f2")); //营业总金额
  53. curData.Add("InFactAmount", decimal.Parse(subdata["InFactAmount"].ToString()).ToString("f2")); //实收总金额
  54. curData.Add("ActAmount", decimal.Parse(subdata["ActAmount"].ToString()).ToString("f2")); //活动总金额
  55. curData.Add("NonActAmount", decimal.Parse(subdata["NonActAmount"].ToString()).ToString("f2")); //非活动总金额
  56. curData.Add("WeChatInFactAmount", decimal.Parse(subdata["WeChatInfactAmount"].ToString()).ToString("f2")); //微信实收
  57. curData.Add("AliPayInFactAmount", decimal.Parse(subdata["AliPayInFactAmount"].ToString()).ToString("f2")); //支付宝实收
  58. curData.Add("OrderCount", subdata["OrderCount"].ToString()); //订单数
  59. curData.Add("Kind", 2); //通道(1 直连 2 银联)
  60. dataList.Add(curData);
  61. }
  62. return dataList;
  63. }
  64. #endregion
  65. #region 经营数据记录(半年)
  66. /// <summary>
  67. /// 经营数据记录(半年)
  68. /// </summary>
  69. /// <param name="MerchantId">商户Id</param>
  70. /// <param name="pageSize">条数</param>
  71. /// <param name="pageNum">页数</param>
  72. /// <returns></returns>
  73. public static List<Dictionary<string, object>> BussinessRecordForHalfYear(int MerchantId, int pageSize, int pageNum)
  74. {
  75. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  76. List<Dictionary<string, object>> source = UserTradeDbconn.Instance.GetMonthTradeList(MerchantId, "TradeAmount,InFactAmount,ActAmount,NonActAmount,WeChatInfactAmount,AliPayInFactAmount,OderCount");
  77. foreach (Dictionary<string, object> subdata in source)
  78. {
  79. Dictionary<string, object> curData = new Dictionary<string, object>();
  80. curData.Add("TradeDate", subdata["TradeDate"].ToString()); //日期
  81. curData.Add("TotalAmount", decimal.Parse(subdata["TradeAmount"].ToString()).ToString("f2")); //营业总金额
  82. curData.Add("InFactAmount", decimal.Parse(subdata["InFactAmount"].ToString()).ToString("f2")); //实收总金额
  83. curData.Add("ActAmount", decimal.Parse(subdata["ActAmount"].ToString()).ToString("f2")); //活动总金额
  84. curData.Add("NonActAmount", decimal.Parse(subdata["NonActAmount"].ToString()).ToString("f2")); //非活动总金额
  85. curData.Add("WeChatInFactAmount", decimal.Parse(subdata["WeChatInfactAmount"].ToString()).ToString("f2")); //微信实收
  86. curData.Add("AliPayInFactAmount", decimal.Parse(subdata["AliPayInFactAmount"].ToString()).ToString("f2")); //支付宝实收
  87. curData.Add("OrderCount", subdata["OderCount"].ToString()); //订单数
  88. dataList.Add(curData);
  89. }
  90. return dataList;
  91. }
  92. #endregion
  93. #region 经营详情列表
  94. /// <summary>
  95. /// 经营详情列表
  96. /// </summary>
  97. /// <param name="condition">查询条件</param>
  98. /// <param name="pageSize">条数</param>
  99. /// <param name="pageNum">页数</param>
  100. /// <returns></returns>
  101. public static List<Dictionary<string, object>> DayDetailList(string condition, int pageSize, int pageNum)
  102. {
  103. List<RelationData> relationData = new List<RelationData>();
  104. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  105. List<Dictionary<string, object>> source = ConsumerOrdersService.List(relationData, condition, pageNum, pageSize);
  106. foreach (Dictionary<string, object> subdata in source)
  107. {
  108. Dictionary<string, object> curData = new Dictionary<string, object>();
  109. curData.Add("Id", subdata["Id"].ToString()); //订单Id
  110. curData.Add("TradeDate", DateTime.Parse(subdata["CreateDate"].ToString()).ToString("HH:mm:ss")); //日期
  111. curData.Add("PayMode", subdata["PayMode"].ToString()); //支付方式(1 支付宝 2 微信)
  112. curData.Add("IsAct", subdata["IsAct"].ToString()); //是否活动(1 是 0 否)
  113. curData.Add("PayMoney", decimal.Parse(subdata["PayMoney"].ToString()).ToString("f2")); //订单金额
  114. curData.Add("Kind", 2); //通道(1 直连 2 银联)
  115. dataList.Add(curData);
  116. }
  117. return dataList;
  118. }
  119. #endregion
  120. #region 交易详情
  121. /// <summary>
  122. /// 交易详情
  123. /// </summary>
  124. /// <param name="condition">查询条件</param>
  125. /// <returns></returns>
  126. public static Dictionary<string, object> OrderDetail(string condition)
  127. {
  128. List<RelationData> relationData = new List<RelationData>();
  129. Dictionary<string, object> obj = new Dictionary<string, object>();
  130. List<Dictionary<string, object>> source = ConsumerOrdersService.List(relationData, condition, 1, 999);
  131. foreach (Dictionary<string, object> subdata in source)
  132. {
  133. var leaveAmount = decimal.Parse(subdata["MaxDivi"].ToString()) - decimal.Parse(subdata["CurDivi"].ToString());
  134. obj.Add("TradeDate", DateTime.Parse(subdata["CreateDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss")); //日期
  135. obj.Add("PayMode", subdata["PayMode"].ToString()); //支付方式(1 微信 2 支付宝)
  136. obj.Add("PayMoney", decimal.Parse(subdata["PayMoney"].ToString()).ToString("f2")); //支付金额
  137. obj.Add("IsAct", subdata["IsAct"].ToString()); //是否活动(1 是 0 否)
  138. obj.Add("OrderNo", subdata["OrderNo"].ToString()); //订单号
  139. obj.Add("ReturnFlag", int.Parse(subdata["ReturnFlag"].ToString())); //返现标记(0 否 1 是)
  140. obj.Add("Kind", 2); //通道(1 直连 2 银联)
  141. obj.Add("LeaveAmount", leaveAmount); //剩余返现金额
  142. obj.Add("MerchantName", MerchantInfoService.Query(int.Parse(subdata["MerchantId"].ToString())).Name); //交易门店
  143. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  144. List<Dictionary<string, object>> dics = ConsumerProfitService.List(relationData, " and OrderId=" + int.Parse(subdata["Id"].ToString()) + "", 1, 999);
  145. foreach (Dictionary<string, object> dic in dics)
  146. {
  147. Dictionary<string, object> cdata = new Dictionary<string, object>();
  148. var CreateDate = DateTime.Parse(dic["CreateDate"].ToString());
  149. var TradeDate = CreateDate.Month + "月" + CreateDate.Day + "日" + " " + CreateDate.ToString("HH:mm");
  150. cdata.Add("ProfitDate", TradeDate); //分红时间
  151. cdata.Add("ProfitAmount", decimal.Parse(dic["GetMoney"].ToString()).ToString("f2")); //分红金额
  152. dataList.Add(cdata);
  153. }
  154. obj.Add("ProfitTotalAmount", ConsumerProfitService.Sum(" OrderId=" + int.Parse(subdata["Id"].ToString()) + "", "GetMoney").ToString("f2")); //分红总金额
  155. obj.Add("ProfitList", dataList); //订单分红记录列表
  156. }
  157. return obj;
  158. }
  159. #endregion
  160. }
  161. }