UserTradeDaySummaryController.cs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  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.v2
  15. {
  16. [Area("Api")]
  17. [Route("Api/v2/[controller]/[action]")]
  18. public class UserTradeDaySummaryController : BaseController
  19. {
  20. public UserTradeDaySummaryController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  21. {
  22. OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  23. }
  24. //数据库链接
  25. public string StatConn = Library.ConfigurationManager.AppSettings["TSqlConnStr"].ToString();
  26. #region 首页-本月团队业绩
  27. [Authorize]
  28. public JsonResult ThisMonth(string value)
  29. {
  30. value = DesDecrypt(value);
  31. JsonData data = JsonMapper.ToObject(value);
  32. Dictionary<string, object> Obj = ThisMonthDo(value);
  33. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  34. }
  35. public Dictionary<string, object> ThisMonthDo(string value)
  36. {
  37. JsonData data = JsonMapper.ToObject(value);
  38. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  39. Dictionary<string, object> Obj = new Dictionary<string, object>();
  40. string Month = DateTime.Now.ToString("yyyyMM");
  41. if (DateTime.Now.Day == 1)
  42. {
  43. Month = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
  44. }
  45. decimal HelpAmount = 0;
  46. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + Month + " WHERE UserId=" + UserId + " AND DirectFlag=0", StatConn);
  47. if (dt.Rows.Count > 0)
  48. {
  49. HelpAmount = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmount"].ToString()));
  50. Obj.Add("HelpAmount", HelpAmount); //助利宝交易额
  51. }
  52. Obj.Add("DirectTradeAmt", UserTradeDaySummaryVsDbconn.Instance.GetMonthTrade(UserId, Month, "team") + HelpAmount); //团队交易总额
  53. Obj.Add("DirectDebitCapNum", UserDataDbconn.Instance.GetTeamPosActCount(UserId, Month)); //直营激活商户数
  54. Obj.Add("AddCount", UsersDbconn.Instance.GetTeamNewUserCount(UserId, Month)); //新增创客数
  55. return Obj;
  56. }
  57. #endregion
  58. #region 创客-首页-交易分析-个人业绩
  59. [Authorize]
  60. public JsonResult PersonalPerformance(string value)
  61. {
  62. value = DesDecrypt(value);
  63. JsonData data = JsonMapper.ToObject(value);
  64. Dictionary<string, object> Obj = PersonalPerformanceDo(value);
  65. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  66. }
  67. public Dictionary<string, object> PersonalPerformanceDo(string value)
  68. {
  69. JsonData data = JsonMapper.ToObject(value);
  70. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  71. string TradeMonth = data["TradeMonth"].ToString(); //交易月
  72. Dictionary<string, object> Obj = new Dictionary<string, object>();
  73. decimal HelpAmount = 0;
  74. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + TradeMonth + " WHERE UserId=" + UserId + " AND DirectFlag=1", StatConn);
  75. foreach (DataRow item in dt.Rows)
  76. {
  77. HelpAmount = decimal.Parse(function.CheckNum(item["HelpAmount"].ToString()));
  78. Obj.Add("HelpAmount", HelpAmount); //助利宝交易额
  79. }
  80. Obj.Add("TotalAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTrade(UserId, TradeMonth) + HelpAmount); //总交易
  81. Obj.Add("TotalActiveAmount", RedisDbconn.Instance.Get<decimal>("TotalAmount:Active:" + UserId + ":" + TradeMonth)); //总活动交易
  82. Obj.Add("TotalUnActiveAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, TradeMonth, 0, 0)); //Pos借记卡交易额
  83. Obj.Add("TotalUser", UsersDbconn.Instance.GetNewUserCount(UserId)); //累计总创客
  84. Obj.Add("TotalActMerchant", RedisDbconn.Instance.Get<int>("ActMerchantCount:" + UserId + ":" + TradeMonth)); //累计激活商户
  85. Obj.Add("TotalWeChatOrder", RedisDbconn.Instance.Get<int>("TotalOrder:WeChat:" + UserId + ":" + TradeMonth)); //微信订单数
  86. Obj.Add("TotalAlipayOrder", RedisDbconn.Instance.Get<int>("TotalOrder:Alipay:" + UserId + ":" + TradeMonth)); //支付宝订单数
  87. Obj.Add("TotalPosAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, TradeMonth, 0, 1)); //Pos贷记卡交易额
  88. Obj.Add("TotalCloudPayAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForCloud(UserId, TradeMonth, 1)); //云闪付小额交易额
  89. Obj.Add("AddUser", UsersDbconn.Instance.GetNewUserCount(UserId, TradeMonth)); //新增创客
  90. Obj.Add("TotalPosMerchant", UserDataDbconn.Instance.GetPosActCount(UserId)); //累计激活POS机商户
  91. return Obj;
  92. }
  93. #endregion
  94. #region 创客-首页-交易分析-个人业绩-服务费明细
  95. [Authorize]
  96. public JsonResult PersonalServiceProfit(string value)
  97. {
  98. value = DesDecrypt(value);
  99. JsonData data = JsonMapper.ToObject(value);
  100. List<Dictionary<string, object>> dataList = PersonalServiceProfitDo(value);
  101. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  102. }
  103. public List<Dictionary<string, object>> PersonalServiceProfitDo(string value)
  104. {
  105. JsonData data = JsonMapper.ToObject(value);
  106. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  107. string TradeDate = data["TradeDate"].ToString(); //交易日
  108. string PayMode = data["PayMode"].ToString(); //支付方式
  109. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  110. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  111. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  112. List<UserTradeDaySummary> query = RedisDbconn.Instance.GetList<UserTradeDaySummary>("UserTradeDaySummary", PageNum, PageSize);
  113. if (!string.IsNullOrEmpty(data["UserId"].ToString()))
  114. {
  115. query = query.Where(m => m.UserId == UserId).ToList();
  116. }
  117. if (!string.IsNullOrEmpty(data["TradeDate"].ToString()))
  118. {
  119. query = query.Where(m => m.TradeDate == TradeDate).ToList();
  120. }
  121. foreach (var subdata in query)
  122. {
  123. Dictionary<string, object> curData = new Dictionary<string, object>();
  124. curData.Add("CreateDate", subdata.CreateDate == null ? "" : subdata.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //CreateDate
  125. curData.Add("PayMode", ""); //支付方式
  126. curData.Add("ServiceProfit", ""); //服务费分润
  127. dataList.Add(curData);
  128. }
  129. return dataList;
  130. }
  131. #endregion
  132. #region 创客-首页-交易分析-个人业绩-每月明细
  133. [Authorize]
  134. public JsonResult PersonalPerformanceForDay(string value)
  135. {
  136. value = DesDecrypt(value);
  137. JsonData data = JsonMapper.ToObject(value);
  138. List<Dictionary<string, object>> dataList = PersonalPerformanceForDayDo(value);
  139. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  140. }
  141. public List<Dictionary<string, object>> PersonalPerformanceForDayDo(string value)
  142. {
  143. JsonData data = JsonMapper.ToObject(value);
  144. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  145. string TradeMonth = data["TradeMonth"].ToString(); //交易月
  146. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  147. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  148. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  149. DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
  150. if (DateTime.Now.ToString("yyyyMM") != TradeMonth)
  151. {
  152. start = DateTime.Parse(TradeMonth.Substring(0, 4) + "-" + TradeMonth.Substring(4, 2) + "-01 00:00:00").AddMonths(1).AddDays(-1);
  153. }
  154. if (PageNum > 1)
  155. {
  156. int skipNum = PageSize * (PageNum - 1);
  157. start = start.AddDays(-skipNum);
  158. }
  159. for (int i = 0; i < PageSize; i++)
  160. {
  161. DateTime date = start.AddDays(-i);
  162. // if (date.ToString("yyyyMMdd") != start.ToString("yyyyMMdd"))
  163. // {
  164. string Date = date.ToString("yyyyMMdd");
  165. Dictionary<string, object> curData = new Dictionary<string, object>();
  166. decimal HelpAmount = 0;
  167. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + TradeMonth + " WHERE UserId=" + UserId + " AND DirectFlag=1", StatConn);
  168. foreach (DataRow item in dt.Rows)
  169. {
  170. HelpAmount = decimal.Parse(function.CheckNum(item["HelpAmount"].ToString()));
  171. curData.Add("HelpAmount", HelpAmount); //助利宝交易额
  172. }
  173. curData.Add("TradeDate", date.ToString("yyyy-MM-dd")); //交易月份
  174. curData.Add("TradeAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTrade(UserId, Date) + HelpAmount); //总交易额
  175. curData.Add("TotalActiveAmount", RedisDbconn.Instance.Get<decimal>("TotalAmount:Active:" + UserId + ":" + Date)); //码牌活动交易
  176. curData.Add("TotalUnActiveAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForClouds(UserId, Date, 0, 0)); //Pos借记卡交易额
  177. curData.Add("TotalPosAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForClouds(UserId, Date, 0, 1)); //Pos贷记卡交易额
  178. curData.Add("TotalCloudPayAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForCloud(UserId, Date, 1)); //云闪付小额交易
  179. List<Dictionary<string, object>> ProductList = new List<Dictionary<string, object>>();
  180. List<KqProducts> list = RedisDbconn.Instance.GetList<KqProducts>("KqProducts", 1, 100);
  181. foreach (KqProducts sub in list)
  182. {
  183. decimal Amount = UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForBrand(UserId, Date, sub.Id);
  184. if (Amount > 0)
  185. {
  186. Dictionary<string, object> item = new Dictionary<string, object>();
  187. item.Add("Id", sub.Id); //产品Id
  188. item.Add("Name", sub.Name); //名称
  189. item.Add("Amount", Amount); //交易额
  190. ProductList.Add(item);
  191. }
  192. }
  193. curData.Add("ProductList", ProductList); //产品列表
  194. dataList.Add(curData);
  195. // }
  196. }
  197. return dataList;
  198. }
  199. #endregion
  200. #region 创客-首页-交易分析-个人业绩-近半年
  201. [Authorize]
  202. public JsonResult PersonalPerformanceHalfYear(string value)
  203. {
  204. value = DesDecrypt(value);
  205. JsonData data = JsonMapper.ToObject(value);
  206. List<Dictionary<string, object>> dataList = PersonalPerformanceHalfYearDo(value);
  207. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  208. }
  209. public List<Dictionary<string, object>> PersonalPerformanceHalfYearDo(string value)
  210. {
  211. JsonData data = JsonMapper.ToObject(value);
  212. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  213. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  214. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  215. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  216. for (int i = 0; i < 6; i++)
  217. {
  218. DateTime Month = DateTime.Now.AddMonths(-i);
  219. var month = Month.ToString("yyyyMM");
  220. Dictionary<string, object> curData = new Dictionary<string, object>();
  221. decimal HelpAmount = 0;
  222. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + Month + " WHERE UserId=" + UserId + " AND DirectFlag=1", StatConn);
  223. if (dt.Rows.Count > 0)
  224. {
  225. HelpAmount = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmount"].ToString()));
  226. curData.Add("HelpAmount", HelpAmount); //助利宝交易额
  227. }
  228. curData.Add("TradeMonth", Month.ToString("yyyy-MM")); //交易月份
  229. curData.Add("TradeAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTrade(UserId, Month.ToString("yyyyMM")) + HelpAmount); //总交易额
  230. curData.Add("TotalActiveAmount", RedisDbconn.Instance.Get<decimal>("TotalAmount:Active:" + UserId + ":" + Month.ToString("yyyyMM"))); //码牌活动交易
  231. curData.Add("TotalUnActiveAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, Month.ToString("yyyyMM"), 0, 0)); //Pos借记卡交易额
  232. curData.Add("TotalPosAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, Month.ToString("yyyyMM"), 0, 1)); //Pos贷记卡交易额
  233. curData.Add("TotalCloudPayAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForCloud(UserId, Month.ToString("yyyyMM"), 1)); //云闪付小额交易
  234. List<Dictionary<string, object>> ProductList = new List<Dictionary<string, object>>();
  235. List<KqProducts> list = RedisDbconn.Instance.GetList<KqProducts>("KqProducts", 1, 100);
  236. foreach (KqProducts sub in list)
  237. {
  238. decimal Amount = UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForBrand(UserId, Month.ToString("yyyyMM"), sub.Id);
  239. if (Amount > 0)
  240. {
  241. Dictionary<string, object> item = new Dictionary<string, object>();
  242. item.Add("Id", sub.Id); //产品Id
  243. item.Add("Name", sub.Name); //名称
  244. item.Add("Amount", Amount); //交易额
  245. ProductList.Add(item);
  246. }
  247. }
  248. curData.Add("ProductList", ProductList); //产品列表
  249. dataList.Add(curData);
  250. }
  251. return dataList;
  252. }
  253. #endregion
  254. #region 创客-首页-交易分析-团队业绩
  255. [Authorize]
  256. public JsonResult TeamPerformance(string value)
  257. {
  258. value = DesDecrypt(value);
  259. JsonData data = JsonMapper.ToObject(value);
  260. Dictionary<string, object> Obj = TeamPerformanceDo(value);
  261. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  262. }
  263. public Dictionary<string, object> TeamPerformanceDo(string value)
  264. {
  265. // TODO:每月1号显示上月数据,2号显示本月数据
  266. JsonData data = JsonMapper.ToObject(value);
  267. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  268. string TradeMonth = data["TradeMonth"].ToString(); //交易月
  269. Dictionary<string, object> Obj = new Dictionary<string, object>();
  270. decimal HelpAmount = 0;
  271. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + TradeMonth + " WHERE UserId=" + UserId + " AND DirectFlag=0", StatConn);
  272. if (dt.Rows.Count > 0)
  273. {
  274. HelpAmount = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmount"].ToString()));
  275. Obj.Add("HelpAmount", HelpAmount); //助利宝交易额
  276. }
  277. Obj.Add("TotalAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTrade(UserId, TradeMonth, "team") + HelpAmount); //总交易
  278. Obj.Add("TotalActiveAmount", RedisDbconn.Instance.Get<decimal>("TeamTotalAmount:Active:" + UserId + ":" + TradeMonth)); //总活动交易
  279. Obj.Add("TotalUnActiveAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, TradeMonth, 0, 0, "team")); //Pos借记卡交易额
  280. Obj.Add("TotalUser", UsersDbconn.Instance.GetTeamNewUserCount(UserId)); //累计总创客
  281. Obj.Add("TotalActMerchant", RedisDbconn.Instance.Get<int>("TeamActMerchantCount:" + UserId + ":" + TradeMonth)); //累计激活商户
  282. Obj.Add("TotalWeChatOrder", RedisDbconn.Instance.Get<int>("TeamTotalOrder:WeChat:" + UserId + ":" + TradeMonth)); //微信订单数
  283. Obj.Add("TotalAlipayOrder", RedisDbconn.Instance.Get<int>("TeamTotalOrder:Alipay:" + UserId + ":" + TradeMonth)); //支付宝订单数
  284. Obj.Add("TotalPosAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, TradeMonth, 0, 1, "team")); //Pos贷记卡交易额
  285. Obj.Add("TotalCloudPayAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForCloud(UserId, TradeMonth, 1, "team")); //云闪付小额交易额
  286. Obj.Add("AddUser", UsersDbconn.Instance.GetTeamNewUserCount(UserId, TradeMonth)); //新增创客
  287. Obj.Add("TotalPosMerchant", UserDataDbconn.Instance.GetTeamPosActCount(UserId)); //累计激活POS机商户
  288. return Obj;
  289. }
  290. #endregion
  291. #region 创客-首页-交易分析-团队业绩-服务费明细
  292. [Authorize]
  293. public JsonResult TeamServiceProfit(string value)
  294. {
  295. value = DesDecrypt(value);
  296. JsonData data = JsonMapper.ToObject(value);
  297. List<Dictionary<string, object>> dataList = TeamServiceProfitDo(value);
  298. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  299. }
  300. public List<Dictionary<string, object>> TeamServiceProfitDo(string value)
  301. {
  302. JsonData data = JsonMapper.ToObject(value);
  303. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  304. string TradeDate = data["TradeDate"].ToString(); //交易日
  305. string PayMode = data["PayMode"].ToString(); //支付方式
  306. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  307. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  308. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  309. List<UserTradeDaySummary> query = RedisDbconn.Instance.GetList<UserTradeDaySummary>("UserTradeDaySummary", PageNum, PageSize);
  310. if (!string.IsNullOrEmpty(data["UserId"].ToString()))
  311. {
  312. query = query.Where(m => m.UserId == UserId).ToList();
  313. }
  314. if (!string.IsNullOrEmpty(data["TradeDate"].ToString()))
  315. {
  316. query = query.Where(m => m.TradeDate == TradeDate).ToList();
  317. }
  318. foreach (var subdata in query)
  319. {
  320. Dictionary<string, object> curData = new Dictionary<string, object>();
  321. curData.Add("CreateDate", subdata.CreateDate == null ? "" : subdata.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //CreateDate
  322. curData.Add("PayMode", ""); //支付方式
  323. curData.Add("ServiceProfit", ""); //服务费分润
  324. dataList.Add(curData);
  325. }
  326. return dataList;
  327. }
  328. #endregion
  329. #region 创客-首页-交易分析-团队业绩-每月明细
  330. [Authorize]
  331. public JsonResult TeamPerformanceForDay(string value)
  332. {
  333. value = DesDecrypt(value);
  334. JsonData data = JsonMapper.ToObject(value);
  335. List<Dictionary<string, object>> dataList = TeamPerformanceForDayDo(value);
  336. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  337. }
  338. public List<Dictionary<string, object>> TeamPerformanceForDayDo(string value)
  339. {
  340. JsonData data = JsonMapper.ToObject(value);
  341. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  342. string TradeMonth = data["TradeMonth"].ToString(); //交易月
  343. string MerchantId = data["MerchantId"].ToString(); //商户Id
  344. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  345. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  346. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  347. DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
  348. if (DateTime.Now.ToString("yyyyMM") != TradeMonth)
  349. {
  350. start = DateTime.Parse(TradeMonth.Substring(0, 4) + "-" + TradeMonth.Substring(4, 2) + "-01 00:00:00").AddMonths(1).AddDays(-1);
  351. }
  352. if (PageNum > 1)
  353. {
  354. int skipNum = PageSize * (PageNum - 1);
  355. start = start.AddDays(-skipNum);
  356. }
  357. for (int i = 0; i < PageSize; i++)
  358. {
  359. DateTime date = start.AddDays(-i);
  360. // if (date.ToString("yyyyMMdd") != start.ToString("yyyyMMdd"))
  361. // {
  362. string Date = date.ToString("yyyyMMdd");
  363. Dictionary<string, object> curData = new Dictionary<string, object>();
  364. decimal HelpAmount = 0;
  365. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + TradeMonth + " WHERE UserId=" + UserId + " AND DirectFlag=0", StatConn);
  366. if (dt.Rows.Count > 0)
  367. {
  368. HelpAmount = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmount"].ToString()));
  369. curData.Add("HelpAmount", HelpAmount); //助利宝交易额
  370. }
  371. curData.Add("TradeDate", date.ToString("yyyy-MM-dd")); //交易月份
  372. curData.Add("TradeAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTrade(UserId, Date, "team") + HelpAmount); //总交易额
  373. curData.Add("TotalActiveAmount", RedisDbconn.Instance.Get<decimal>("TeamTotalAmount:Active:" + UserId + ":" + Date)); //码牌活动交易
  374. curData.Add("TotalUnActiveAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForClouds(UserId, Date, 0, 0, "team")); //Pos借记卡交易额
  375. curData.Add("TotalPosAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForClouds(UserId, Date, 0, 1, "team")); //Pos贷记卡交易额
  376. curData.Add("TotalCloudPayAmount", UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForCloud(UserId, Date, 1, "team")); //云闪付小额交易
  377. List<Dictionary<string, object>> ProductList = new List<Dictionary<string, object>>();
  378. List<KqProducts> list = RedisDbconn.Instance.GetList<KqProducts>("KqProducts", 1, 100);
  379. foreach (KqProducts sub in list)
  380. {
  381. decimal Amount = UserTradeDaySummaryVsDbconn.Instance.GetDateTradeForBrand(UserId, Date, sub.Id, "team");
  382. if (Amount > 0)
  383. {
  384. Dictionary<string, object> item = new Dictionary<string, object>();
  385. item.Add("Id", sub.Id); //产品Id
  386. item.Add("Name", sub.Name); //名称
  387. item.Add("Amount", Amount); //交易额
  388. ProductList.Add(item);
  389. }
  390. }
  391. curData.Add("ProductList", ProductList); //产品列表
  392. dataList.Add(curData);
  393. // }
  394. }
  395. return dataList;
  396. }
  397. #endregion
  398. #region 创客-首页-交易分析-团队业绩-近半年
  399. [Authorize]
  400. public JsonResult TeamPerformanceHalfYear(string value)
  401. {
  402. value = DesDecrypt(value);
  403. JsonData data = JsonMapper.ToObject(value);
  404. List<Dictionary<string, object>> dataList = TeamPerformanceHalfYearDo(value);
  405. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  406. }
  407. public List<Dictionary<string, object>> TeamPerformanceHalfYearDo(string value)
  408. {
  409. JsonData data = JsonMapper.ToObject(value);
  410. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客
  411. string MerchantId = data["MerchantId"].ToString(); //商户Id
  412. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  413. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  414. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  415. for (int i = 0; i < 6; i++)
  416. {
  417. DateTime Month = DateTime.Now.AddMonths(-i);
  418. var month = Month.ToString("yyyyMM");
  419. Dictionary<string, object> curData = new Dictionary<string, object>();
  420. decimal HelpAmount = 0;
  421. DataTable dt = CustomerSqlConn.dtable("SELECT SUM(TradeAmount) HelpAmount FROM ProfitTradeStat" + month + " WHERE UserId=" + UserId + " AND DirectFlag=0", StatConn);
  422. if (dt.Rows.Count > 0)
  423. {
  424. HelpAmount = decimal.Parse(function.CheckNum(dt.Rows[0]["HelpAmount"].ToString()));
  425. curData.Add("HelpAmount", HelpAmount); //助利宝交易额
  426. }
  427. curData.Add("TradeMonth", Month.ToString("yyyy-MM")); //交易月份
  428. curData.Add("TradeAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTrade(UserId, Month.ToString("yyyyMM"), "team") + HelpAmount); //总交易额
  429. curData.Add("TotalActiveAmount", RedisDbconn.Instance.Get<decimal>("TeamTotalAmount:Active:" + UserId + ":" + Month.ToString("yyyyMM"))); //码牌活动交易
  430. curData.Add("TotalUnActiveAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, Month.ToString("yyyyMM"), 0, 0, "team")); //Pos借记卡交易额
  431. curData.Add("TotalPosAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForClouds(UserId, Month.ToString("yyyyMM"), 0, 1, "team")); //Pos贷记卡交易额
  432. curData.Add("TotalCloudPayAmount", UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForCloud(UserId, Month.ToString("yyyyMM"), 1, "team")); //云闪付小额交易
  433. List<Dictionary<string, object>> ProductList = new List<Dictionary<string, object>>();
  434. List<KqProducts> list = RedisDbconn.Instance.GetList<KqProducts>("KqProducts", 1, 100);
  435. foreach (KqProducts sub in list)
  436. {
  437. decimal Amount = UserTradeDaySummaryVsDbconn.Instance.GetMonthTradeForBrand(UserId, Month.ToString("yyyyMM"), sub.Id, "team");
  438. if (Amount > 0)
  439. {
  440. Dictionary<string, object> item = new Dictionary<string, object>();
  441. item.Add("Id", sub.Id); //产品Id
  442. item.Add("Name", sub.Name); //名称
  443. item.Add("Amount", Amount); //名称
  444. ProductList.Add(item);
  445. }
  446. }
  447. curData.Add("ProductList", ProductList); //产品列表
  448. dataList.Add(curData);
  449. }
  450. return dataList;
  451. }
  452. #endregion
  453. #region 创客-首页-我的商户-商户详情-交易统计
  454. [Authorize]
  455. public JsonResult MerchantTradeList(string value)
  456. {
  457. value = DesDecrypt(value);
  458. JsonData data = JsonMapper.ToObject(value);
  459. List<Dictionary<string, object>> dataList = MerchantTradeListDo(value);
  460. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  461. }
  462. public List<Dictionary<string, object>> MerchantTradeListDo(string value)
  463. {
  464. JsonData data = JsonMapper.ToObject(value);
  465. string TradeMonth = data["TradeMonth"].ToString(); //交易月
  466. string MerchantId = data["MerchantId"].ToString(); //商户Id
  467. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  468. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  469. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  470. List<string> query = RedisDbconn.Instance.GetList<string>("MerchantTradeList:" + MerchantId + ":" + TradeMonth, PageNum, PageSize);
  471. foreach (string DateString in query)
  472. {
  473. Dictionary<string, object> curData = new Dictionary<string, object>();
  474. curData.Add("TradeDate", DateString); //交易日
  475. curData.Add("TradeAmt", RedisDbconn.Instance.Get<decimal>("MerchantTradeAmount:" + MerchantId + ":" + DateString)); //交易额
  476. dataList.Add(curData);
  477. }
  478. return dataList;
  479. }
  480. #endregion
  481. #region 创客-首页-我的商户-商户详情-交易统计-近半年
  482. [Authorize]
  483. public JsonResult MerchantTradeListForHalfYear(string value)
  484. {
  485. value = DesDecrypt(value);
  486. JsonData data = JsonMapper.ToObject(value);
  487. List<Dictionary<string, object>> dataList = MerchantTradeListForHalfYearDo(value);
  488. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  489. }
  490. public List<Dictionary<string, object>> MerchantTradeListForHalfYearDo(string value)
  491. {
  492. JsonData data = JsonMapper.ToObject(value);
  493. string MerchantId = data["MerchantId"].ToString(); //商户Id
  494. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  495. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  496. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  497. List<UserTradeDaySummary> query = RedisDbconn.Instance.GetList<UserTradeDaySummary>("UserTradeDaySummary", PageNum, PageSize);
  498. foreach (var subdata in query)
  499. {
  500. Dictionary<string, object> curData = new Dictionary<string, object>();
  501. curData.Add("TradeMonth", subdata.TradeMonth); //交易月
  502. curData.Add("TradeAmt", ""); //交易额
  503. curData.Add("TradeCount", ""); //交易数
  504. dataList.Add(curData);
  505. }
  506. return dataList;
  507. }
  508. #endregion
  509. #region 检查签名是否合法,合法返回1,不合法返回提示信息
  510. /// <summary>
  511. /// 检查签名是否合法,合法返回1,不合法返回提示信息
  512. /// </summary>
  513. /// <param name="value">请求的参数(json字符串)</param>
  514. /// <param name="signField">要签名的字段</param>
  515. /// <returns></returns>
  516. private string CheckSign(string value, string[] signField)
  517. {
  518. JsonData json = JsonMapper.ToObject(value);
  519. Dictionary<string, string> dic = new Dictionary<string, string>();
  520. for (int i = 0; i < signField.Length; i++)
  521. {
  522. dic.Add(signField[i], json[signField[i]].ToString());
  523. }
  524. string sign = json["sign"].ToString(); //客户端签名字符串
  525. return new Sign().sign(dic, sign);
  526. }
  527. #endregion
  528. }
  529. }