UserTradeDaySummaryController.cs 35 KB

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