Browse Source

更换888翻倍奖励代码

lichunlei 2 years ago
parent
commit
abbc199f71
1 changed files with 97 additions and 52 deletions
  1. 97 52
      Controllers/HomeController.cs

+ 97 - 52
Controllers/HomeController.cs

@@ -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;
         }