UserCashRecordOperatesController.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  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.OpModels;
  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 UserCashRecordOperatesController : BaseController
  24. {
  25. public UserCashRecordOperatesController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  26. {
  27. }
  28. #region 提现记录列表
  29. /// <summary>
  30. /// 根据条件查询提现记录列表
  31. /// </summary>
  32. /// <returns></returns>
  33. public IActionResult Index(UserCashRecord data, string right)
  34. {
  35. ViewBag.RightInfo = RightInfo;
  36. ViewBag.right = right;
  37. string Condition = "";
  38. Condition += "CashOrderNo:\"" + data.CashOrderNo + "\",";
  39. Condition += "TradeType:\"" + data.TradeType + "\",";
  40. if (!string.IsNullOrEmpty(Condition))
  41. {
  42. Condition = Condition.TrimEnd(',');
  43. Condition = ", where: {" + Condition + "}";
  44. }
  45. ViewBag.Condition = Condition;
  46. return View();
  47. }
  48. #endregion
  49. #region 根据条件查询提现记录列表
  50. /// <summary>
  51. /// 提现记录列表
  52. /// </summary>
  53. /// <returns></returns>
  54. public JsonResult IndexData(UserCashRecord data, string OpCode, string StatusSelect, string CreateDateData, int page = 1, int limit = 30)
  55. {
  56. Dictionary<string, string> Fields = new Dictionary<string, string>();
  57. Fields.Add("CashOrderNo", "1"); //提现单号
  58. Fields.Add("TradeType", "0"); //交易类型
  59. string condition = " and Status>-1 and TradeType=3";
  60. //运营中心编号
  61. if (!string.IsNullOrEmpty(OpCode))
  62. {
  63. condition += " and UserId in (select UserId from SysAdmin where OpCode='" + OpCode + "')";
  64. }
  65. //提现状态
  66. if (!string.IsNullOrEmpty(StatusSelect))
  67. {
  68. condition += " and Status=" + StatusSelect;
  69. }
  70. if (!string.IsNullOrEmpty(data.CashOrderNo))
  71. {
  72. condition += " and CashOrderNo='" + data.CashOrderNo + "'";
  73. }
  74. if (data.TradeType > 0)
  75. {
  76. condition += " and TradeType=" + data.TradeType;
  77. }
  78. if (!string.IsNullOrEmpty(CreateDateData))
  79. {
  80. string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
  81. var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
  82. var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
  83. var check = opdb.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
  84. var checks = opdb.UserCashRecord.Any(m => m.CreateDate <= end && m.TradeType < 3);
  85. if (check)
  86. {
  87. var sId = opdb.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
  88. condition += " and Id >=" + sId;
  89. }
  90. if (checks)
  91. {
  92. var eId = opdb.UserCashRecord.Where(m => m.CreateDate <= end && m.TradeType < 3).Max(m => m.Id);
  93. condition += " and Id <=" + eId;
  94. }
  95. }
  96. else
  97. {
  98. var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
  99. var check = opdb.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
  100. if (check)
  101. {
  102. var minId = opdb.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
  103. var Info = function.ReadInstance("/WritePage/OpUserCashRecord/OpUserCashRecord.txt");
  104. if (string.IsNullOrEmpty(Info.ToString()))
  105. {
  106. function.WritePage("/WritePage/OpUserCashRecord/", "OpUserCashRecord.txt", minId.ToString());
  107. condition += " and Id >=" + minId;
  108. }
  109. else
  110. {
  111. condition += " and Id >=" + Convert.ToInt32(Info);
  112. }
  113. }
  114. else
  115. {
  116. condition += " and Id =0";
  117. }
  118. }
  119. Dictionary<string, object> obj = new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).IndexData("UserCashRecord", Fields, "Id desc", "0", page, limit, condition);
  120. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  121. foreach (Dictionary<string, object> dic in diclist)
  122. {
  123. int UserId = int.Parse(dic["UserId"].ToString());
  124. SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == UserId) ?? new SysAdmin();
  125. dic["OpCode"] = sysAdmin.OpCode;
  126. dic["MakerCode"] = sysAdmin.MakerCode;
  127. dic["RealName"] = sysAdmin.MakerName;
  128. dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
  129. int Status = int.Parse(dic["Status"].ToString());
  130. if (Status == 0) dic["StatusName"] = "处理中";
  131. if (Status == 1) dic["StatusName"] = "成功";
  132. if (Status == 2) dic["StatusName"] = "失败";
  133. int QueryCount = int.Parse(dic["QueryCount"].ToString());
  134. if (QueryCount == 0) dic["LockName"] = "待提交";
  135. if (QueryCount == 1) dic["LockName"] = "已提交";
  136. }
  137. Dictionary<string, object> other = new Dictionary<string, object>();
  138. string WaitAmount = "0.00";//待处理总金额
  139. string SuccessAmount = "0.00";//提现成功总金额
  140. string FailAmount = "0.00";//提现失败总金额
  141. DataTable dt = OtherMySqlConn.dtable("SELECT SUM(if(Status=0,TradeAmount,0)),SUM(if(Status=1,TradeAmount,0)),SUM(if(Status=2,TradeAmount,0)) FROM UserCashRecord where 1=1 " + condition);
  142. if (dt.Rows.Count > 0)
  143. {
  144. WaitAmount = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString())).ToString("f2");
  145. SuccessAmount = decimal.Parse(function.CheckNum(dt.Rows[0][1].ToString())).ToString("f2");
  146. FailAmount = decimal.Parse(function.CheckNum(dt.Rows[0][2].ToString())).ToString("f2");
  147. }
  148. other.Add("WaitAmount", WaitAmount);
  149. other.Add("SuccessAmount", SuccessAmount);
  150. other.Add("FailAmount", FailAmount);
  151. obj.Add("other", other);
  152. return Json(obj);
  153. }
  154. #endregion
  155. #region 增加提现记录
  156. /// <summary>
  157. /// 增加或修改提现记录信息
  158. /// </summary>
  159. /// <returns></returns>
  160. public IActionResult Add(string right)
  161. {
  162. ViewBag.RightInfo = RightInfo;
  163. ViewBag.right = right;
  164. return View();
  165. }
  166. #endregion
  167. #region 增加提现记录
  168. /// <summary>
  169. /// 增加或修改提现记录信息
  170. /// </summary>
  171. /// <returns></returns>
  172. [HttpPost]
  173. public string Add(UserCashRecord data)
  174. {
  175. Dictionary<string, object> Fields = new Dictionary<string, object>();
  176. Fields.Add("Remark", data.Remark); //备注
  177. Fields.Add("SeoTitle", data.SeoTitle);
  178. Fields.Add("SeoKeyword", data.SeoKeyword);
  179. Fields.Add("SeoDescription", data.SeoDescription);
  180. int Id = new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Add("UserCashRecord", Fields, 0);
  181. AddSysLog(data.Id.ToString(), "UserCashRecord", "add");
  182. db.SaveChanges();
  183. return "success";
  184. }
  185. #endregion
  186. #region 修改提现记录
  187. /// <summary>
  188. /// 增加或修改提现记录信息
  189. /// </summary>
  190. /// <returns></returns>
  191. public IActionResult Edit(string right, int Id = 0)
  192. {
  193. ViewBag.RightInfo = RightInfo;
  194. ViewBag.right = right;
  195. UserCashRecord editData = opdb.UserCashRecord.FirstOrDefault(m => m.Id == Id) ?? new UserCashRecord();
  196. ViewBag.data = editData;
  197. return View();
  198. }
  199. #endregion
  200. #region 修改提现记录
  201. /// <summary>
  202. /// 增加或修改提现记录信息
  203. /// </summary>
  204. /// <returns></returns>
  205. [HttpPost]
  206. public string Edit(UserCashRecord data)
  207. {
  208. Dictionary<string, object> Fields = new Dictionary<string, object>();
  209. Fields.Add("Remark", data.Remark); //备注
  210. Fields.Add("SeoTitle", data.SeoTitle);
  211. Fields.Add("SeoKeyword", data.SeoKeyword);
  212. Fields.Add("SeoDescription", data.SeoDescription);
  213. new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Edit("UserCashRecord", Fields, data.Id);
  214. AddSysLog(data.Id.ToString(), "UserCashRecord", "update");
  215. opdb.SaveChanges();
  216. return "success";
  217. }
  218. #endregion
  219. #region 删除提现记录信息
  220. /// <summary>
  221. /// 删除提现记录信息
  222. /// </summary>
  223. /// <returns></returns>
  224. public string Delete(string Id)
  225. {
  226. string[] idlist = Id.Split(new char[] { ',' });
  227. AddSysLog(Id, "UserCashRecord", "del");
  228. foreach (string subid in idlist)
  229. {
  230. int id = int.Parse(subid);
  231. Dictionary<string, object> Fields = new Dictionary<string, object>();
  232. Fields.Add("Status", -1);
  233. new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Edit("UserCashRecord", Fields, id);
  234. }
  235. opdb.SaveChanges();
  236. return "success";
  237. }
  238. #endregion
  239. #region 开启
  240. /// <summary>
  241. /// 开启
  242. /// </summary>
  243. /// <returns></returns>
  244. public string Open(string Id)
  245. {
  246. string[] idlist = Id.Split(new char[] { ',' });
  247. AddSysLog(Id, "UserCashRecord", "open");
  248. foreach (string subid in idlist)
  249. {
  250. int id = int.Parse(subid);
  251. Dictionary<string, object> Fields = new Dictionary<string, object>();
  252. Fields.Add("Status", 1);
  253. new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Edit("UserCashRecord", Fields, id);
  254. }
  255. opdb.SaveChanges();
  256. return "success";
  257. }
  258. #endregion
  259. #region 关闭
  260. /// <summary>
  261. /// 关闭
  262. /// </summary>
  263. /// <returns></returns>
  264. public string Close(string Id)
  265. {
  266. string[] idlist = Id.Split(new char[] { ',' });
  267. AddSysLog(Id, "UserCashRecord", "close");
  268. foreach (string subid in idlist)
  269. {
  270. int id = int.Parse(subid);
  271. Dictionary<string, object> Fields = new Dictionary<string, object>();
  272. Fields.Add("Status", 0);
  273. new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Edit("UserCashRecord", Fields, id);
  274. }
  275. opdb.SaveChanges();
  276. return "success";
  277. }
  278. #endregion
  279. #region 批量设置成功
  280. /// <summary>
  281. /// 批量设置成功
  282. /// </summary>
  283. /// <returns></returns>
  284. public string BatchSetting(string Id)
  285. {
  286. string[] idlist = Id.Split(new char[] { ',' });
  287. AddSysLog(Id, "OpUserCashRecord", "BatchSetting");
  288. foreach (string subid in idlist)
  289. {
  290. int id = int.Parse(subid);
  291. Dictionary<string, object> Fields = new Dictionary<string, object>();
  292. Fields.Add("Status", 1);//设置提现记录为成功
  293. new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Edit("UserCashRecord", Fields, id);
  294. var userCashRecord = opdb.UserCashRecord.FirstOrDefault(m => m.Id == id) ?? new UserCashRecord();
  295. if (userCashRecord.Id > 0)
  296. {
  297. UserAccount account = opdb.UserAccount.FirstOrDefault(m => m.UserId == Convert.ToInt32(userCashRecord.UserId));
  298. if (account != null)
  299. {
  300. account.QueryCount = 1;
  301. decimal TradeAmount = userCashRecord.TradeAmount;
  302. decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
  303. decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
  304. decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
  305. decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
  306. decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
  307. decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
  308. opdb.UserAccountRecord.Add(new UserAccountRecord()
  309. {
  310. CreateDate = DateTime.Now,
  311. UserId = userCashRecord.UserId, //运营中心
  312. ChangeType = 3, //变动类型
  313. ProductType = 99, //产品类型
  314. ChangeAmount = userCashRecord.ActualTradeAmount, //变更金额
  315. BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
  316. AfterTotalAmount = AfterTotalAmount, //变更后总金额
  317. BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
  318. AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
  319. BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
  320. AfterBalanceAmount = AfterBalanceAmount, //变更后余额
  321. });
  322. opdb.UserAccountRecord.Add(new UserAccountRecord()
  323. {
  324. CreateDate = DateTime.Now,
  325. UserId = userCashRecord.UserId, //运营中心
  326. ChangeType = 4, //变动类型
  327. ProductType = 99, //产品类型
  328. ChangeAmount = userCashRecord.TradeFee, //变更金额
  329. BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
  330. AfterTotalAmount = AfterTotalAmount, //变更后总金额
  331. BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
  332. AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
  333. BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
  334. AfterBalanceAmount = AfterBalanceAmount, //变更后余额
  335. });
  336. opdb.UserAccountRecord.Add(new UserAccountRecord()
  337. {
  338. CreateDate = DateTime.Now,
  339. UserId = userCashRecord.UserId, //运营中心
  340. ChangeType = 5, //变动类型
  341. ProductType = 99, //产品类型
  342. ChangeAmount = userCashRecord.ManageFee, //变更金额
  343. BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
  344. AfterTotalAmount = AfterTotalAmount, //变更后总金额
  345. BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
  346. AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
  347. BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
  348. AfterBalanceAmount = AfterBalanceAmount, //变更后余额
  349. });
  350. opdb.SaveChanges();
  351. RedisDbconn.Instance.Set("OpUserAccount:" + userCashRecord.UserId, account);
  352. }
  353. }
  354. }
  355. opdb.SaveChanges();
  356. return "success";
  357. }
  358. #endregion
  359. #region 排序
  360. /// <summary>
  361. /// 排序
  362. /// </summary>
  363. /// <param name="Id"></param>
  364. public string Sort(int Id, int Sort)
  365. {
  366. new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Sort("UserCashRecord", Sort, Id);
  367. AddSysLog(Id.ToString(), "UserCashRecord", "sort");
  368. return "success";
  369. }
  370. #endregion
  371. #region 导入数据
  372. public IActionResult Import(string right)
  373. {
  374. ViewBag.RightInfo = RightInfo;
  375. ViewBag.right = right;
  376. return View();
  377. }
  378. /// <summary>
  379. /// 导入数据
  380. /// </summary>
  381. /// <param name="ExcelData"></param>
  382. [HttpPost]
  383. public string ImportPost(string ExcelPath)
  384. {
  385. string key = function.MD5_16(Guid.NewGuid().ToString());
  386. RedisDbconn.Instance.AddList("ExcelImportV3", ExcelPath + "#cut#OpUserCashRecord#cut#" + key + "#cut#" + SysUserName);
  387. return "success|" + key;
  388. }
  389. public string CheckImport(string key)
  390. {
  391. string result = RedisDbconn.Instance.Get<string>("OpCheckImport:" + key);
  392. if (!string.IsNullOrEmpty(result))
  393. {
  394. string[] datalist = result.Split('|');
  395. if (datalist[0] == "success")
  396. {
  397. return result;
  398. }
  399. return datalist[0];
  400. }
  401. return "0";
  402. }
  403. #endregion
  404. #region 导出Excel
  405. /// <summary>
  406. /// 导出Excel
  407. /// </summary>
  408. /// <returns></returns>
  409. public JsonResult ExportExcel(UserCashRecord data, string OpCode, string StatusSelect, string PayStatus)
  410. {
  411. Dictionary<string, string> Fields = new Dictionary<string, string>();
  412. Fields.Add("CashOrderNo", "1"); //提现单号
  413. Fields.Add("CreateDate", "3"); //创建时间
  414. Fields.Add("TradeType", "0"); //交易类型
  415. string condition = " and Status>-1 and TradeType=3";
  416. //运营中心编号
  417. if (!string.IsNullOrEmpty(OpCode))
  418. {
  419. var sysUser = opdb.SysAdmin.FirstOrDefault(m => m.OpCode == OpCode) ?? new OpModels.SysAdmin();
  420. if (sysUser.Id > 0)
  421. {
  422. condition += " and OpId=" + sysUser.UserId;
  423. }
  424. }
  425. //提现状态
  426. if (!string.IsNullOrEmpty(StatusSelect))
  427. {
  428. condition += " and Status=" + StatusSelect;
  429. }
  430. //提交到代付状态
  431. if (!string.IsNullOrEmpty(PayStatus))
  432. {
  433. int QueryCount = int.Parse(function.CheckInt(PayStatus));
  434. if (QueryCount == 2)
  435. {
  436. QueryCount = 0;
  437. }
  438. condition += " and QueryCount=" + QueryCount;
  439. }
  440. Dictionary<string, object> obj = new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).IndexData("UserCashRecord", Fields, "Id desc", "0", 1, 20000, condition, "CashOrderNo,UserId,IdCardNo,ActualTradeAmount,Remark,Status,QueryCount,CreateDate", false);
  441. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  442. foreach (Dictionary<string, object> dic in diclist)
  443. {
  444. int UserId = int.Parse(dic["UserId"].ToString());
  445. SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == UserId) ?? new SysAdmin();
  446. var user = db.Users.FirstOrDefault(m => m.Id == sysAdmin.UserId) ?? new Models.Users();
  447. dic["OpCode"] = sysAdmin.OpCode;
  448. dic["MakerCode"] = sysAdmin.MakerCode;
  449. dic["MakerName"] = sysAdmin.MakerName;
  450. dic["RealName"] = sysAdmin.RealName;
  451. dic["Mobile"] = sysAdmin.MakerMobile;
  452. dic["SettleBankName"] = user.SettleBankName;
  453. dic["SettleBankCardNo"] = user.SettleBankCardNo;
  454. dic.Remove("UserId");
  455. int Status = int.Parse(dic["Status"].ToString());
  456. if (Status == 0) dic["StatusName"] = "处理中";
  457. if (Status == 1) dic["StatusName"] = "成功";
  458. if (Status == 2) dic["StatusName"] = "失败";
  459. dic.Remove("Status");
  460. int QueryCount = int.Parse(dic["QueryCount"].ToString());
  461. if (QueryCount == 0) dic["LockName"] = "待提交";
  462. if (QueryCount == 1) dic["LockName"] = "已提交";
  463. dic.Remove("QueryCount");
  464. }
  465. Dictionary<string, object> result = new Dictionary<string, object>();
  466. result.Add("Status", "1");
  467. result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
  468. result.Add("Obj", diclist);
  469. Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
  470. ReturnFields.Add("CashOrderNo", "提现单号");
  471. ReturnFields.Add("OpCode", "运营中心编号");
  472. ReturnFields.Add("MakerCode", "创客编号");
  473. ReturnFields.Add("MakerName", "创客姓名");
  474. ReturnFields.Add("Mobile", "手机号");
  475. ReturnFields.Add("IdCardNo", "身份证号");
  476. ReturnFields.Add("SettleBankName", "开户行名称");
  477. ReturnFields.Add("SettleBankCardNo", "开户行卡号");
  478. ReturnFields.Add("ActualTradeAmount", "发佣金额(单位:元)");
  479. ReturnFields.Add("LockName", "代付标记");
  480. ReturnFields.Add("StatusName", "状态");
  481. ReturnFields.Add("Remark", "备注");
  482. ReturnFields.Add("CreateDate", "创建时间");
  483. result.Add("Fields", ReturnFields);
  484. AddSysLog("0", "OpUserCashRecord", "ExportExcel");
  485. return Json(result);
  486. }
  487. #endregion
  488. #region 拒绝
  489. /// <summary>
  490. /// 拒绝
  491. /// </summary>
  492. /// <returns></returns>
  493. public IActionResult Reduce(string right, int Id = 0)
  494. {
  495. ViewBag.RightInfo = RightInfo;
  496. ViewBag.right = right;
  497. UserCashRecord editData = opdb.UserCashRecord.FirstOrDefault(m => m.Id == Id) ?? new UserCashRecord();
  498. ViewBag.data = editData;
  499. return View();
  500. }
  501. #endregion
  502. #region 拒绝
  503. /// <summary>
  504. /// 拒绝
  505. /// </summary>
  506. /// <returns></returns>
  507. public string ReduceDo(int Id, string Remark)
  508. {
  509. AddSysLog(Id, "UserCashRecord", "Reduce");
  510. UserCashRecord edit = opdb.UserCashRecord.FirstOrDefault(m => m.Id == Id);
  511. if (edit != null)
  512. {
  513. edit.Status = 2;
  514. edit.Remark = Remark;
  515. edit.UpdateMan = SysUserName;
  516. UserAccount account = opdb.UserAccount.FirstOrDefault(m => m.Id == edit.UserId);
  517. if (account != null)
  518. {
  519. decimal TradeAmount = edit.TradeAmount;
  520. decimal BeforeTotalAmount = account.ValidForGetAmount; //变更前总金额
  521. account.ValidForGetAmount += TradeAmount;//返回可提现余额
  522. decimal AfterTotalAmount = account.ValidForGetAmount; //变更后总金额
  523. opdb.AmountRecord.Add(new AmountRecord()
  524. {
  525. CreateDate = DateTime.Now,
  526. SeoDescription = "提现驳回",
  527. UserId = edit.UserId, //创客
  528. UseAmount = TradeAmount, //变更金额
  529. BeforeAmount = BeforeTotalAmount, //变更前总金额
  530. AfterAmount = AfterTotalAmount, //变更后总金额
  531. });
  532. opdb.SaveChanges();
  533. }
  534. opdb.SaveChanges();
  535. }
  536. return "success";
  537. }
  538. #endregion
  539. #region 解除
  540. /// <summary>
  541. /// 解除
  542. /// </summary>
  543. /// <returns></returns>
  544. public string Cancel(string Id)
  545. {
  546. string[] idlist = Id.Split(new char[] { ',' });
  547. AddSysLog(Id, "WithdrawRecord", "Cancel");
  548. foreach (string subid in idlist)
  549. {
  550. int id = int.Parse(subid);
  551. UserCashRecord edit = opdb.UserCashRecord.FirstOrDefault(m => m.Id == id);
  552. if (edit != null)
  553. {
  554. edit.QueryCount = 0;
  555. opdb.SaveChanges();
  556. }
  557. }
  558. return "success";
  559. }
  560. #endregion
  561. }
  562. }