MerchantInfoDbconn.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using MySystem.MainModels;
  5. namespace MySystem
  6. {
  7. public class MerchantInfoDbconn
  8. {
  9. public readonly static MerchantInfoDbconn Instance = new MerchantInfoDbconn();
  10. #region 获取单个字段
  11. public MerchantInfo Get(int Id)
  12. {
  13. string key = "MerchantInfo:" + Id;
  14. if (RedisDbconn.Instance.Exists(key))
  15. {
  16. MerchantInfo obj = RedisDbconn.Instance.Get<MerchantInfo>(key);
  17. if (obj != null)
  18. {
  19. return obj;
  20. }
  21. }
  22. WebCMSEntities db = new WebCMSEntities();
  23. MerchantInfo order = db.MerchantInfo.FirstOrDefault(m => m.Id == Id);
  24. if (order != null)
  25. {
  26. RedisDbconn.Instance.Set(key, order);
  27. RedisDbconn.Instance.SetExpire(key, Library.function.get_Random(1800, 5400));
  28. }
  29. return order;
  30. }
  31. #endregion
  32. #region 获取列表
  33. public List<int> GetList(int UserId, int pageNum = 1, int pageSize = 10)
  34. {
  35. string key = "MerchantInfoList:" + UserId;
  36. List<int> list = new List<int>();
  37. if (RedisDbconn.Instance.Exists(key))
  38. {
  39. list = RedisDbconn.Instance.GetList<int>(key, pageNum, pageSize);
  40. if (list.Count > 0)
  41. {
  42. return list;
  43. }
  44. }
  45. WebCMSEntities db = new WebCMSEntities();
  46. var mysqllist = db.MerchantInfo.Select(m => new { m.Id, m.UserId, m.QueryCount }).Where(m => m.UserId == UserId && m.QueryCount == 1).OrderByDescending(m => m.Id).ToList();
  47. if (mysqllist.Count > 0)
  48. {
  49. List<int> newlist = new List<int>();
  50. foreach (var sub in mysqllist)
  51. {
  52. newlist.Add(sub.Id);
  53. }
  54. RedisDbconn.Instance.Clear(key);
  55. foreach (int sub in newlist)
  56. {
  57. RedisDbconn.Instance.AddRightList(key, sub);
  58. }
  59. RedisDbconn.Instance.SetExpire(key, Library.function.get_Random(1800, 5400));
  60. }
  61. db.Dispose();
  62. return list;
  63. }
  64. public List<MerchantInfo> GetTmpList(int UserId, int pageNum = 1, int pageSize = 10)
  65. {
  66. string key = "TmpMerchantInfo:" + UserId;
  67. List<MerchantInfo> list = new List<MerchantInfo>();
  68. if (RedisDbconn.Instance.Exists(key))
  69. {
  70. list = RedisDbconn.Instance.GetList<MerchantInfo>(key, pageNum, pageSize);
  71. if (list.Count > 0)
  72. {
  73. return list;
  74. }
  75. }
  76. WebCMSEntities db = new WebCMSEntities();
  77. var mysqllist = db.MerchantInfo.Where(m => m.UserId == UserId && m.QueryCount == 1).OrderByDescending(m => m.Id).ToList();
  78. if (mysqllist.Count > 0)
  79. {
  80. List<MerchantInfo> newlist = new List<MerchantInfo>();
  81. foreach (var sub in mysqllist)
  82. {
  83. newlist.Add(sub);
  84. }
  85. RedisDbconn.Instance.Clear(key);
  86. foreach (MerchantInfo sub in newlist)
  87. {
  88. RedisDbconn.Instance.AddRightList(key, sub);
  89. }
  90. RedisDbconn.Instance.SetExpire(key, Library.function.get_Random(1800, 5400));
  91. }
  92. db.Dispose();
  93. return list;
  94. }
  95. #endregion
  96. }
  97. }