瀏覽代碼

修改了生成奖券的算法
增加实时统计排行榜

lichunlei 3 年之前
父節點
當前提交
640f608980
共有 2 個文件被更改,包括 59 次插入2 次删除
  1. 57 2
      AppStart/Timer/RedPackageHelper.cs
  2. 2 0
      Startup.cs

+ 57 - 2
AppStart/Timer/RedPackageHelper.cs

@@ -48,12 +48,12 @@ public class RedPackageHelper
                             list.Add(0.88M);
                             TotalPrize -= 0.88M;
                         }
-                        for (int i = 0; i < 100; i++)
+                        for (int i = 0; i < 300; i++)
                         {
                             if (TotalPrize > 0)
                             {
                                 int BigPrize = function.get_Random(1, 300);
-                                decimal PrizeAmt = function.get_Random(88, 4000) / 100;
+                                decimal PrizeAmt = (decimal)function.get_Random(88, 400) / 100M;
                                 if (TotalPrize > PrizeAmt)
                                 {
                                     list[BigPrize] += PrizeAmt;
@@ -92,4 +92,59 @@ public class RedPackageHelper
             Thread.Sleep(60000);
         }
     }
+
+
+
+
+
+    public void StartStatTop10()
+    {
+        Thread th = new Thread(StartStatTop10Do);
+        th.IsBackground = true;
+        th.Start();
+    }
+
+    private void StartStatTop10Do()
+    {
+        while (true)
+        {
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            OtherMySqlConn.op("delete from ActivityRedPackageTop10");
+            using (WebCMSEntities db = new WebCMSEntities())
+            {
+                DataTable dt = OtherMySqlConn.dtable("select UserId,sum(PrizeAmt) from ActivityRedPackageJoins group by UserId order by sum(PrizeAmt) desc");
+                int index = 0;
+                foreach (DataRow dr in dt.Rows)
+                {
+                    index += 1;
+                    int UserId = int.Parse(dr["UserId"].ToString());
+                    decimal PrizeAmt = decimal.Parse(dr[1].ToString());
+                    db.ActivityRedPackageTop10.Add(new ActivityRedPackageTop10()
+                    {
+                        Sort = index,
+                        UserId = UserId,
+                        PrizeAmt = PrizeAmt,
+                        Kind = 1,
+                    });
+                }
+                dt = OtherMySqlConn.dtable("select UserId,count(Id) from ActivityRedPackageJoins group by UserId order by count(Id) desc");
+                index = 0;
+                foreach (DataRow dr in dt.Rows)
+                {
+                    index += 1;
+                    int UserId = int.Parse(dr["UserId"].ToString());
+                    int PrizeCount = int.Parse(dr[1].ToString());
+                    db.ActivityRedPackageTop10.Add(new ActivityRedPackageTop10()
+                    {
+                        Sort = index,
+                        UserId = UserId,
+                        TimeNum = PrizeCount,
+                        Kind = 2,
+                    });
+                }
+                db.SaveChanges();
+            }
+            Thread.Sleep(60000);
+        }
+    }
 }

+ 2 - 0
Startup.cs

@@ -233,6 +233,8 @@ namespace MySystem
             //必须打开的
 
 
+            // RedPackageHelper.Instance.Start();
+            RedPackageHelper.Instance.StartStatTop10();
             // StatService.Instance.StatUserLevel();
             // StatService.Instance.StartEverDay("2022-05-11");
             // ProfitHelper.Instance.StatProfit("202204"); //统计分润