TradeDaySummaryController.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Data;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.AspNetCore.Http;
  7. using Microsoft.Extensions.Logging;
  8. using Microsoft.Extensions.Options;
  9. using Microsoft.AspNetCore.Authorization;
  10. using System.Web;
  11. using MySystem.MainModels;
  12. using LitJson;
  13. using Library;
  14. namespace MySystem.Areas.Api.Controllers.v1
  15. {
  16. [Area("Api")]
  17. [Route("Api/v1/[controller]/[action]")]
  18. public class TradeDaySummaryController : BaseController
  19. {
  20. public TradeDaySummaryController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  21. {
  22. OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  23. }
  24. #region 创客-首页-交易分析-交易明细
  25. [Authorize]
  26. public JsonResult Detail(string value)
  27. {
  28. value = DesDecrypt(value);
  29. JsonData data = JsonMapper.ToObject(value);
  30. Dictionary<string, object> Obj = DetailDo(value);
  31. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  32. }
  33. public Dictionary<string, object> DetailDo(string value)
  34. {
  35. JsonData data = JsonMapper.ToObject(value);
  36. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  37. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //品牌
  38. string TradeMonthOrDate = data["TradeMonthOrDate"].ToString(); //月份或日期
  39. string Kind = data["Kind"].ToString(); //类别
  40. Dictionary<string, object> Obj = new Dictionary<string, object>();
  41. List<TradeDaySummary> query = new List<TradeDaySummary>();
  42. if (TradeMonthOrDate.Length == 6)
  43. {
  44. bool check = maindb.TradeDaySummary.Any(m => m.SeoTitle == Kind && m.UserId == UserId && m.BrandId == BrandId && m.TradeMonth == TradeMonthOrDate);
  45. if (check)
  46. {
  47. query = maindb.TradeDaySummary.Where(m => m.SeoTitle == Kind && m.UserId == UserId && m.BrandId == BrandId && m.TradeMonth == TradeMonthOrDate).ToList();
  48. }
  49. }
  50. else if (TradeMonthOrDate.Length == 8)
  51. {
  52. bool check = maindb.TradeDaySummary.Any(m => m.SeoTitle == Kind && m.UserId == UserId && m.BrandId == BrandId && m.TradeDate == TradeMonthOrDate);
  53. if (check)
  54. {
  55. query = maindb.TradeDaySummary.Where(m => m.SeoTitle == Kind && m.UserId == UserId && m.BrandId == BrandId && m.TradeDate == TradeMonthOrDate).ToList();
  56. }
  57. }
  58. //扶持期
  59. decimal TotalAmtfc = 0;
  60. decimal DAmtfc = 0;
  61. decimal JAmtfc = 0;
  62. decimal JfAmtfc = 0;
  63. int JCountfc = 0;
  64. decimal YAmtfc = 0;
  65. //稳定期
  66. decimal TotalAmtwd = 0;
  67. decimal DAmtwd = 0;
  68. decimal JAmtwd = 0;
  69. decimal JfAmtwd = 0;
  70. int JCountwd = 0;
  71. decimal YAmtwd = 0;
  72. //盈利期
  73. decimal TotalAmtyl = 0;
  74. decimal DAmtyl = 0;
  75. decimal JAmtyl = 0;
  76. decimal JfAmtyl = 0;
  77. int JCountyl = 0;
  78. decimal YAmtyl = 0;
  79. if (query.Count > 0)
  80. {
  81. //扶持期
  82. if (Kind == "team")
  83. {
  84. TotalAmtfc = query.Sum(m => m.HelpNonDirectTradeAmt + m.HelpNonDirectDebitTradeAmt);
  85. }
  86. else
  87. {
  88. TotalAmtfc = query.Sum(m => m.HelpDirectTradeAmt + m.HelpDirectDebitTradeAmt);
  89. }
  90. //稳定期
  91. if (Kind == "team")
  92. {
  93. TotalAmtwd = query.Sum(m => m.NotHelpNonDirectTradeAmt + m.NotHelpNonDirectDebitTradeAmt);
  94. }
  95. else
  96. {
  97. TotalAmtwd = query.Sum(m => m.NotHelpDirectTradeAmt + m.NotHelpDirectDebitTradeAmt);
  98. }
  99. //盈利期
  100. if (Kind == "team")
  101. {
  102. TotalAmtyl = query.Sum(m => m.ProfitNonDirectTradeAmt + m.ProfitNonDirectDebitTradeAmt);
  103. }
  104. else
  105. {
  106. TotalAmtyl = query.Sum(m => m.ProfitDirectTradeAmt + m.ProfitDirectDebitTradeAmt);
  107. }
  108. }
  109. if (query.Where(m => m.QueryCount == 0).Count() > 0)
  110. {
  111. //扶持期
  112. if (Kind == "team")
  113. {
  114. DAmtfc = query.Where(m => m.QueryCount == 0).Sum(m => m.HelpNonDirectTradeAmt);
  115. JAmtfc = query.Where(m => m.QueryCount == 0).Sum(m => m.HelpNonDirectDebitTradeAmt) - query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitCapTradeAmt);
  116. JfAmtfc = query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitCapTradeAmt);
  117. JCountfc = (int)query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitCapNum);
  118. }
  119. else
  120. {
  121. DAmtfc = query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectTradeAmt);
  122. JAmtfc = query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitTradeAmt) - query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitCapTradeAmt);
  123. JfAmtfc = query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitCapTradeAmt);
  124. JCountfc = (int)query.Where(m => m.QueryCount == 0).Sum(m => m.HelpDirectDebitCapNum);
  125. }
  126. //稳定期
  127. if (Kind == "team")
  128. {
  129. DAmtwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpNonDirectTradeAmt);
  130. JAmtwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpNonDirectDebitTradeAmt) - query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitCapTradeAmt);
  131. JfAmtwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitCapTradeAmt);
  132. JCountwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitCapNum);
  133. }
  134. else
  135. {
  136. DAmtwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectTradeAmt);
  137. JAmtwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitTradeAmt) - query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitCapTradeAmt);
  138. JfAmtwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitCapTradeAmt);
  139. JCountwd = query.Where(m => m.QueryCount == 0).Sum(m => m.NotHelpDirectDebitCapNum);
  140. }
  141. //盈利期
  142. if (Kind == "team")
  143. {
  144. DAmtyl = query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitNonDirectTradeAmt);
  145. JAmtyl = query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitNonDirectDebitTradeAmt) - query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitCapTradeAmt);
  146. JfAmtyl = query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitCapTradeAmt);
  147. JCountyl = (int)query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitCapNum);
  148. }
  149. else
  150. {
  151. DAmtyl = query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectTradeAmt);
  152. JAmtyl = query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitTradeAmt) - query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitCapTradeAmt);
  153. JfAmtyl = query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitCapTradeAmt);
  154. JCountyl = (int)query.Where(m => m.QueryCount == 0).Sum(m => m.ProfitDirectDebitCapNum);
  155. }
  156. }
  157. if (query.Where(m => m.QueryCount == 1).Count() > 0)
  158. {
  159. //扶持期
  160. if (Kind == "team")
  161. {
  162. YAmtfc = query.Where(m => m.QueryCount == 1).Sum(m => m.HelpNonDirectTradeAmt);
  163. }
  164. else
  165. {
  166. YAmtfc = query.Where(m => m.QueryCount == 1).Sum(m => m.HelpDirectTradeAmt);
  167. }
  168. //稳定期
  169. if (Kind == "team")
  170. {
  171. YAmtwd = query.Where(m => m.QueryCount == 1).Sum(m => m.NotHelpNonDirectTradeAmt);
  172. }
  173. else
  174. {
  175. YAmtwd = query.Where(m => m.QueryCount == 1).Sum(m => m.NotHelpDirectTradeAmt);
  176. }
  177. //盈利期
  178. if (Kind == "team")
  179. {
  180. YAmtyl = query.Where(m => m.QueryCount == 1).Sum(m => m.ProfitNonDirectTradeAmt);
  181. }
  182. else
  183. {
  184. YAmtyl = query.Where(m => m.QueryCount == 1).Sum(m => m.ProfitDirectTradeAmt);
  185. }
  186. }
  187. Obj.Add("TotalAmtfc", TotalAmtfc); //刷卡交易总额(扶持期)
  188. Obj.Add("DAmtfc", DAmtfc); //贷记卡交易额(扶持期)
  189. Obj.Add("JAmtfc", JAmtfc); //借记卡交易总额(扶持期)
  190. Obj.Add("JfAmtfc", JfAmtfc); //借记卡封顶交易额(扶持期)
  191. Obj.Add("JCountfc", JCountfc); //借记卡封顶笔数(扶持期)
  192. Obj.Add("YAmtfc", YAmtfc); //云闪付小额交易额(扶持期)
  193. Obj.Add("TotalAmtwd", TotalAmtwd); //刷卡交易总额(稳定期)
  194. Obj.Add("DAmtwd", DAmtwd); //贷记卡交易额(稳定期)
  195. Obj.Add("JAmtwd", JAmtwd); //借记卡交易总额(稳定期)
  196. Obj.Add("JfAmtwd", JfAmtwd); //借记卡封顶交易额(稳定期)
  197. Obj.Add("JCountwd", JCountwd); //借记卡封顶笔数(稳定期)
  198. Obj.Add("YAmtwd", YAmtwd); //云闪付小额交易额(稳定期)
  199. Obj.Add("TotalAmtyl", TotalAmtyl); //刷卡交易总额(盈利期)
  200. Obj.Add("DAmtyl", DAmtyl); //贷记卡交易额(盈利期)
  201. Obj.Add("JAmtyl", JAmtyl); //借记卡交易总额(盈利期)
  202. Obj.Add("JfAmtyl", JfAmtyl); //借记卡封顶交易额(盈利期)
  203. Obj.Add("JCountyl", JCountyl); //借记卡封顶笔数(盈利期)
  204. Obj.Add("YAmtyl", YAmtyl); //云闪付小额交易额(盈利期)
  205. return Obj;
  206. }
  207. #endregion
  208. #region 检查签名是否合法,合法返回1,不合法返回提示信息
  209. /// <summary>
  210. /// 检查签名是否合法,合法返回1,不合法返回提示信息
  211. /// </summary>
  212. /// <param name="value">请求的参数(json字符串)</param>
  213. /// <param name="signField">要签名的字段</param>
  214. /// <returns></returns>
  215. private string CheckSign(string value, string[] signField)
  216. {
  217. JsonData json = JsonMapper.ToObject(value);
  218. Dictionary<string, string> dic = new Dictionary<string, string>();
  219. for (int i = 0; i < signField.Length; i++)
  220. {
  221. dic.Add(signField[i], json[signField[i]].ToString());
  222. }
  223. string sign = json["sign"].ToString(); //客户端签名字符串
  224. return new Sign().sign(dic, sign);
  225. }
  226. #endregion
  227. }
  228. }