TradeRecordController.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509
  1. /*
  2. * 交易记录
  3. */
  4. using System;
  5. using System.Web;
  6. using System.Collections.Generic;
  7. using System.Diagnostics;
  8. using System.Linq;
  9. using System.Data;
  10. using System.Threading.Tasks;
  11. using Microsoft.AspNetCore.Mvc;
  12. using Microsoft.AspNetCore.Http;
  13. using Microsoft.Extensions.Logging;
  14. using Microsoft.Extensions.Options;
  15. using MySystem.Models;
  16. using Library;
  17. using LitJson;
  18. using MySystemLib;
  19. namespace MySystem.Areas.Admin.Controllers
  20. {
  21. [Area("Admin")]
  22. [Route("Admin/[controller]/[action]")]
  23. public class TradeRecordController : BaseController
  24. {
  25. public TradeRecordController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  26. {
  27. OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  28. }
  29. #region 交易记录列表
  30. /// <summary>
  31. /// 根据条件查询交易记录列表
  32. /// </summary>
  33. /// <returns></returns>
  34. public IActionResult Index(TradeRecord data, string right, string BrandId)
  35. {
  36. ViewBag.RightInfo = RightInfo;
  37. ViewBag.right = right;
  38. ViewBag.BrandId = BrandId;
  39. return View();
  40. }
  41. #endregion
  42. #region 根据条件查询交易记录列表
  43. /// <summary>
  44. /// 交易记录列表
  45. /// </summary>
  46. /// <returns></returns>
  47. public JsonResult IndexData(TradeRecord data, string right, string BrandId, string MerchantNo, string MerchantName, string MakerCode, string RealName, string MerMakerCode, string MerRealName, string BankCardTypeSelect, string MerBuddyTypeSelect, string CreateDateData, int page = 1, int limit = 30)
  48. {
  49. Dictionary<string, string> Fields = new Dictionary<string, string>();
  50. ViewBag.RightInfo = RightInfo;
  51. ViewBag.right = right;
  52. ViewBag.BrandId = BrandId;
  53. Fields.Add("BrandId", "1");
  54. Fields.Add("MerNo", "2"); //快钱商户编号
  55. Fields.Add("SnNo", "2"); //快钱SN号
  56. Fields.Add("TradeDate", "3"); //交易日期
  57. Fields.Add("TopUserId", "0"); //顶级创客
  58. string condition = " and Status>-1";
  59. if(!string.IsNullOrEmpty(ViewBag.BrandId))
  60. {
  61. condition += " and BrandId=" + ViewBag.BrandId;
  62. }
  63. //商户编号
  64. if (!string.IsNullOrEmpty(MerchantNo))
  65. {
  66. condition += " and MerchantId in (select MerchantId from MerchantForCode where Code='" + MerchantNo + "')";
  67. }
  68. //商户名称
  69. if (!string.IsNullOrEmpty(MerchantName))
  70. {
  71. condition += " and MerchantId in (select MerchantId from MerchantForName where Name='" + MerchantName + "')";
  72. }
  73. //创客编号
  74. if (!string.IsNullOrEmpty(MakerCode))
  75. {
  76. condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
  77. }
  78. //创客名称
  79. if (!string.IsNullOrEmpty(RealName))
  80. {
  81. condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
  82. }
  83. //商户创客编号
  84. if (!string.IsNullOrEmpty(MerMakerCode))
  85. {
  86. condition += " and MerUserId in (select UserId from UserForMakerCode where MakerCode='" + MerMakerCode + "')";
  87. }
  88. //商户创客名称
  89. if (!string.IsNullOrEmpty(MerRealName))
  90. {
  91. condition += " and MerUserId in (select UserId from UserForRealName where RealName='" + MerRealName + "')";
  92. }
  93. //银行卡类型
  94. if(!string.IsNullOrEmpty(BankCardTypeSelect))
  95. {
  96. condition += " and BankCardType=" + BankCardTypeSelect;
  97. }
  98. //商户创客类型
  99. if(!string.IsNullOrEmpty(MerBuddyTypeSelect))
  100. {
  101. condition += " and MerBuddyType=" + MerBuddyTypeSelect;
  102. }
  103. if(!string.IsNullOrEmpty(CreateDateData))
  104. {
  105. string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
  106. string start = datelist[0];
  107. string end = datelist[1];
  108. condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
  109. }
  110. Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("TradeRecord", Fields, "Id desc", "0", page, limit, condition);
  111. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  112. foreach (Dictionary<string, object> dic in diclist)
  113. {
  114. dic["MerHelpFlag"] = dic["MerHelpFlag"].ToString() == "1" ? "是" : "否";
  115. dic["CapFlag"] = dic["CapFlag"].ToString() == "1" ? "封顶" : "非封顶";
  116. dic["QrPayFlag"] = dic["QrPayFlag"].ToString() == "1" ? "云闪付" : "非云闪付";
  117. dic["DirectFlag"] = dic["DirectFlag"].ToString() == "1" ? "直营" : "非直营";
  118. //直属创客
  119. int UserId = int.Parse(dic["UserId"].ToString());
  120. Users puser = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  121. dic["MakerCode"] = puser.MakerCode;
  122. dic["RealName"] = puser.RealName;
  123. //顶级创客
  124. int TopUserId = int.Parse(dic["TopUserId"].ToString());
  125. Users tuser = db.Users.FirstOrDefault(m => m.Id == TopUserId) ?? new Users();
  126. dic["TopMakerCode"] = tuser.MakerCode;
  127. dic["TopRealName"] = tuser.RealName;
  128. //商户创客
  129. int MerUserId = int.Parse(dic["MerUserId"].ToString());
  130. Users muser = db.Users.FirstOrDefault(m => m.Id == MerUserId) ?? new Users();
  131. dic["MerMakerCode"] = muser.MakerCode;
  132. dic["MerRealName"] = muser.RealName;
  133. //商户
  134. int MerchantId = int.Parse(dic["MerchantId"].ToString());
  135. MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantInfo();
  136. dic["MerchantNo"] = "";
  137. dic["MerchantName"] = merchant.Name;
  138. //商户创客类型
  139. int MerBuddyType = int.Parse(dic["MerBuddyType"].ToString());
  140. if(MerBuddyType == 0) dic["MerBuddyType"] = "非商户型创客";
  141. if(MerBuddyType == 1) dic["MerBuddyType"] = "商户型创客";
  142. //银行卡类型
  143. int BankCardType = int.Parse(dic["BankCardType"].ToString());
  144. if(BankCardType == 0) dic["BankCardType"] = "贷记卡";
  145. if(BankCardType == 1) dic["BankCardType"] = "借记卡";
  146. }
  147. Dictionary<string, object> other = new Dictionary<string, object>();
  148. string TotalTrade0 = "0.00";//贷记卡交易总额
  149. string TotalTrade1 = "0.00";//借记卡交易总额
  150. DataTable dt = OtherMySqlConn.dtable("select sum(TradeAmount) from TradeRecord where BankCardType=0" + condition);
  151. if (dt.Rows.Count > 0)
  152. {
  153. TotalTrade0 = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString())).ToString("f2");
  154. }
  155. dt = OtherMySqlConn.dtable("select sum(TradeAmount) from TradeRecord where BankCardType=1" + condition);
  156. if (dt.Rows.Count > 0)
  157. {
  158. TotalTrade1 = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString())).ToString("f2");
  159. }
  160. other.Add("TotalTrade0", TotalTrade0);
  161. other.Add("TotalTrade1", TotalTrade1);
  162. obj.Add("other", other);
  163. return Json(obj);
  164. }
  165. #endregion
  166. #region 增加交易记录
  167. /// <summary>
  168. /// 增加或修改交易记录信息
  169. /// </summary>
  170. /// <returns></returns>
  171. public IActionResult Add(string right)
  172. {
  173. ViewBag.RightInfo = RightInfo;
  174. ViewBag.right = right;
  175. return View();
  176. }
  177. #endregion
  178. #region 增加交易记录
  179. /// <summary>
  180. /// 增加或修改交易记录信息
  181. /// </summary>
  182. /// <returns></returns>
  183. [HttpPost]
  184. public string Add(TradeRecord data)
  185. {
  186. Dictionary<string, object> Fields = new Dictionary<string, object>();
  187. Fields.Add("SeoTitle", data.SeoTitle);
  188. Fields.Add("SeoKeyword", data.SeoKeyword);
  189. Fields.Add("SeoDescription", data.SeoDescription);
  190. int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("TradeRecord", Fields, 0);
  191. AddSysLog(data.Id.ToString(), "TradeRecord", "add");
  192. db.SaveChanges();
  193. return "success";
  194. }
  195. #endregion
  196. #region 修改交易记录
  197. /// <summary>
  198. /// 增加或修改交易记录信息
  199. /// </summary>
  200. /// <returns></returns>
  201. public IActionResult Edit(string right, int Id = 0)
  202. {
  203. ViewBag.RightInfo = RightInfo;
  204. ViewBag.right = right;
  205. TradeRecord editData = db.TradeRecord.FirstOrDefault(m => m.Id == Id) ?? new TradeRecord();
  206. ViewBag.data = editData;
  207. return View();
  208. }
  209. #endregion
  210. #region 修改交易记录
  211. /// <summary>
  212. /// 增加或修改交易记录信息
  213. /// </summary>
  214. /// <returns></returns>
  215. [HttpPost]
  216. public string Edit(TradeRecord data)
  217. {
  218. Dictionary<string, object> Fields = new Dictionary<string, object>();
  219. Fields.Add("SeoTitle", data.SeoTitle);
  220. Fields.Add("SeoKeyword", data.SeoKeyword);
  221. Fields.Add("SeoDescription", data.SeoDescription);
  222. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("TradeRecord", Fields, data.Id);
  223. AddSysLog(data.Id.ToString(), "TradeRecord", "update");
  224. db.SaveChanges();
  225. return "success";
  226. }
  227. #endregion
  228. #region 删除交易记录信息
  229. /// <summary>
  230. /// 删除交易记录信息
  231. /// </summary>
  232. /// <returns></returns>
  233. public string Delete(string Id)
  234. {
  235. string[] idlist = Id.Split(new char[] { ',' });
  236. AddSysLog(Id, "TradeRecord", "del");
  237. foreach (string subid in idlist)
  238. {
  239. int id = int.Parse(subid);
  240. Dictionary<string, object> Fields = new Dictionary<string, object>();
  241. Fields.Add("Status", -1);
  242. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("TradeRecord", Fields, id);
  243. }
  244. db.SaveChanges();
  245. return "success";
  246. }
  247. #endregion
  248. #region 开启
  249. /// <summary>
  250. /// 开启
  251. /// </summary>
  252. /// <returns></returns>
  253. public string Open(string Id)
  254. {
  255. string[] idlist = Id.Split(new char[] { ',' });
  256. AddSysLog(Id, "TradeRecord", "open");
  257. foreach (string subid in idlist)
  258. {
  259. int id = int.Parse(subid);
  260. Dictionary<string, object> Fields = new Dictionary<string, object>();
  261. Fields.Add("Status", 1);
  262. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("TradeRecord", Fields, id);
  263. }
  264. db.SaveChanges();
  265. return "success";
  266. }
  267. #endregion
  268. #region 关闭
  269. /// <summary>
  270. /// 关闭
  271. /// </summary>
  272. /// <returns></returns>
  273. public string Close(string Id)
  274. {
  275. string[] idlist = Id.Split(new char[] { ',' });
  276. AddSysLog(Id, "TradeRecord", "close");
  277. foreach (string subid in idlist)
  278. {
  279. int id = int.Parse(subid);
  280. Dictionary<string, object> Fields = new Dictionary<string, object>();
  281. Fields.Add("Status", 0);
  282. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("TradeRecord", Fields, id);
  283. }
  284. db.SaveChanges();
  285. return "success";
  286. }
  287. #endregion
  288. #region 排序
  289. /// <summary>
  290. /// 排序
  291. /// </summary>
  292. /// <param name="Id"></param>
  293. public string Sort(int Id, int Sort)
  294. {
  295. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("TradeRecord", Sort, Id);
  296. AddSysLog(Id.ToString(), "TradeRecord", "sort");
  297. return "success";
  298. }
  299. #endregion
  300. #region 导入数据
  301. /// <summary>
  302. /// 导入数据
  303. /// </summary>
  304. /// <param name="ExcelData"></param>
  305. public string Import(string ExcelData)
  306. {
  307. ExcelData = HttpUtility.UrlDecode(ExcelData);
  308. JsonData list = JsonMapper.ToObject(ExcelData);
  309. for (int i = 1; i < list.Count; i++)
  310. {
  311. JsonData dr = list[i];
  312. db.TradeRecord.Add(new TradeRecord()
  313. {
  314. CreateDate = DateTime.Now,
  315. UpdateDate = DateTime.Now,
  316. });
  317. db.SaveChanges();
  318. }
  319. AddSysLog("0", "TradeRecord", "Import");
  320. return "success";
  321. }
  322. #endregion
  323. #region 导出Excel
  324. /// <summary>
  325. /// 导出Excel
  326. /// </summary>
  327. /// <returns></returns>
  328. public JsonResult ExportExcel(TradeRecord data, string MerchantNo, string MerchantName, string MakerCode, string RealName, string MerMakerCode, string MerRealName, string BankCardTypeSelect, string MerBuddyTypeSelect)
  329. {
  330. Dictionary<string, string> Fields = new Dictionary<string, string>();
  331. Fields.Add("BrandId", "1");
  332. Fields.Add("MerNo", "2"); //快钱商户编号
  333. Fields.Add("SnNo", "2"); //快钱SN号
  334. Fields.Add("TradeDate", "3"); //交易日期
  335. Fields.Add("TopUserId", "0"); //顶级创客
  336. string condition = " and Status>-1";
  337. //商户编号
  338. if (!string.IsNullOrEmpty(MakerCode))
  339. {
  340. condition += " and MerchantId in (select MerchantId from MerchantForCode where Code='" + MerchantNo + "')";
  341. }
  342. //商户名称
  343. if (!string.IsNullOrEmpty(RealName))
  344. {
  345. condition += " and MerchantId in (select MerchantId from MerchantForName where Name='" + MerchantName + "')";
  346. }
  347. //创客编号
  348. if (!string.IsNullOrEmpty(MakerCode))
  349. {
  350. condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
  351. }
  352. //创客名称
  353. if (!string.IsNullOrEmpty(RealName))
  354. {
  355. condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
  356. }
  357. //商户创客编号
  358. if (!string.IsNullOrEmpty(MerMakerCode))
  359. {
  360. condition += " and MerUserId in (select UserId from UserForMakerCode where MakerCode='" + MerMakerCode + "')";
  361. }
  362. //商户创客名称
  363. if (!string.IsNullOrEmpty(MerRealName))
  364. {
  365. condition += " and MerUserId in (select UserId from UserForRealName where RealName='" + MerRealName + "')";
  366. }
  367. //银行卡类型
  368. if(!string.IsNullOrEmpty(BankCardTypeSelect))
  369. {
  370. condition += " and BankCardType=" + BankCardTypeSelect;
  371. }
  372. //商户创客类型
  373. if(!string.IsNullOrEmpty(MerBuddyTypeSelect))
  374. {
  375. condition += " and MerBuddyType=" + MerBuddyTypeSelect;
  376. }
  377. Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("TradeRecord", Fields, "Id desc", "0", 1, 20000, condition, "UserId,TopUserId,MerchantId,MerUserId,MerNo,MerBuddyType,SnNo,MerHelpFlag,HelpMonthCount,TradeDate,TradeSerialNo,TradeAmount,BankCardType,CapFlag,QrPayFlag,DirectFlag", false);
  378. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  379. foreach (Dictionary<string, object> dic in diclist)
  380. {
  381. dic["MerHelpFlag"] = dic["MerHelpFlag"].ToString() == "1" ? "是" : "否";
  382. dic["CapFlag"] = dic["CapFlag"].ToString() == "1" ? "封顶" : "非封顶";
  383. dic["QrPayFlag"] = dic["QrPayFlag"].ToString() == "1" ? "云闪付" : "非云闪付";
  384. dic["DirectFlag"] = dic["DirectFlag"].ToString() == "1" ? "直营" : "非直营";
  385. //直属创客
  386. int UserId = int.Parse(dic["UserId"].ToString());
  387. Users puser = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  388. dic["MakerCode"] = puser.MakerCode;
  389. dic["RealName"] = puser.RealName;
  390. //顶级创客
  391. int TopUserId = int.Parse(dic["TopUserId"].ToString());
  392. Users tuser = db.Users.FirstOrDefault(m => m.Id == TopUserId) ?? new Users();
  393. dic["TopMakerCode"] = tuser.MakerCode;
  394. dic["TopRealName"] = tuser.RealName;
  395. //商户创客
  396. int MerUserId = int.Parse(dic["MerUserId"].ToString());
  397. Users muser = db.Users.FirstOrDefault(m => m.Id == MerUserId) ?? new Users();
  398. dic["MerMakerCode"] = muser.MakerCode;
  399. dic["MerRealName"] = muser.RealName;
  400. //商户
  401. int MerchantId = int.Parse(dic["MerchantId"].ToString());
  402. MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantInfo();
  403. dic["MerchantNo"] = "";
  404. dic["MerchantName"] = merchant.Name;
  405. //商户创客类型
  406. int MerBuddyType = int.Parse(dic["MerBuddyType"].ToString());
  407. if(MerBuddyType == 0) dic["MerBuddyType"] = "非商户型创客";
  408. if(MerBuddyType == 1) dic["MerBuddyType"] = "商户型创客";
  409. //银行卡类型
  410. int BankCardType = int.Parse(dic["BankCardType"].ToString());
  411. if(BankCardType == 0) dic["BankCardType"] = "贷记卡";
  412. if(BankCardType == 1) dic["BankCardType"] = "借记卡";
  413. dic.Remove("UserId");
  414. dic.Remove("TopUserId");
  415. dic.Remove("MerUserId");
  416. dic.Remove("MerchantId");
  417. }
  418. Dictionary<string, object> result = new Dictionary<string, object>();
  419. result.Add("Status", "1");
  420. result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
  421. result.Add("Obj", diclist);
  422. Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
  423. ReturnFields.Add("MakerCode", "创客编码");
  424. ReturnFields.Add("RealName", "创客姓名");
  425. ReturnFields.Add("TopMakerCode", "顶级创客编码");
  426. ReturnFields.Add("TopRealName", "顶级创客名称");
  427. ReturnFields.Add("MerchantNo", "商户编号");
  428. ReturnFields.Add("MerchantName", "商户名称");
  429. ReturnFields.Add("MerMakerCode", "商户直属创客编号");
  430. ReturnFields.Add("MerRealName", "商户直属创客姓名");
  431. ReturnFields.Add("MerNo", "快钱商户编号");
  432. ReturnFields.Add("MerBuddyType", "商户创客类型");
  433. ReturnFields.Add("SnNo", "快钱SN号");
  434. ReturnFields.Add("MerHelpFlag", "是否属于扶持周期内商户");
  435. ReturnFields.Add("HelpMonthCount", "扶持第几个月");
  436. ReturnFields.Add("TradeDate", "交易日期");
  437. ReturnFields.Add("TradeSerialNo", "交易流水号");
  438. ReturnFields.Add("TradeAmount", "交易金额(元)");
  439. ReturnFields.Add("BankCardType", "银行卡类型");
  440. ReturnFields.Add("CapFlag", "借记卡封顶交易标志");
  441. ReturnFields.Add("QrPayFlag", "云闪付标识");
  442. ReturnFields.Add("DirectFlag", "是否直营");
  443. result.Add("Fields", ReturnFields);
  444. AddSysLog("0", "TradeRecord", "ExportExcel");
  445. return Json(result);
  446. }
  447. #endregion
  448. }
  449. }