UserAccountRecordController.cs 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  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 UserAccountRecordController : BaseController
  24. {
  25. public UserAccountRecordController(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(UserAccountRecord data, string right, int UserId = 0)
  35. {
  36. ViewBag.RightInfo = RightInfo;
  37. ViewBag.right = right;
  38. ViewBag.UserId = UserId.ToString();
  39. List<Users> TopUsers = db.Users.Where(m => m.ParentUserId == 0).ToList();
  40. ViewBag.TopUsers = TopUsers;
  41. List<KqProducts> Brands = db.KqProducts.OrderBy(m => m.Id).ToList();
  42. ViewBag.Brands = Brands;
  43. return View();
  44. }
  45. #endregion
  46. #region 根据条件查询创客账户变动记录列表
  47. /// <summary>
  48. /// 创客账户变动记录列表
  49. /// </summary>
  50. /// <returns></returns>
  51. public JsonResult IndexData(UserAccountRecord data, string ChangeType, int ProductType, string TransRecordNo, string MakerCode, string RealName, int TopUserId, string CreateDateData, int UserId = 0, int page = 1, int limit = 30)
  52. {
  53. Dictionary<string, string> Fields = new Dictionary<string, string>();
  54. // Fields.Add("ChangeType", "1"); //交易类型
  55. // Fields.Add("ProductType", "1"); //产品类型
  56. // Fields.Add("TransRecordNo", "3"); //交易流水编号
  57. string condition = " and Status>-1";
  58. //创客编号
  59. if (!string.IsNullOrEmpty(MakerCode))
  60. {
  61. condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
  62. }
  63. //创客名称
  64. if (!string.IsNullOrEmpty(RealName))
  65. {
  66. condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
  67. }
  68. //顶级创客
  69. if (TopUserId > 0)
  70. {
  71. condition += " and UserId in (select Id from Users where ParentNav like '," + TopUserId + ",%')";
  72. }
  73. if (UserId > 0)
  74. {
  75. condition += " and UserId=" + UserId;
  76. }
  77. if (!string.IsNullOrEmpty(CreateDateData))
  78. {
  79. string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
  80. var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
  81. var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
  82. var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
  83. var checks = db.UserAccountRecord.Any(m => m.CreateDate <= end);
  84. if (check)
  85. {
  86. var sId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
  87. condition += " and Id >=" + sId;
  88. }
  89. if (checks)
  90. {
  91. var eId = db.UserAccountRecord.Where(m => m.CreateDate <= end).Max(m => m.Id);
  92. condition += " and Id <=" + eId;
  93. }
  94. }
  95. else
  96. {
  97. var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
  98. var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
  99. if (check)
  100. {
  101. var minId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
  102. var Info = function.ReadInstance("/WritePage/UsersAccountRecord/UsersAccountRecord.txt");
  103. if (string.IsNullOrEmpty(Info.ToString()))
  104. {
  105. function.WritePage("/WritePage/UsersAccountRecord/", "UsersAccountRecord.txt", minId.ToString());
  106. condition += " and Id >=" + minId;
  107. }
  108. else if (minId != int.Parse(Info))
  109. {
  110. function.WritePage("/WritePage/UsersAccountRecord/", "UsersAccountRecord.txt", minId.ToString());
  111. condition += " and Id >=" + minId;
  112. }
  113. else
  114. {
  115. condition += " and Id >=" + Convert.ToInt32(Info);
  116. }
  117. }
  118. else
  119. {
  120. condition += " and Id =0";
  121. }
  122. }
  123. if (!string.IsNullOrEmpty(ChangeType))
  124. {
  125. if (int.Parse(ChangeType) > 0)
  126. {
  127. // if (ChangeType == 0)
  128. // {
  129. // condition += " and ChangeType in(0,12)";
  130. // }
  131. if (int.Parse(ChangeType) == 1)
  132. {
  133. condition += " and (ChangeType=" + int.Parse(ChangeType) + " or (ChangeType in(112,1) and ProductType=101))";
  134. }
  135. else if (int.Parse(ChangeType) == 30)
  136. {
  137. condition += " and ChangeType=31 and Remark='开机抢红包活动'";
  138. }
  139. else if (int.Parse(ChangeType) == 31)
  140. {
  141. condition += " and (ChangeType=" + int.Parse(ChangeType) + " and (Remark!='开机抢红包活动' or Remark IS NULL))";
  142. }
  143. else if (int.Parse(ChangeType) == 112)
  144. {
  145. condition += " and ChangeType=112 and ProductType=0";
  146. }
  147. else
  148. {
  149. condition += " and ChangeType=" + int.Parse(ChangeType);
  150. }
  151. }
  152. if (int.Parse(ChangeType) == 0)
  153. {
  154. condition += " and ChangeType in(0,12)";
  155. }
  156. }
  157. if (ProductType > 0)
  158. {
  159. condition += " and ProductType=" + ProductType;
  160. }
  161. if (!string.IsNullOrEmpty(TransRecordNo))
  162. {
  163. condition += " and TransRecordNo='" + TransRecordNo + "'";
  164. }
  165. Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("UserAccountRecord", Fields, "Id desc", "0", page, limit, condition);
  166. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  167. foreach (Dictionary<string, object> dic in diclist)
  168. {
  169. int UId = int.Parse(dic["UserId"].ToString());
  170. Users user = db.Users.FirstOrDefault(m => m.Id == UId) ?? new Users();
  171. dic["MakerCode"] = user.MakerCode;
  172. dic["RealName"] = user.RealName;
  173. if (!string.IsNullOrEmpty(user.ParentNav))
  174. {
  175. int TopId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
  176. Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users();
  177. dic["TopMakerCode"] = tuser.MakerCode;
  178. dic["TopRealName"] = tuser.RealName;
  179. }
  180. var ProductTypeName = "";
  181. int ProductTypes = int.Parse(dic["ProductType"].ToString());
  182. if (ProductTypes > 0) ProductTypeName = RelationClass.GetKqProductBrandInfo(ProductTypes);
  183. dic["ProductTypeName"] = ProductTypeName;
  184. int ChangeTypes = int.Parse(dic["ChangeType"].ToString());
  185. dic["ChangeTypeName"] = RelationClassForConst.GetChangeTypeInfo(ChangeTypes);
  186. //获得盟主5元奖励的机具Sn
  187. int SnId = int.Parse(dic["QueryCount"].ToString());
  188. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == SnId) ?? new PosMachinesTwo();
  189. dic["PosSn"] = pos.PosSn;
  190. }
  191. Dictionary<string, object> other = new Dictionary<string, object>();
  192. // string ChangeTypeAmount0 = "0.00", ChangeTypeAmount1 = "0.00", ChangeTypeAmount2 = "0.00", ChangeTypeAmount3 = "0.00", ChangeTypeAmount4 = "0.00", ChangeTypeAmount5 = "0.00", ChangeTypeAmount6 = "0.00", ChangeTypeAmount61 = "0.00", ChangeTypeAmount62 = "0.00", ChangeTypeAmount63 = "0.00", ChangeTypeAmount64 = "0.00", ChangeTypeAmount50 = "0.00", ChangeTypeAmount111 = "0.00", ChangeTypeAmount112 = "0.00", ChangeTypeAmount60 = "0.00", ChangeTypeAmount31 = "0.00", ChangeTypeAmount31s = "0.00", ChangeTypeAmount124 = "0.00", ChangeTypeAmount125 = "0.00";
  193. // DataTable dt = OtherMySqlConn.dtable("select sum(if(ChangeType=0, ChangeAmount, 0)),sum(if(ChangeType=1 and ProductType!=101, ChangeAmount, 0)) + sum(if(ChangeType in(112,1) and ProductType=101, ChangeAmount, 0)),sum(if(ChangeType=2, ChangeAmount, 0)),sum(if(ChangeType=6, ChangeAmount, 0)),sum(if(ChangeType=61, ChangeAmount, 0)),sum(if(ChangeType=62, ChangeAmount, 0)),sum(if(ChangeType=63, ChangeAmount, 0)),sum(if(ChangeType=64, ChangeAmount, 0)),sum(if(ChangeType=50, ChangeAmount, 0)),sum(if(ChangeType=111, ChangeAmount, 0)),sum(if(ChangeType=112 and ProductType!=101, ChangeAmount, 0)),sum(if(ChangeType=60, ChangeAmount, 0)),sum(if(ChangeType=31 and Remark='开机抢红包活动', ChangeAmount, 0)),sum(if(ChangeType=3, ChangeAmount, 0)),sum(if(ChangeType=4, ChangeAmount, 0)),sum(if(ChangeType=5, ChangeAmount, 0)),sum(if(ChangeType=124, ChangeAmount, 0)),sum(if(ChangeType=125, ChangeAmount, 0)),sum(if(ChangeType=31 and (Remark!='开机抢红包活动' or Remark IS NULL), ChangeAmount, 0)) from UserAccountRecord where 1=1" + condition);
  194. // if (dt.Rows.Count > 0)
  195. // {
  196. // ChangeTypeAmount0 = dt.Rows[0][0].ToString();
  197. // ChangeTypeAmount1 = dt.Rows[0][1].ToString();
  198. // ChangeTypeAmount2 = dt.Rows[0][2].ToString();
  199. // ChangeTypeAmount3 = dt.Rows[0][13].ToString();
  200. // ChangeTypeAmount4 = dt.Rows[0][14].ToString();
  201. // ChangeTypeAmount5 = dt.Rows[0][15].ToString();
  202. // ChangeTypeAmount6 = dt.Rows[0][3].ToString();
  203. // ChangeTypeAmount61 = dt.Rows[0][4].ToString();
  204. // ChangeTypeAmount62 = dt.Rows[0][5].ToString();
  205. // ChangeTypeAmount63 = dt.Rows[0][6].ToString();
  206. // ChangeTypeAmount64 = dt.Rows[0][7].ToString();
  207. // ChangeTypeAmount50 = dt.Rows[0][8].ToString();
  208. // ChangeTypeAmount111 = dt.Rows[0][9].ToString();
  209. // ChangeTypeAmount112 = dt.Rows[0][10].ToString();
  210. // ChangeTypeAmount60 = dt.Rows[0][11].ToString();
  211. // ChangeTypeAmount31 = dt.Rows[0][12].ToString();
  212. // ChangeTypeAmount124 = dt.Rows[0][16].ToString();
  213. // ChangeTypeAmount125 = dt.Rows[0][17].ToString();
  214. // ChangeTypeAmount31s = dt.Rows[0][18].ToString();
  215. // }
  216. // other.Add("ChangeTypeAmount0", ChangeTypeAmount0); //激活奖励
  217. // other.Add("ChangeTypeAmount1", ChangeTypeAmount1); //交易分润
  218. // other.Add("ChangeTypeAmount2", ChangeTypeAmount2); //提现申请
  219. // other.Add("ChangeTypeAmount3", ChangeTypeAmount3); //提现代付
  220. // other.Add("ChangeTypeAmount4", ChangeTypeAmount4); //提现手续费
  221. // other.Add("ChangeTypeAmount5", ChangeTypeAmount5); //提现税点扣除
  222. // other.Add("ChangeTypeAmount6", ChangeTypeAmount6); //提现失败,解冻
  223. // other.Add("ChangeTypeAmount61", ChangeTypeAmount61); //人工冻结
  224. // other.Add("ChangeTypeAmount62", ChangeTypeAmount62); //人工解冻
  225. // other.Add("ChangeTypeAmount63", ChangeTypeAmount63); //人工扣减
  226. // other.Add("ChangeTypeAmount64", ChangeTypeAmount64); //人工增加
  227. // other.Add("ChangeTypeAmount50", ChangeTypeAmount50); //开机奖励
  228. // other.Add("ChangeTypeAmount111", ChangeTypeAmount111); //分润补贴
  229. // other.Add("ChangeTypeAmount112", ChangeTypeAmount112); //推荐奖励
  230. // other.Add("ChangeTypeAmount60", ChangeTypeAmount60); //流量卡分佣
  231. // other.Add("ChangeTypeAmount31", ChangeTypeAmount31); //红包奖励
  232. // other.Add("ChangeTypeAmount31s", ChangeTypeAmount31s); //活动奖励
  233. // other.Add("ChangeTypeAmount124", ChangeTypeAmount124); //机具过期
  234. // other.Add("ChangeTypeAmount125", ChangeTypeAmount125); //软件服务费
  235. string ChangeTypeAmount0 = "0.00", ChangeTypeAmount1 = "0.00", ChangeTypeAmount2 = "0.00", ChangeTypeAmount3 = "0.00", ChangeTypeAmount4 = "0.00", ChangeTypeAmount5 = "0.00", ChangeTypeAmount6 = "0.00", ChangeTypeAmount12 = "0.00", ChangeTypeAmount20 = "0.00", ChangeTypeAmount31 = "0.00", ChangeTypeAmount50 = "0.00", ChangeTypeAmount60 = "0.00", ChangeTypeAmount61 = "0.00", ChangeTypeAmount62 = "0.00", ChangeTypeAmount63 = "0.00", ChangeTypeAmount64 = "0.00", ChangeTypeAmount111 = "0.00", ChangeTypeAmount112 = "0.00", ChangeTypeAmount114 = "0.00", ChangeTypeAmount115 = "0.00", ChangeTypeAmount116 = "0.00", ChangeTypeAmount119 = "0.00", ChangeTypeAmount121 = "0.00", ChangeTypeAmount122 = "0.00", ChangeTypeAmount123 = "0.00", ChangeTypeAmount118And120And128 = "0.00", ChangeTypeAmount124 = "0.00", ChangeTypeAmount125 = "0.00", ChangeTypeAmount126 = "0.00", ChangeTypeAmount127 = "0.00", ChangeTypeAmount202 = "0.00", ChangeTypeAmount30 = "0.00";
  236. DataTable dt = OtherMySqlConn.dtable("select sum(if(ChangeType=0, ChangeAmount, 0)) + sum(if(ChangeType=12, ChangeAmount, 0)) + sum(if(ChangeType=133, ChangeAmount, 0)),sum(if(ChangeType=1 and ProductType!=101, ChangeAmount, 0)) + sum(if(ChangeType in(112,1) and ProductType=101, ChangeAmount, 0)),sum(if(ChangeType=2, ChangeAmount, 0)),sum(if(ChangeType=3, ChangeAmount, 0)),sum(if(ChangeType=4, ChangeAmount, 0)),sum(if(ChangeType=5, ChangeAmount, 0)),sum(if(ChangeType=6, ChangeAmount, 0)),sum(if(ChangeType=12, ChangeAmount, 0)),sum(if(ChangeType=20, ChangeAmount, 0)),sum(if(ChangeType=31 and (Remark!='开机抢红包活动' or Remark IS NULL), ChangeAmount, 0)),sum(if(ChangeType=50, ChangeAmount, 0)),sum(if(ChangeType=60, ChangeAmount, 0)),sum(if(ChangeType=61, ChangeAmount, 0)),sum(if(ChangeType=62, ChangeAmount, 0)),sum(if(ChangeType=63, ChangeAmount, 0)),sum(if(ChangeType=64, ChangeAmount, 0)),sum(if(ChangeType=111, ChangeAmount, 0)),sum(if(ChangeType=112 and ProductType=0, ChangeAmount, 0)),sum(if(ChangeType=114, ChangeAmount, 0)),sum(if(ChangeType=115, ChangeAmount, 0)),sum(if(ChangeType=116, ChangeAmount, 0)),sum(if(ChangeType=119, ChangeAmount, 0)),sum(if(ChangeType=121, ChangeAmount, 0)),sum(if(ChangeType=122, ChangeAmount, 0)),sum(if(ChangeType=123, ChangeAmount, 0)),sum(if(ChangeType in(118,120,128), ChangeAmount, 0)),sum(if(ChangeType=124, ChangeAmount, 0)),sum(if(ChangeType=125, ChangeAmount, 0)),sum(if(ChangeType=126, ChangeAmount, 0)),sum(if(ChangeType=127, ChangeAmount, 0)),sum(if(ChangeType=202, ChangeAmount, 0)),sum(if(ChangeType=31 and Remark='开机抢红包活动', ChangeAmount, 0)) from UserAccountRecord where 1=1" + condition);
  237. if (dt.Rows.Count > 0)
  238. {
  239. ChangeTypeAmount0 = dt.Rows[0][0].ToString();
  240. ChangeTypeAmount1 = dt.Rows[0][1].ToString();
  241. ChangeTypeAmount2 = dt.Rows[0][2].ToString();
  242. ChangeTypeAmount3 = dt.Rows[0][3].ToString();
  243. ChangeTypeAmount4 = dt.Rows[0][4].ToString();
  244. ChangeTypeAmount5 = dt.Rows[0][5].ToString();
  245. ChangeTypeAmount6 = dt.Rows[0][6].ToString();
  246. ChangeTypeAmount12 = dt.Rows[0][7].ToString();
  247. ChangeTypeAmount20 = dt.Rows[0][8].ToString();
  248. ChangeTypeAmount31 = dt.Rows[0][9].ToString();
  249. ChangeTypeAmount50 = dt.Rows[0][10].ToString();
  250. ChangeTypeAmount60 = dt.Rows[0][11].ToString();
  251. ChangeTypeAmount61 = dt.Rows[0][12].ToString();
  252. ChangeTypeAmount62 = dt.Rows[0][13].ToString();
  253. ChangeTypeAmount63 = dt.Rows[0][14].ToString();
  254. ChangeTypeAmount64 = dt.Rows[0][15].ToString();
  255. ChangeTypeAmount111 = dt.Rows[0][16].ToString();
  256. ChangeTypeAmount112 = dt.Rows[0][17].ToString();
  257. ChangeTypeAmount114 = dt.Rows[0][18].ToString();
  258. ChangeTypeAmount115 = dt.Rows[0][19].ToString();
  259. ChangeTypeAmount116 = dt.Rows[0][20].ToString();
  260. ChangeTypeAmount119 = dt.Rows[0][21].ToString();
  261. ChangeTypeAmount121 = dt.Rows[0][22].ToString();
  262. ChangeTypeAmount122 = dt.Rows[0][23].ToString();
  263. ChangeTypeAmount123 = dt.Rows[0][24].ToString();
  264. ChangeTypeAmount118And120And128 = dt.Rows[0][25].ToString();
  265. ChangeTypeAmount124 = dt.Rows[0][26].ToString();
  266. ChangeTypeAmount125 = dt.Rows[0][27].ToString();
  267. ChangeTypeAmount126 = dt.Rows[0][28].ToString();
  268. ChangeTypeAmount127 = dt.Rows[0][29].ToString();
  269. ChangeTypeAmount202 = dt.Rows[0][30].ToString();
  270. ChangeTypeAmount30 = dt.Rows[0][31].ToString();
  271. }
  272. other.Add("ChangeTypeAmount0", ChangeTypeAmount0); //激活奖励
  273. other.Add("ChangeTypeAmount1", ChangeTypeAmount1); //交易分润
  274. other.Add("ChangeTypeAmount2", ChangeTypeAmount2); //提现申请
  275. other.Add("ChangeTypeAmount3", ChangeTypeAmount3); //提现代付
  276. other.Add("ChangeTypeAmount4", ChangeTypeAmount4); //提现手续费
  277. other.Add("ChangeTypeAmount5", ChangeTypeAmount5); //提现税点扣除
  278. other.Add("ChangeTypeAmount6", ChangeTypeAmount6); //提现失败,解冻
  279. other.Add("ChangeTypeAmount12", ChangeTypeAmount12); //交易奖励
  280. other.Add("ChangeTypeAmount20", ChangeTypeAmount20); //余额支付
  281. other.Add("ChangeTypeAmount31", ChangeTypeAmount31); //活动奖励
  282. other.Add("ChangeTypeAmount50", ChangeTypeAmount50); //开机奖励
  283. other.Add("ChangeTypeAmount60", ChangeTypeAmount60); //流量卡分佣
  284. other.Add("ChangeTypeAmount61", ChangeTypeAmount61); //人工冻结
  285. other.Add("ChangeTypeAmount62", ChangeTypeAmount62); //人工解冻
  286. other.Add("ChangeTypeAmount63", ChangeTypeAmount63); //系统扣减(人工扣减)
  287. other.Add("ChangeTypeAmount64", ChangeTypeAmount64); //系统奖励(人工增加)
  288. other.Add("ChangeTypeAmount111", ChangeTypeAmount111); //分润补贴
  289. other.Add("ChangeTypeAmount112", ChangeTypeAmount112); //推荐奖励
  290. other.Add("ChangeTypeAmount114", ChangeTypeAmount114); //私董会分红
  291. other.Add("ChangeTypeAmount115", ChangeTypeAmount115); //分仓奖励
  292. other.Add("ChangeTypeAmount116", ChangeTypeAmount116); //大盟主奖励
  293. other.Add("ChangeTypeAmount119", ChangeTypeAmount119); //分仓临时额度退还
  294. other.Add("ChangeTypeAmount121", ChangeTypeAmount121); //运营中心奖励
  295. other.Add("ChangeTypeAmount122", ChangeTypeAmount122); //推荐大盟主奖励
  296. other.Add("ChangeTypeAmount123", ChangeTypeAmount123); //推荐小盟主奖励
  297. other.Add("ChangeTypeAmount118And120", ChangeTypeAmount118And120And128); //购机奖励(118盟主奖励(购机奖励) 120运营中心(购机奖励) 128合伙人(购机奖励))
  298. other.Add("ChangeTypeAmount124", ChangeTypeAmount124); //扣机具货款
  299. other.Add("ChangeTypeAmount125", ChangeTypeAmount125); //软件服务费
  300. other.Add("ChangeTypeAmount126", ChangeTypeAmount126); //机具货款退还
  301. other.Add("ChangeTypeAmount127", ChangeTypeAmount127); //运营中心分仓奖励
  302. other.Add("ChangeTypeAmount202", ChangeTypeAmount202); //创客预扣款
  303. other.Add("ChangeTypeAmount30", ChangeTypeAmount30); //红包奖励
  304. obj.Add("other", other);
  305. return Json(obj);
  306. }
  307. #endregion
  308. #region 增加创客账户变动记录
  309. /// <summary>
  310. /// 增加或修改创客账户变动记录信息
  311. /// </summary>
  312. /// <returns></returns>
  313. public IActionResult Add(string right)
  314. {
  315. ViewBag.RightInfo = RightInfo;
  316. ViewBag.right = right;
  317. return View();
  318. }
  319. #endregion
  320. #region 增加创客账户变动记录
  321. /// <summary>
  322. /// 增加或修改创客账户变动记录信息
  323. /// </summary>
  324. /// <returns></returns>
  325. [HttpPost]
  326. public string Add(UserAccountRecord data)
  327. {
  328. Dictionary<string, object> Fields = new Dictionary<string, object>();
  329. Fields.Add("SeoTitle", data.SeoTitle);
  330. Fields.Add("SeoKeyword", data.SeoKeyword);
  331. Fields.Add("SeoDescription", data.SeoDescription);
  332. int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("UserAccountRecord", Fields, 0);
  333. AddSysLog(data.Id.ToString(), "UserAccountRecord", "add");
  334. db.SaveChanges();
  335. return "success";
  336. }
  337. #endregion
  338. #region 修改创客账户变动记录
  339. /// <summary>
  340. /// 增加或修改创客账户变动记录信息
  341. /// </summary>
  342. /// <returns></returns>
  343. public IActionResult Edit(string right, int Id = 0)
  344. {
  345. ViewBag.RightInfo = RightInfo;
  346. ViewBag.right = right;
  347. UserAccountRecord editData = db.UserAccountRecord.FirstOrDefault(m => m.Id == Id) ?? new UserAccountRecord();
  348. ViewBag.data = editData;
  349. return View();
  350. }
  351. #endregion
  352. #region 修改创客账户变动记录
  353. /// <summary>
  354. /// 增加或修改创客账户变动记录信息
  355. /// </summary>
  356. /// <returns></returns>
  357. [HttpPost]
  358. public string Edit(UserAccountRecord data)
  359. {
  360. Dictionary<string, object> Fields = new Dictionary<string, object>();
  361. Fields.Add("SeoTitle", data.SeoTitle);
  362. Fields.Add("SeoKeyword", data.SeoKeyword);
  363. Fields.Add("SeoDescription", data.SeoDescription);
  364. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("UserAccountRecord", Fields, data.Id);
  365. AddSysLog(data.Id.ToString(), "UserAccountRecord", "update");
  366. db.SaveChanges();
  367. return "success";
  368. }
  369. #endregion
  370. #region 删除创客账户变动记录信息
  371. /// <summary>
  372. /// 删除创客账户变动记录信息
  373. /// </summary>
  374. /// <returns></returns>
  375. public string Delete(string Id)
  376. {
  377. string[] idlist = Id.Split(new char[] { ',' });
  378. AddSysLog(Id, "UserAccountRecord", "del");
  379. foreach (string subid in idlist)
  380. {
  381. int id = int.Parse(subid);
  382. Dictionary<string, object> Fields = new Dictionary<string, object>();
  383. Fields.Add("Status", -1);
  384. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("UserAccountRecord", Fields, id);
  385. }
  386. db.SaveChanges();
  387. return "success";
  388. }
  389. #endregion
  390. #region 开启
  391. /// <summary>
  392. /// 开启
  393. /// </summary>
  394. /// <returns></returns>
  395. public string Open(string Id)
  396. {
  397. string[] idlist = Id.Split(new char[] { ',' });
  398. AddSysLog(Id, "UserAccountRecord", "open");
  399. foreach (string subid in idlist)
  400. {
  401. int id = int.Parse(subid);
  402. Dictionary<string, object> Fields = new Dictionary<string, object>();
  403. Fields.Add("Status", 1);
  404. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("UserAccountRecord", Fields, id);
  405. }
  406. db.SaveChanges();
  407. return "success";
  408. }
  409. #endregion
  410. #region 关闭
  411. /// <summary>
  412. /// 关闭
  413. /// </summary>
  414. /// <returns></returns>
  415. public string Close(string Id)
  416. {
  417. string[] idlist = Id.Split(new char[] { ',' });
  418. AddSysLog(Id, "UserAccountRecord", "close");
  419. foreach (string subid in idlist)
  420. {
  421. int id = int.Parse(subid);
  422. Dictionary<string, object> Fields = new Dictionary<string, object>();
  423. Fields.Add("Status", 0);
  424. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("UserAccountRecord", Fields, id);
  425. }
  426. db.SaveChanges();
  427. return "success";
  428. }
  429. #endregion
  430. #region 排序
  431. /// <summary>
  432. /// 排序
  433. /// </summary>
  434. /// <param name="Id"></param>
  435. public string Sort(int Id, int Sort)
  436. {
  437. new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("UserAccountRecord", Sort, Id);
  438. AddSysLog(Id.ToString(), "UserAccountRecord", "sort");
  439. return "success";
  440. }
  441. #endregion
  442. #region 导入数据
  443. /// <summary>
  444. /// 导入数据
  445. /// </summary>
  446. /// <param name="ExcelData"></param>
  447. public string Import(string ExcelData)
  448. {
  449. ExcelData = HttpUtility.UrlDecode(ExcelData);
  450. JsonData list = JsonMapper.ToObject(ExcelData);
  451. for (int i = 1; i < list.Count; i++)
  452. {
  453. JsonData dr = list[i];
  454. db.UserAccountRecord.Add(new UserAccountRecord()
  455. {
  456. CreateDate = DateTime.Now,
  457. UpdateDate = DateTime.Now,
  458. });
  459. db.SaveChanges();
  460. }
  461. AddSysLog("0", "UserAccountRecord", "Import");
  462. return "success";
  463. }
  464. #endregion
  465. #region 导出Excel
  466. /// <summary>
  467. /// 导出Excel
  468. /// </summary>
  469. /// <returns></returns>
  470. public JsonResult ExportExcel(UserAccountRecord data, int ChangeType, int ProductType, string TransRecordNo, string MakerCode, string RealName, string CreateDateData, int TopUserId, int UserId)
  471. {
  472. Dictionary<string, string> Fields = new Dictionary<string, string>();
  473. // Fields.Add("ChangeType", "1"); //交易类型
  474. // Fields.Add("ProductType", "1"); //产品类型
  475. // Fields.Add("TransRecordNo", "3"); //交易流水编号
  476. string condition = " and Status>-1";
  477. //创客编号
  478. if (!string.IsNullOrEmpty(MakerCode))
  479. {
  480. condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
  481. }
  482. //创客名称
  483. if (!string.IsNullOrEmpty(RealName))
  484. {
  485. condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
  486. }
  487. //顶级创客
  488. if (TopUserId > 0)
  489. {
  490. condition += " and UserId in (select Id from Users where ParentNav like '," + TopUserId + ",%')";
  491. }
  492. if (UserId > 0)
  493. {
  494. condition += " and UserId=" + UserId;
  495. }
  496. if (ChangeType > 0)
  497. {
  498. if (ChangeType == 1)
  499. {
  500. condition += " and (ChangeType=" + ChangeType + " or (ChangeType in(112,1) and ProductType=101))";
  501. }
  502. else if (ChangeType == 30)
  503. {
  504. condition += " and ChangeType=31 and Remark='开机抢红包活动'";
  505. }
  506. else if (ChangeType == 31)
  507. {
  508. condition += " and (ChangeType=" + ChangeType + " and (Remark!='开机抢红包活动' or Remark IS NULL))";
  509. }
  510. else
  511. {
  512. condition += " and ChangeType=" + ChangeType;
  513. }
  514. }
  515. if (ProductType > 0)
  516. {
  517. condition += " and ProductType=" + ProductType;
  518. }
  519. if (!string.IsNullOrEmpty(TransRecordNo))
  520. {
  521. condition += " and TransRecordNo='" + TransRecordNo + "'";
  522. }
  523. if (!string.IsNullOrEmpty(CreateDateData))
  524. {
  525. string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
  526. var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
  527. var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
  528. var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
  529. var checks = db.UserAccountRecord.Any(m => m.CreateDate <= end);
  530. if (check)
  531. {
  532. var sId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
  533. condition += " and Id >=" + sId;
  534. }
  535. if (checks)
  536. {
  537. var eId = db.UserAccountRecord.Where(m => m.CreateDate <= end).Max(m => m.Id);
  538. condition += " and Id <=" + eId;
  539. }
  540. }
  541. else
  542. {
  543. var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
  544. var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
  545. if (check)
  546. {
  547. var minId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
  548. var Info = function.ReadInstance("/WritePage/UsersAccountRecord/UsersAccountRecord.txt");
  549. if (string.IsNullOrEmpty(Info.ToString()))
  550. {
  551. function.WritePage("/WritePage/UsersAccountRecord/", "UsersAccountRecord.txt", minId.ToString());
  552. condition += " and Id >=" + minId;
  553. }
  554. else
  555. {
  556. condition += " and Id >=" + Convert.ToInt32(Info);
  557. }
  558. }
  559. else
  560. {
  561. condition += " and Id =0";
  562. }
  563. }
  564. Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("UserAccountRecord", Fields, "Id desc", "0", 1, 20000, condition, "UserId,ProductType,TransRecordNo,ChangeType,ChangeAmount,Remark,BeforeTotalAmount,AfterTotalAmount,BeforeFreezeAmount,AfterFreezeAmount,BeforeBalanceAmount,AfterBalanceAmount,CreateDate", false);
  565. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  566. foreach (Dictionary<string, object> dic in diclist)
  567. {
  568. int UId = int.Parse(dic["UserId"].ToString());
  569. Users user = db.Users.FirstOrDefault(m => m.Id == UId) ?? new Users();
  570. dic["MakerCode"] = user.MakerCode;
  571. dic["RealName"] = user.RealName;
  572. if (!string.IsNullOrEmpty(user.ParentNav))
  573. {
  574. int TopId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
  575. Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users();
  576. dic["TopMakerCode"] = tuser.MakerCode;
  577. dic["TopRealName"] = tuser.RealName;
  578. }
  579. int ProductTypes = int.Parse(dic["ProductType"].ToString());
  580. dic["ProductTypeName"] = RelationClass.GetKqProductBrandInfo(ProductTypes);
  581. int ChangeTypes = int.Parse(dic["ChangeType"].ToString());
  582. string Remark = dic["Remark"].ToString();
  583. if (ChangeTypes == 31 && (Remark == "开机抢红包活动" || string.IsNullOrEmpty(Remark)))
  584. {
  585. dic["ChangeTypeName"] = "红包奖励";
  586. }
  587. else
  588. {
  589. dic["ChangeTypeName"] = RelationClassForConst.GetChangeTypeInfo(ChangeTypes);
  590. }
  591. dic.Remove("UserId");
  592. dic.Remove("ChangeType");
  593. dic.Remove("ProductType");
  594. }
  595. Dictionary<string, object> result = new Dictionary<string, object>();
  596. result.Add("Status", "1");
  597. result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
  598. result.Add("Obj", diclist);
  599. Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
  600. ReturnFields.Add("MakerCode", "创客编号");
  601. ReturnFields.Add("RealName", "创客姓名");
  602. ReturnFields.Add("TopMakerCode", "顶级创客编号");
  603. ReturnFields.Add("TopRealName", "顶级创客名称");
  604. ReturnFields.Add("ProductTypeName", "产品类型");
  605. ReturnFields.Add("TransRecordNo", "交易流水编号");
  606. ReturnFields.Add("ChangeTypeName", "交易类型");
  607. ReturnFields.Add("ChangeAmount", "交易金额");
  608. ReturnFields.Add("Remark", "备注");
  609. ReturnFields.Add("BeforeTotalAmount", "交易前总金额");
  610. ReturnFields.Add("AfterTotalAmount", "交易后总金额");
  611. ReturnFields.Add("BeforeFreezeAmount", "交易前冻结金额");
  612. ReturnFields.Add("AfterFreezeAmount", "交易后冻结金额");
  613. ReturnFields.Add("BeforeBalanceAmount", "交易前余额");
  614. ReturnFields.Add("AfterBalanceAmount", "交易后余额");
  615. ReturnFields.Add("CreateDate", "交易时间");
  616. result.Add("Fields", ReturnFields);
  617. AddSysLog("0", "UserAccountRecord", "ExportExcel");
  618. return Json(result);
  619. }
  620. #endregion
  621. #region 快捷导出Excel
  622. public IActionResult QuickExportExcel(string right)
  623. {
  624. ViewBag.RightInfo = RightInfo;
  625. ViewBag.right = right;
  626. return View();
  627. }
  628. [HttpPost]
  629. public string QuickExportExcelDo(int ChangeType, int ProductType, string TransRecordNo, string MakerCode, string RealName, string CreateDateData)
  630. {
  631. string SqlString = " and a.Status>-1";
  632. //创客编号
  633. if (!string.IsNullOrEmpty(MakerCode))
  634. {
  635. SqlString += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
  636. }
  637. //创客名称
  638. if (!string.IsNullOrEmpty(RealName))
  639. {
  640. SqlString += " and a.UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
  641. }
  642. if (ChangeType > 0)
  643. {
  644. // if (ChangeType == 1)
  645. // {
  646. // SqlString += " and (a.ChangeType=" + ChangeType + " or (a.ChangeType in(112,1) and a.ProductType=101))";
  647. // }
  648. // else if (ChangeType == 30)
  649. // {
  650. // SqlString += " and a.ChangeType=31 and a.Remark='开机抢红包活动'";
  651. // }
  652. // else if (ChangeType == 31)
  653. // {
  654. // SqlString += " and (a.ChangeType=" + ChangeType + " and (a.Remark!='开机抢红包活动' or a.Remark IS NULL))";
  655. // }
  656. // else
  657. // {
  658. // SqlString += " and a.ChangeType=" + ChangeType;
  659. // }
  660. if (ChangeType > 0)
  661. {
  662. if (ChangeType == 1)
  663. {
  664. SqlString += " and (a.ChangeType=" + ChangeType + " or (a.ChangeType in(112,1) and a.ProductType=101))";
  665. }
  666. else if (ChangeType == 112)
  667. {
  668. SqlString += " and a.ChangeType=112 and a.ProductType=0";
  669. }
  670. else
  671. {
  672. SqlString += " and a.ChangeType=" + ChangeType;
  673. }
  674. }
  675. if (ChangeType == 0)
  676. {
  677. SqlString += " and a.ChangeType in(0,12)";
  678. }
  679. }
  680. if (ProductType > 0)
  681. {
  682. SqlString += " and a.ProductType=" + ProductType;
  683. }
  684. if (!string.IsNullOrEmpty(TransRecordNo))
  685. {
  686. SqlString += " and a.TransRecordNo='" + TransRecordNo + "'";
  687. }
  688. if (!string.IsNullOrEmpty(CreateDateData))
  689. {
  690. string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
  691. var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
  692. var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
  693. var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
  694. var checks = db.UserAccountRecord.Any(m => m.CreateDate <= end);
  695. if (check)
  696. {
  697. var sId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
  698. SqlString += " and a.Id >=" + sId;
  699. }
  700. if (checks)
  701. {
  702. var eId = db.UserAccountRecord.Where(m => m.CreateDate <= end).Max(m => m.Id);
  703. SqlString += " and a.Id <=" + eId;
  704. }
  705. }
  706. else
  707. {
  708. var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
  709. var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
  710. if (check)
  711. {
  712. var minId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
  713. var Info = function.ReadInstance("/WritePage/UsersAccountRecord/UsersAccountRecord.txt");
  714. if (string.IsNullOrEmpty(Info.ToString()))
  715. {
  716. function.WritePage("/WritePage/UsersAccountRecord/", "UsersAccountRecord.txt", minId.ToString());
  717. SqlString += " and a.Id >=" + minId;
  718. }
  719. else
  720. {
  721. SqlString += " and a.Id >=" + Convert.ToInt32(Info);
  722. }
  723. }
  724. else
  725. {
  726. SqlString += " and a.Id =0";
  727. }
  728. }
  729. var Sql = "SELECT e.MakerCode '创客编号',e.RealName '创客姓名',f.MakerCode '顶级创客编号',f.RealName '顶级创客名称',e.`Name` '产品类型',e.TransRecordNo '交易流水编号',e.ChangeTypeName '交易类型',e.ChangeAmount '交易金额',e.Remark '备注',e.BeforeTotalAmount '交易前总金额',e.AfterTotalAmount '交易后总金额',e.BeforeFreezeAmount '交易前冻结金额',e.AfterFreezeAmount '交易后冻结金额',e.BeforeBalanceAmount '交易前余额',e.AfterBalanceAmount '交易后余额',DATE_FORMAT(e.CreateDate,'%Y-%m-%d %H:%i:%s') '交易时间' FROM (SELECT b.MakerCode,b.RealName,SUBSTRING_INDEX(SUBSTRING_INDEX(b.ParentNav,',',4),',',-1) topId,c.`Name`,a.TransRecordNo,d.`Name` ChangeTypeName,a.ChangeAmount,a.Remark,a.BeforeTotalAmount,a.AfterTotalAmount,a.BeforeFreezeAmount,a.AfterFreezeAmount,a.BeforeBalanceAmount,a.AfterBalanceAmount,a.CreateDate FROM UserAccountRecord a LEFT JOIN Users b ON a.UserId=b.Id LEFT JOIN KqProducts c ON a.ProductType=c.Id LEFT JOIN ChangeTypes d ON a.ChangeType=d.Id WHERE 1=1 " + SqlString + ") e LEFT JOIN Users f ON e.topId=f.Id";
  730. var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
  731. var FileName = "创客账户变动记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  732. string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
  733. RedisDbconn.Instance.AddList("ExportQueue", SendData);
  734. AddSysLog("0", "UserAccountRecord", "QuickExportExcelDo");
  735. return "success";
  736. }
  737. #endregion
  738. }
  739. }