|
@@ -37,12 +37,12 @@ namespace MySystem
|
|
|
public void Recommend()
|
|
|
{
|
|
|
string today = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
- // string checkFlag = function.ReadInstance("/RecommandKing/" + today + ".txt");
|
|
|
- // if(!string.IsNullOrEmpty(checkFlag))
|
|
|
- // {
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // function.WritePage("/RecommandKing/", today + ".txt", DateTime.Now.ToString());
|
|
|
+ string checkFlag = function.ReadInstance("/RecommandKing/" + today + ".txt");
|
|
|
+ if(!string.IsNullOrEmpty(checkFlag))
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ function.WritePage("/RecommandKing/", today + ".txt", DateTime.Now.ToString());
|
|
|
List<int> Historys = new List<int>();
|
|
|
Historys.Add(565);
|
|
|
Historys.Add(139473);
|
|
@@ -51,7 +51,7 @@ namespace MySystem
|
|
|
Historys.Add(127023);
|
|
|
string TradeMonth = DateTime.Now.AddMonths(-0).ToString("yyyyMM");
|
|
|
DateTime check = DateTime.Parse("2023-10-01 00:00:00");
|
|
|
- DateTime checke = DateTime.Parse("2024-04-29 00:00:00");
|
|
|
+ // DateTime checke = DateTime.Parse("2024-04-29 00:00:00");
|
|
|
DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-0).ToString("yyyy-MM") + "-01 00:00:00");
|
|
|
DateTime end = start.AddMonths(1);
|
|
|
CustomerSqlConn.op("delete from RecommendDirectUser where TradeMonth='" + TradeMonth + "'", MysqlConn.SqlConnStr);
|
|
@@ -74,7 +74,7 @@ namespace MySystem
|
|
|
MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
|
|
|
//统计当月下单名单
|
|
|
// List<int> checkIds = readdb.Users.Where(m => (m.ParentNav.Contains(",609,") || m.Id == 609) && m.AuthFlag == 1).ToList().Select(m => m.Id).ToList();
|
|
|
- var orders = readdb.Orders.Where(m => m.PayDate >= check && m.PayDate < checke && m.Status > 0 && m.Sort == 0 && m.UserId > 1 && ProductIds.Contains(m.ProductId)).ToList();
|
|
|
+ var orders = readdb.Orders.Where(m => m.PayDate >= check && m.Status > 0 && m.Sort == 0 && m.UserId > 1 && ProductIds.Contains(m.ProductId)).ToList();
|
|
|
List<int> uids = orders.Select(m => m.UserId).Distinct().ToList();
|
|
|
foreach(int uid in uids)
|
|
|
{
|
|
@@ -112,22 +112,20 @@ namespace MySystem
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
- // if(ActCount == 0)
|
|
|
- // {
|
|
|
- // ActCount += mpdb.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
|
|
|
- // }
|
|
|
- // if(ActCount == 0)
|
|
|
- // {
|
|
|
- // ActCount += mpdb2.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
|
|
|
- // }
|
|
|
+ if(ActCount == 0)
|
|
|
+ {
|
|
|
+ ActCount += mpdb.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
|
|
|
+ }
|
|
|
+ if(ActCount == 0)
|
|
|
+ {
|
|
|
+ ActCount += mpdb2.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
|
|
|
+ }
|
|
|
if(ActCount > 0)
|
|
|
{
|
|
|
user.Op = true;
|
|
|
function.WriteLog(user.UserId.ToString(), "推荐王达标创客名单");
|
|
|
}
|
|
|
- // RedisDbconn.Instance.AddList("userstmp2024", user);
|
|
|
}
|
|
|
- // int Cou = RedisDbconn.Instance.GetList<RecommandKingItem>("userstmp2024", 1, 99999999).Count(m => m.Op);
|
|
|
foreach(int uid in uids)
|
|
|
{
|
|
|
ReadModels.Users user = readdb.Users.FirstOrDefault(m => m.Id == uid);
|
|
@@ -158,7 +156,7 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- users = users.OrderBy(m => m.Level).ToList();
|
|
|
+ users = users.OrderByDescending(m => m.Level).ToList();
|
|
|
foreach(RecommandKingItem user in users)
|
|
|
{
|
|
|
string UserIdStr = "," + user.UserId + ",";
|
|
@@ -166,66 +164,47 @@ namespace MySystem
|
|
|
user.ActCount = Count;
|
|
|
user.ChkActCount = Count;
|
|
|
function.WriteLog(user.UserId + ":" + Count, "推荐王总的达标创客数量");
|
|
|
+ // RedisDbconn.Instance.AddList("userstmp2024", user);
|
|
|
}
|
|
|
+ // users = RedisDbconn.Instance.GetList<RecommandKingItem>("userstmp2024", 1, 999999).OrderByDescending(m => m.Level).ToList();
|
|
|
+ users = users.OrderByDescending(m => m.Level).ToList();
|
|
|
foreach(RecommandKingItem user in users)
|
|
|
{
|
|
|
- string UserIdStr = "," + user.UserId + ",";
|
|
|
- function.WriteLog(user.UserId.ToString(), "推荐王最终的达标创客数量分析");
|
|
|
- if(users.Any(m => m.ParentNav.Contains(UserIdStr) && (m.ChkActCount >= 50 || m.UserLevel >= 5 || Historys.Contains(m.UserId))))
|
|
|
+ function.WriteLog(user.UserId.ToString() + "-" + user.UserLevel, "推荐王最终的达标创客数量分析");
|
|
|
+ int ActCount = 0;
|
|
|
+ List<RecommandKingItem> subs = users.Where(m => m.ParentUserId == user.UserId).ToList();
|
|
|
+ foreach(RecommandKingItem sub in subs)
|
|
|
{
|
|
|
- List<RecommandKingItem> subs = users.Where(m => m.ParentUserId == user.UserId).ToList();
|
|
|
- foreach(RecommandKingItem sub in subs)
|
|
|
+ function.WriteLog(sub.UserId + ":" + sub.ActCount, "推荐王最终的达标创客数量分析");
|
|
|
+ if(sub.ActCount < 50 && sub.UserLevel < 5 && !Historys.Contains(sub.UserId))
|
|
|
{
|
|
|
- function.WriteLog(sub.UserId + ":" + sub.ActCount, "推荐王最终的达标创客数量分析");
|
|
|
- string subUserIdStr = "," + sub.UserId + ",";
|
|
|
- if(sub.UserId == 146503)
|
|
|
- {
|
|
|
- string sss = "123123123123";
|
|
|
- }
|
|
|
- if(sub.ChkActCount >= 50 || sub.UserLevel >= 5 || Historys.Contains(sub.UserId))
|
|
|
- {
|
|
|
- // user.ActCount -= sub.ChkActCount;
|
|
|
- List<RecommandKingItem> mysubs = users.Where(m => m.ParentNav.Contains(subUserIdStr) && (m.ChkActCount >= 50)).ToList();
|
|
|
- foreach(RecommandKingItem mysub in mysubs)
|
|
|
- {
|
|
|
- List<RecommandKingItem> mysubChildren = users.Where(m => m.ParentUserId == mysub.UserId).ToList();
|
|
|
- foreach(RecommandKingItem mysubChild in mysubChildren)
|
|
|
- {
|
|
|
- if(mysubChild.ChkActCount >= 50)
|
|
|
- {
|
|
|
- user.ActCount -= mysubChild.ChkActCount;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- function.WriteLog("减去" + sub.ChkActCount, "推荐王最终的达标创客数量分析");
|
|
|
- }
|
|
|
- else if(users.Any(m => m.ParentNav.Contains(subUserIdStr) && (m.ChkActCount >= 50 || m.UserLevel >= 5 || Historys.Contains(sub.UserId))))
|
|
|
- {
|
|
|
- RecommandKingItem tar = users.Where(m => m.ParentNav.Contains(subUserIdStr) && (m.ChkActCount >= 50 || m.UserLevel >= 5)).OrderBy(m => m.Level).FirstOrDefault();
|
|
|
- user.ActCount -= tar.ChkActCount;
|
|
|
- function.WriteLog("减去" + tar.UserId + ":" + sub.ChkActCount, "推荐王最终的达标创客数量分析");
|
|
|
- }
|
|
|
+ ActCount += sub.ActCount;
|
|
|
+ if(sub.Op) ActCount += 1;
|
|
|
}
|
|
|
}
|
|
|
+ user.ActCount = ActCount;
|
|
|
function.WriteLog("\n\n\n", "推荐王最终的达标创客数量分析");
|
|
|
}
|
|
|
|
|
|
int num = 0;
|
|
|
foreach(RecommandKingItem user in users)
|
|
|
{
|
|
|
- num += 1;
|
|
|
- RecommendDirectUser item = db.RecommendDirectUser.FirstOrDefault(m => m.UserId == user.UserId && m.TradeMonth == TradeMonth);
|
|
|
- if(item == null)
|
|
|
+ if(!Historys.Contains(user.UserId))
|
|
|
{
|
|
|
- item = db.RecommendDirectUser.Add(new RecommendDirectUser()
|
|
|
- {
|
|
|
- UserId = user.UserId,
|
|
|
- TradeMonth = TradeMonth,
|
|
|
- QueryCount = user.ActCount > 50 ? 50 : user.ActCount,
|
|
|
- }).Entity;
|
|
|
- if(num % 200 == 0)
|
|
|
+ num += 1;
|
|
|
+ RecommendDirectUser item = db.RecommendDirectUser.FirstOrDefault(m => m.UserId == user.UserId && m.TradeMonth == TradeMonth);
|
|
|
+ if(item == null)
|
|
|
{
|
|
|
- db.SaveChanges();
|
|
|
+ item = db.RecommendDirectUser.Add(new RecommendDirectUser()
|
|
|
+ {
|
|
|
+ UserId = user.UserId,
|
|
|
+ TradeMonth = TradeMonth,
|
|
|
+ QueryCount = user.ActCount > 50 ? 50 : user.ActCount,
|
|
|
+ }).Entity;
|
|
|
+ if(num % 200 == 0)
|
|
|
+ {
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|