|
@@ -805,79 +805,124 @@ namespace MySystem.Controllers
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public string prize888()
|
|
|
+ public string prize888v2()
|
|
|
{
|
|
|
- WebCMSEntities db = new WebCMSEntities();
|
|
|
- OtherMySqlConn.connstr = "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;";
|
|
|
- List<Users> users = new List<Users>();
|
|
|
- string preMonth = "2022-04";
|
|
|
- string thisMonth = "2022-05";
|
|
|
- string nextMonth = "2022-06";
|
|
|
- var orders = db.Orders.Select(m => new { m.UserId, m.TotalPrice, m.Status }).Where(m => m.TotalPrice == 88 && m.Status > 0).ToList();
|
|
|
+ WebCMSEntities maindb = new WebCMSEntities();
|
|
|
+ List<int> userIdList = new List<int>();
|
|
|
+ string html = "<table>";
|
|
|
+ DateTime StartDate = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
|
|
|
+ DateTime EndDate = StartDate.AddMonths(1);
|
|
|
+ var orders = maindb.Orders.Select(m => new { m.UserId, m.TotalPrice, m.Status, m.PayDate }).Where(m => m.PayDate >= StartDate && m.PayDate < EndDate && m.TotalPrice == 88 && m.Status > 0).ToList();
|
|
|
foreach (var order in orders)
|
|
|
{
|
|
|
- int uid = order.UserId;
|
|
|
- Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId) ?? new Users();
|
|
|
- DataTable dt = OtherMySqlConn.dtable("select sum(TradeAmount) from TradeRecord where CreateDate>='" + preMonth + "-01 00:00:00' and CreateDate<'" + thisMonth + "-01 00:00:00' and UserId in (select Id from Users where ParentNav like '%," + uid + ",%' or Id=" + uid + ")");
|
|
|
- if (dt.Rows.Count > 0)
|
|
|
+ userIdList.Add(order.UserId);
|
|
|
+ }
|
|
|
+ foreach (int UserId in userIdList)
|
|
|
+ {
|
|
|
+ Users myuser = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
|
|
|
+ var lastmonth = DateTime.Now.AddMonths(-2).ToString("yyyyMM");
|
|
|
+ var thismonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
|
|
|
+ DateTime start = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;
|
|
|
+ DateTime end = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1);
|
|
|
+ string UserIdString = "," + UserId + ",";
|
|
|
+ List<Users> users = maindb.Users.Where(m => m.ParentNav.Contains(UserIdString) || m.Id == UserId).ToList();
|
|
|
+ List<int> uids = new List<int>();
|
|
|
+ List<int> uids2 = new List<int>();
|
|
|
+ foreach (var user in users)
|
|
|
{
|
|
|
- user.ActiveRewardAmount = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString()));
|
|
|
+ uids.Add(user.Id);
|
|
|
}
|
|
|
- dt = OtherMySqlConn.dtable("select sum(TradeAmount) from TradeRecord where CreateDate>='" + thisMonth + "-01 00:00:00' and CreateDate<'" + nextMonth + "-01 00:00:00' and UserId in (select Id from Users where ParentNav like '%," + uid + ",%' or Id=" + uid + ")");
|
|
|
- if (dt.Rows.Count > 0)
|
|
|
+ var suborders = orders.Where(m => uids.Contains(m.UserId)).ToList();
|
|
|
+ foreach (var suborder in suborders)
|
|
|
{
|
|
|
- user.ProfitRewardRate = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString()));
|
|
|
+ uids2.Add(suborder.UserId);
|
|
|
}
|
|
|
- users.Add(user);
|
|
|
- }
|
|
|
- List<int> gotList = new List<int>();
|
|
|
- foreach (Users user in users)
|
|
|
- {
|
|
|
- decimal preMonthAmt = user.ActiveRewardAmount;
|
|
|
- decimal thisMonthAmt = user.ProfitRewardRate;
|
|
|
- if (thisMonthAmt >= 2000000 && thisMonthAmt >= preMonthAmt * 2)
|
|
|
+ users = users.Where(m => uids2.Contains(m.Id)).ToList();
|
|
|
+ List<ProgressUserList> list = new List<ProgressUserList>();
|
|
|
+ foreach (Users user in users)
|
|
|
{
|
|
|
- List<Users> subusers = users.Where(m => m.ParentUserId == user.Id).ToList();
|
|
|
- if (subusers.Count > 0)
|
|
|
+ int IsOk = 0;//是否达标(0-否 1-是)
|
|
|
+ decimal lastMonthAmt = maindb.UserTradeDaySummary.Where(m => m.TradeMonth == lastmonth && m.SeoTitle == "team" && m.UserId == user.Id).Sum(m => m.NonDirectDebitTradeAmt + m.NonDirectTradeAmt);
|
|
|
+ decimal thisMonthAmt = maindb.UserTradeDaySummary.Where(m => m.TradeMonth == thismonth && m.SeoTitle == "team" && m.UserId == user.Id).Sum(m => m.NonDirectDebitTradeAmt + m.NonDirectTradeAmt);
|
|
|
+ if (thisMonthAmt >= lastMonthAmt * 2 && thisMonthAmt >= 2000000)
|
|
|
+ {
|
|
|
+ IsOk = 1;
|
|
|
+ }
|
|
|
+ ProgressUserList item = new ProgressUserList()
|
|
|
{
|
|
|
- decimal thisMonthAmtSelf = user.ProfitRewardRate;
|
|
|
- foreach (Users subuser in subusers)
|
|
|
+ LastMonth = lastMonthAmt,
|
|
|
+ ThisMonth = thisMonthAmt,
|
|
|
+ UserId = user.Id,
|
|
|
+ ParentNav = user.ParentNav,
|
|
|
+ IsOk = IsOk,
|
|
|
+ };
|
|
|
+ list.Add(item);
|
|
|
+ }
|
|
|
+ list = list.OrderBy(m => m.ParentNav).ToList();
|
|
|
+ int index = 0;
|
|
|
+ decimal selfTrade = 0; // 自己的本月交易额
|
|
|
+ decimal lastTrade = 0; // 自己的上月交易额
|
|
|
+ decimal totalTrade = 0; // 自己的本月目标交易额
|
|
|
+ string selfNav = ""; // 自己的ParentNav
|
|
|
+ List<string> ParentNavs = new List<string>();
|
|
|
+ if (list.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (ProgressUserList sub in list)
|
|
|
+ {
|
|
|
+ index += 1;
|
|
|
+ if (index == 1)
|
|
|
{
|
|
|
- if (subuser.ProfitRewardRate >= 2000000 && subuser.ProfitRewardRate >= subuser.ActiveRewardAmount * 2)
|
|
|
- {
|
|
|
- thisMonthAmtSelf -= subuser.ProfitRewardRate;
|
|
|
- }
|
|
|
+ selfTrade = sub.ThisMonth;
|
|
|
+ lastTrade = sub.LastMonth;
|
|
|
+ totalTrade = lastTrade * 2;
|
|
|
+ selfNav = sub.ParentNav + "," + sub.UserId + ",";
|
|
|
}
|
|
|
- if (thisMonthAmtSelf >= 2000000 && thisMonthAmtSelf >= preMonthAmt * 2)
|
|
|
+ else
|
|
|
{
|
|
|
- if (!gotList.Contains(user.Id))
|
|
|
+ bool op = true; //是否满足条件
|
|
|
+ string ParentNav = sub.ParentNav + "," + sub.UserId + ",";
|
|
|
+ foreach (string subNav in ParentNavs)
|
|
|
{
|
|
|
- function.WriteLog(user.RealName + "--" + user.MakerCode + "--满足条件--上月交易:" + preMonthAmt + "--本月交易:" + thisMonthAmt, "888奖励日志");
|
|
|
- gotList.Add(user.Id);
|
|
|
+ if (ParentNavs.Contains(ParentNav) && ParentNav != subNav)
|
|
|
+ {
|
|
|
+ op = false;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- function.WriteLog(user.RealName + "--" + user.MakerCode + "--未满足条件--上月交易:" + preMonthAmt + "--本月交易:" + thisMonthAmt, "888奖励日志");
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (!gotList.Contains(user.Id))
|
|
|
- {
|
|
|
- function.WriteLog(user.RealName + "--" + user.MakerCode + "--满足条件--上月交易:" + preMonthAmt + "--本月交易:" + thisMonthAmt, "888奖励日志");
|
|
|
- gotList.Add(user.Id);
|
|
|
+ if (op)
|
|
|
+ {
|
|
|
+ if (sub.IsOk == 1)
|
|
|
+ {
|
|
|
+ selfTrade -= sub.ThisMonth;
|
|
|
+ totalTrade -= sub.ThisMonth;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ParentNavs.Add(ParentNav);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if (lastTrade * 2 < 2000000 || selfTrade == 0 || totalTrade < 2000000)
|
|
|
+ {
|
|
|
+ totalTrade = 2000000;
|
|
|
+ }
|
|
|
+ html += "<tr>";
|
|
|
+ html += "<td>" + myuser.MakerCode + "</td>";
|
|
|
+ html += "<td>" + myuser.RealName + "</td>";
|
|
|
+ html += "<td>" + selfTrade + "</td>";
|
|
|
+ html += "<td>" + lastTrade + "</td>";
|
|
|
+ html += "<td>" + totalTrade + "</td>";
|
|
|
+ if (selfTrade >= totalTrade)
|
|
|
+ {
|
|
|
+ html += "<td>满足条件</td>";
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
- function.WriteLog(user.RealName + "--" + user.MakerCode + "--未满足条件--上月交易:" + preMonthAmt + "--本月交易:" + thisMonthAmt, "888奖励日志");
|
|
|
+ html += "<td>未满足条件</td>";
|
|
|
}
|
|
|
+ html += "</tr>";
|
|
|
}
|
|
|
- db.Dispose();
|
|
|
- return "ok";
|
|
|
+ html += "</table>";
|
|
|
+ maindb.Dispose();
|
|
|
+ return html;
|
|
|
}
|
|
|
|
|
|
|