|
@@ -2001,207 +2001,26 @@ namespace MySystem
|
|
|
Thread.Sleep(600000);
|
|
|
}
|
|
|
}
|
|
|
- public void StatUserLevelStart()
|
|
|
- {
|
|
|
- WebCMSEntities db = new WebCMSEntities();
|
|
|
- MpMainModels.WebCMSEntities mpmaindb = new MpMainModels.WebCMSEntities();
|
|
|
- try
|
|
|
- {
|
|
|
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
|
|
|
- function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
|
|
|
- DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
|
|
|
- DateTime end = start.AddDays(1);
|
|
|
- string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
|
|
|
- List<UserLevelSet> sets = db.UserLevelSet.ToList();
|
|
|
- bool op = true;
|
|
|
- int startid = 0;
|
|
|
- while(op)
|
|
|
- {
|
|
|
- var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.Id > startid && m.AuthFlag == 1).OrderBy(m => m.Id).Take(500).ToList();
|
|
|
- function.WriteLog(users.Count.ToString(), "创客升级日志");
|
|
|
- if(users.Count > 0)
|
|
|
- {
|
|
|
- foreach (var subuser in users)
|
|
|
- {
|
|
|
- Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
|
|
|
- if (user != null)
|
|
|
- {
|
|
|
- int BeforeLevel = user.UserLevel;
|
|
|
- int AfterLevel = 0;
|
|
|
- decimal TradeAmount = 0;
|
|
|
- //创客团队交易额
|
|
|
- bool check = db.TradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
|
|
|
- if (check)
|
|
|
- {
|
|
|
- TradeAmount += db.TradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.HelpNonDirectTradeAmt + m.HelpNonDirectDebitTradeAmt + m.NotHelpNonDirectTradeAmt + m.NotHelpNonDirectDebitTradeAmt + m.ProfitNonDirectTradeAmt + m.ProfitNonDirectDebitTradeAmt);
|
|
|
- }
|
|
|
- //助利宝团队交易额
|
|
|
- DataTable checkdt = OtherMySqlConn.dtable("SELECT SUM(TradeAmount) TradeAmount FROM HelpProfitMerTradeSummay WHERE (MerchantId IN(SELECT MerchantId FROM HelpProfitMerIds WHERE UserId IN(SELECT Id from Users WHERE ParentNav like '%," + user.Id + ",%' OR Id=" + user.Id + "))) AND TradeMonth=" + TradeMonth + "");
|
|
|
- if (checkdt.Rows.Count > 0)
|
|
|
- {
|
|
|
- TradeAmount += decimal.Parse(function.CheckNum(checkdt.Rows[0]["TradeAmount"].ToString()));
|
|
|
- }
|
|
|
- //码牌团队交易额
|
|
|
- check = mpmaindb.UserAmountSummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
|
|
|
- if (check)
|
|
|
- {
|
|
|
- TradeAmount += mpmaindb.UserAmountSummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.TotalAmount);
|
|
|
- }
|
|
|
- UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
|
|
|
- if (set != null)
|
|
|
- {
|
|
|
- AfterLevel = set.Id;
|
|
|
- }
|
|
|
-
|
|
|
- // K6以上计算小市场是否达标
|
|
|
- // 升级逻辑
|
|
|
- bool upFlag = true;
|
|
|
- if(AfterLevel > 5)
|
|
|
- {
|
|
|
- DataTable dt = OtherMySqlConn.dtable("select UserId,sum(HelpNonDirectTradeAmt+NotHelpNonDirectTradeAmt+ProfitNonDirectTradeAmt+HelpNonDirectDebitTradeAmt+NotHelpNonDirectDebitTradeAmt+ProfitNonDirectDebitTradeAmt) from TradeDaySummary where UserId in (select Id from Users where ParentUserId=" + user.Id + ") and TradeMonth='" + TradeMonth + "' and SeoTitle='team' group by UserId order by sum(HelpNonDirectTradeAmt+NotHelpNonDirectTradeAmt+ProfitNonDirectTradeAmt+HelpNonDirectDebitTradeAmt+ProfitNonDirectDebitTradeAmt) desc");
|
|
|
- int index = 0;
|
|
|
- decimal TradeAmt = 0;
|
|
|
- decimal BigTradeAmt = 0;
|
|
|
- foreach(DataRow dr in dt.Rows)
|
|
|
- {
|
|
|
- index += 1;
|
|
|
- if(index == 1)
|
|
|
- {
|
|
|
- BigTradeAmt = decimal.Parse(dr[1].ToString());
|
|
|
- }
|
|
|
- else if(index > 1)
|
|
|
- {
|
|
|
- TradeAmt += decimal.Parse(dr[1].ToString());
|
|
|
- }
|
|
|
- }
|
|
|
- if(TradeAmt < 12000000 || BigTradeAmt < 30000000)
|
|
|
- {
|
|
|
- if(AfterLevel > BeforeLevel && BeforeLevel >= 5) //保级,只升不降
|
|
|
- {
|
|
|
- AfterLevel = BeforeLevel;
|
|
|
- }
|
|
|
- else if(AfterLevel > BeforeLevel && BeforeLevel < 5)
|
|
|
- {
|
|
|
- AfterLevel = 5;
|
|
|
- }
|
|
|
- else if(BeforeLevel > 5)
|
|
|
- {
|
|
|
- AfterLevel = 5;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- upFlag = false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (AfterLevel > BeforeLevel && AfterLevel > 1 && upFlag)
|
|
|
- {
|
|
|
- function.WriteLog("升级:" + user.Id.ToString() + BeforeLevel + "->" + AfterLevel, "创客升级日志");
|
|
|
- user.UserLevel = AfterLevel;
|
|
|
- DateTime checkTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
|
|
|
- UserRank rank = db.UserRank.FirstOrDefault(m => m.CreateDate >= checkTime && m.UserId == user.Id);
|
|
|
- if(rank == null)
|
|
|
- {
|
|
|
- db.UserRank.Add(new UserRank()
|
|
|
- {
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- UpdateDate = DateTime.Now,
|
|
|
- UserId = user.Id, //创客
|
|
|
- WhiteRank = BeforeLevel,
|
|
|
- Rank = AfterLevel, //当前等级
|
|
|
- StatYear = DateTime.Now.Year, //统计年份
|
|
|
- StatMonth = DateTime.Now.Month, //统计月份
|
|
|
- TradeAmt = TradeAmount, //团队交易总额
|
|
|
- UpgradeFlag = 1, //升级标识
|
|
|
- OperateDate = DateTime.Now, //操作时间
|
|
|
- Status = 1,
|
|
|
- });
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- rank.TradeAmt = TradeAmount;
|
|
|
- rank.Rank = AfterLevel;
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- }
|
|
|
- // 降级逻辑
|
|
|
- if(!upFlag && AfterLevel > 5)
|
|
|
- {
|
|
|
- AfterLevel = 5;
|
|
|
- }
|
|
|
- if (AfterLevel < BeforeLevel && BeforeLevel > 1)
|
|
|
- {
|
|
|
- function.WriteLog(user.MakerCode + "-" + user.RealName + ":K" + BeforeLevel + "->K" + AfterLevel, "创客降级日志");
|
|
|
- user.UserLevel = AfterLevel;
|
|
|
- DateTime checkTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
|
|
|
- UserRank rank = db.UserRank.FirstOrDefault(m => m.CreateDate >= checkTime && m.UserId == user.Id);
|
|
|
- if(rank == null)
|
|
|
- {
|
|
|
- db.UserRank.Add(new UserRank()
|
|
|
- {
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- UpdateDate = DateTime.Now,
|
|
|
- UserId = user.Id, //创客
|
|
|
- WhiteRank = BeforeLevel,
|
|
|
- Rank = AfterLevel, //当前等级
|
|
|
- StatYear = DateTime.Now.Year, //统计年份
|
|
|
- StatMonth = DateTime.Now.Month, //统计月份
|
|
|
- TradeAmt = TradeAmount, //团队交易总额
|
|
|
- UpgradeFlag = 0, //升级标识
|
|
|
- OperateDate = DateTime.Now, //操作时间
|
|
|
- Status = 1,
|
|
|
- });
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- rank.TradeAmt = TradeAmount;
|
|
|
- rank.Rank = AfterLevel;
|
|
|
- rank.Status = 1;
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- startid = subuser.Id;
|
|
|
- }
|
|
|
- function.WriteLog(startid.ToString(), "创客升级日志");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- op = false;
|
|
|
- }
|
|
|
- }
|
|
|
- function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- function.WriteLog(ex.ToString(), "创客升级异常");
|
|
|
- }
|
|
|
- db.Dispose();
|
|
|
- mpmaindb.Dispose();
|
|
|
-
|
|
|
- RedisDbconn.Instance.AddList("DoTableEveryMonthQueue", "1");
|
|
|
- }
|
|
|
|
|
|
public void StatUserLevelStartNew()
|
|
|
{
|
|
|
WebCMSEntities db = new WebCMSEntities();
|
|
|
+ ReadModels.WebCMSEntities rdb = new ReadModels.WebCMSEntities();
|
|
|
MpMainModels.WebCMSEntities mpmaindb = new MpMainModels.WebCMSEntities();
|
|
|
MpMainModels2.WebCMSEntities mpmaindb2 = new MpMainModels2.WebCMSEntities();
|
|
|
try
|
|
|
{
|
|
|
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
|
|
|
+ OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["ReadSqlConnStr"].ToString();
|
|
|
function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
|
|
|
DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
|
|
|
DateTime end = start.AddDays(1);
|
|
|
string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
|
|
|
- List<UserLevelSet> sets = db.UserLevelSet.ToList();
|
|
|
+ List<ReadModels.UserLevelSet> sets = rdb.UserLevelSet.ToList();
|
|
|
bool op = true;
|
|
|
int startid = 138681;
|
|
|
while(op)
|
|
|
{
|
|
|
- var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.Id > startid && m.AuthFlag == 1).OrderBy(m => m.Id).Take(500).ToList();
|
|
|
+ var users = rdb.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.Id > startid && m.AuthFlag == 1).OrderBy(m => m.Id).Take(500).ToList();
|
|
|
function.WriteLog(users.Count.ToString(), "创客升级日志");
|
|
|
if(users.Count > 0)
|
|
|
{
|
|
@@ -2214,17 +2033,13 @@ namespace MySystem
|
|
|
int AfterLevel = 0;
|
|
|
decimal TradeAmount = 0;
|
|
|
//创客团队交易额
|
|
|
- bool check = db.TradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
|
|
|
+ bool check = rdb.TradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
|
|
|
if (check)
|
|
|
{
|
|
|
- TradeAmount += db.TradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.HelpNonDirectTradeAmt + m.HelpNonDirectDebitTradeAmt + m.NotHelpNonDirectTradeAmt + m.NotHelpNonDirectDebitTradeAmt + m.ProfitNonDirectTradeAmt + m.ProfitNonDirectDebitTradeAmt);
|
|
|
+ TradeAmount += rdb.TradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.HelpNonDirectTradeAmt + m.HelpNonDirectDebitTradeAmt + m.NotHelpNonDirectTradeAmt + m.NotHelpNonDirectDebitTradeAmt + m.ProfitNonDirectTradeAmt + m.ProfitNonDirectDebitTradeAmt);
|
|
|
}
|
|
|
//助利宝团队交易额
|
|
|
- DataTable checkdt = OtherMySqlConn.dtable("SELECT SUM(TradeAmount) TradeAmount FROM HelpProfitMerTradeSummay WHERE (MerchantId IN(SELECT MerchantId FROM HelpProfitMerIds WHERE UserId IN(SELECT Id from Users WHERE ParentNav like '%," + user.Id + ",%' OR Id=" + user.Id + "))) AND TradeMonth=" + TradeMonth + "");
|
|
|
- if (checkdt.Rows.Count > 0)
|
|
|
- {
|
|
|
- TradeAmount += decimal.Parse(function.CheckNum(checkdt.Rows[0]["TradeAmount"].ToString()));
|
|
|
- }
|
|
|
+ TradeAmount += HelpProfitTradeSummaryDbconn.Instance.GetTrade(user.Id, TradeMonth, "team");
|
|
|
//码牌团队交易额(直联)
|
|
|
check = mpmaindb.UserAmountSummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
|
|
|
if (check)
|
|
@@ -2238,12 +2053,12 @@ namespace MySystem
|
|
|
TradeAmount += mpmaindb2.UserAmountSummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.IsAct == 1).Sum(m => m.TotalAmount) * 4;
|
|
|
}
|
|
|
//广电卡扶持期按1万/张计入职级
|
|
|
- check = db.UserTradeMonthSummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId == 14);
|
|
|
+ check = rdb.UserTradeMonthSummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId == 14);
|
|
|
if (check)
|
|
|
{
|
|
|
- TradeAmount += db.UserTradeMonthSummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId == 14).Sum(m => m.ActiveBuddyMerStatus) * 10000;
|
|
|
+ TradeAmount += rdb.UserTradeMonthSummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId == 14).Sum(m => m.ActiveBuddyMerStatus) * 10000;
|
|
|
}
|
|
|
- UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
|
|
|
+ ReadModels.UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
|
|
|
if (set != null)
|
|
|
{
|
|
|
AfterLevel = set.Id;
|
|
@@ -2320,7 +2135,7 @@ namespace MySystem
|
|
|
rank.Rank = AfterLevel;
|
|
|
db.SaveChanges();
|
|
|
}
|
|
|
- UserRankWhite rankWhite = db.UserRankWhite.FirstOrDefault(m => m.Id == user.Id);
|
|
|
+ var rankWhite = rdb.UserRankWhite.FirstOrDefault(m => m.Id == user.Id);
|
|
|
if(rankWhite != null)
|
|
|
{
|
|
|
if(Utils.Instance.GetUserLevel(user.Id) >= rankWhite.Rank)
|
|
@@ -2371,7 +2186,7 @@ namespace MySystem
|
|
|
rank.Status = 1;
|
|
|
db.SaveChanges();
|
|
|
}
|
|
|
- UserRankWhite rankWhite = db.UserRankWhite.FirstOrDefault(m => m.Id == user.Id);
|
|
|
+ var rankWhite = rdb.UserRankWhite.FirstOrDefault(m => m.Id == user.Id);
|
|
|
if(rankWhite != null)
|
|
|
{
|
|
|
if(Utils.Instance.GetUserLevel(user.Id) < rankWhite.Rank)
|
|
@@ -2399,12 +2214,12 @@ namespace MySystem
|
|
|
startid = 0;
|
|
|
while(op)
|
|
|
{
|
|
|
- var users = db.Users.Select(m => new { m.Id, m.AuthFlag, m.UserLevel }).Where(m => m.Id > startid && m.AuthFlag == 1 && m.UserLevel == 0).OrderBy(m => m.Id).Take(50).ToList();
|
|
|
+ var users = rdb.Users.Select(m => new { m.Id, m.AuthFlag, m.UserLevel }).Where(m => m.Id > startid && m.AuthFlag == 1 && m.UserLevel == 0).OrderBy(m => m.Id).Take(50).ToList();
|
|
|
if(users.Count > 0)
|
|
|
{
|
|
|
foreach (var subuser in users)
|
|
|
{
|
|
|
- bool hasOrder = db.Orders.Any(m => m.UserId == subuser.Id && m.Status > 0 && productIds.Contains(m.ProductId));
|
|
|
+ bool hasOrder = rdb.Orders.Any(m => m.UserId == subuser.Id && m.Status > 0 && productIds.Contains(m.ProductId));
|
|
|
if(hasOrder)
|
|
|
{
|
|
|
Utils.Instance.LeaderPreUserLevel(subuser.Id, 1, DateTime.Parse("2025-01-01 00:00:00"));
|
|
@@ -2443,6 +2258,7 @@ namespace MySystem
|
|
|
function.WriteLog(ex.ToString(), "创客升级异常");
|
|
|
}
|
|
|
db.Dispose();
|
|
|
+ rdb.Dispose();
|
|
|
mpmaindb.Dispose();
|
|
|
mpmaindb2.Dispose();
|
|
|
|