UserAccountRecordDbconn.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using Library;
  4. using System.Linq;
  5. using MySystem.MainModels;
  6. namespace MySystem
  7. {
  8. public class UserAccountRecordDbconn
  9. {
  10. public readonly static UserAccountRecordDbconn Instance = new UserAccountRecordDbconn();
  11. #region 获取列表
  12. public List<UserAccountRecord> GetList(int UserId, string Kind, string TradeMonth, int pageNum = 1, int pageSize = 10)
  13. {
  14. string key = "UserAccountList:" + UserId + ":" + Kind + ":" + TradeMonth;
  15. List<UserAccountRecord> list = new List<UserAccountRecord>();
  16. if (RedisDbconn.Instance.Exists(key))
  17. {
  18. list = RedisDbconn.Instance.GetList<UserAccountRecord>(key, pageNum, pageSize);
  19. if (list.Count > 0)
  20. {
  21. return list;
  22. }
  23. }
  24. WebCMSEntities db = new WebCMSEntities();
  25. DateTime start = DateTime.Parse(TradeMonth.Substring(0, 4) + "-" + TradeMonth.Substring(4, 2) + "-01 00:00:00");
  26. DateTime end = start.AddMonths(1);
  27. IQueryable<UserAccountRecord> mysqllist = db.UserAccountRecord;
  28. if (Kind == "1")
  29. {
  30. mysqllist = mysqllist.Where(m => m.UserId == UserId && m.CreateDate >= start && m.CreateDate < end && (m.ChangeType == 0 || m.ChangeType == 50 || m.ChangeType == 112));
  31. }
  32. else
  33. {
  34. mysqllist = mysqllist.Where(m => m.UserId == UserId && m.CreateDate >= start && m.CreateDate < end && m.ChangeType == 2 && m.Status == 1);
  35. }
  36. List<UserAccountRecord> newlist = new List<UserAccountRecord>();
  37. var resultlist = mysqllist.OrderByDescending(m => m.Id).ToList();
  38. if (resultlist.Count > 0)
  39. {
  40. foreach (var sub in resultlist)
  41. {
  42. newlist.Add(sub);
  43. }
  44. RedisDbconn.Instance.Clear(key);
  45. foreach (var sub in newlist)
  46. {
  47. RedisDbconn.Instance.AddRightList(key, sub);
  48. }
  49. RedisDbconn.Instance.SetExpire(key, Library.function.get_Random(60, 120));
  50. }
  51. db.Dispose();
  52. return newlist;
  53. }
  54. #endregion
  55. }
  56. }