RecommandKingHelper.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Data;
  5. using MySystem.PxcModels;
  6. using Library;
  7. using LitJson;
  8. namespace MySystem
  9. {
  10. public class RecommandKingHelper
  11. {
  12. public readonly static RecommandKingHelper Instance = new RecommandKingHelper();
  13. private RecommandKingHelper()
  14. { }
  15. public void Recommend2()
  16. {
  17. DateTime check = DateTime.Parse("2023-10-01 00:00:00");
  18. DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
  19. string TradeMonth = DateTime.Now.ToString("yyyyMM");
  20. List<int> ProductIds = new List<int>();
  21. ProductIds.Add(10);
  22. ProductIds.Add(11);
  23. ProductIds.Add(77);
  24. ProductIds.Add(78);
  25. ProductIds.Add(79);
  26. ProductIds.Add(27);
  27. ProductIds.Add(28);
  28. ProductIds.Add(39);
  29. ProductIds.Add(40);
  30. WebCMSEntities db = new WebCMSEntities();
  31. //统计当月下单名单
  32. List<int> uids = db.Orders.Where(m => m.PayDate >= check && m.Status > 0 && m.Sort == 0 && ProductIds.Contains(m.ProductId)).ToList().Select(m => m.UserId).Distinct().ToList();
  33. foreach(int uid in uids)
  34. {
  35. int ActCount = 0;
  36. if(ActCount == 0)
  37. {
  38. if(db.UserTradeMonthSummary.Any(m => m.UserId == uid && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId != 14))
  39. {
  40. ActCount += db.UserTradeMonthSummary.Where(m => m.UserId == uid && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId != 14).Sum(m => m.ActiveBuddyMerStatus);
  41. }
  42. }
  43. if(ActCount == 0)
  44. {
  45. MpMainModels.WebCMSEntities mpdb = new MpMainModels.WebCMSEntities();
  46. ActCount += mpdb.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.Status > 0 && m.UserId == uid);
  47. mpdb.Dispose();
  48. }
  49. if(ActCount == 0)
  50. {
  51. MpMainModels2.WebCMSEntities mpdb = new MpMainModels2.WebCMSEntities();
  52. ActCount += mpdb.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.Status > 0 && m.UserId == uid);
  53. mpdb.Dispose();
  54. }
  55. if(ActCount > 0)
  56. {
  57. Users user = db.Users.FirstOrDefault(m => m.Id == uid);
  58. if(user != null)
  59. {
  60. string ParentNav = user.ParentNav;
  61. if(!string.IsNullOrEmpty(ParentNav))
  62. {
  63. string[] ParentNavList = ParentNav.Replace(",,", ",").Trim(',').Split(',');
  64. foreach(string UserIdString in ParentNavList)
  65. {
  66. int UserId = int.Parse(UserIdString);
  67. RecommendDirectUser item = db.RecommendDirectUser.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth);
  68. if(item == null)
  69. {
  70. item = db.RecommendDirectUser.Add(new RecommendDirectUser()
  71. {
  72. UserId = UserId,
  73. TradeMonth = TradeMonth,
  74. }).Entity;
  75. db.SaveChanges();
  76. }
  77. item.QueryCount += 1;
  78. }
  79. }
  80. }
  81. }
  82. }
  83. db.Dispose();
  84. }
  85. }
  86. }