Эх сурвалжийг харах

增加大盟主奖励逻辑

lichunlei 3 жил өмнө
parent
commit
5b7ff60762

+ 4 - 0
AppStart/Helper/AlipayPayBack2Service.cs

@@ -131,6 +131,10 @@ namespace MySystem
                                         item.CreateDate = DateTime.Now;
                                         item.UserId = order.UserId;
                                         item.UpdateDate = DateTime.Now.AddDays(180);
+                                        if (pro.ProductId == 13)
+                                        {
+                                            item.LeaderUserId = order.UserId;
+                                        }
                                         Codes += item.ExchangeCode + ",";
                                     }
                                 }

+ 90 - 0
AppStart/Helper/LeaderPrizeService.cs

@@ -0,0 +1,90 @@
+using System;
+using System.Collections.Generic;
+using Library;
+using LitJson;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using MySystem.PxcModels;
+
+namespace MySystem
+{
+    public class LeaderPrizeService
+    {
+        public readonly static LeaderPrizeService Instance = new LeaderPrizeService();
+        private LeaderPrizeService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(dosomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void dosomething()
+        {
+            while (true)
+            {
+                string data = RedisDbconn.Instance.RPop<string>("LeaderPrizeQueue");
+                if (!string.IsNullOrEmpty(data))
+                {
+                    try
+                    {
+                        int PosId = int.Parse(function.CheckInt(data));
+                        using (WebCMSEntities db = new WebCMSEntities())
+                        {
+                            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == PosId);
+                            if (pos != null)
+                            {
+                                int LeaderUserId = pos.LeaderUserId;
+                                UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == LeaderUserId);
+                                if (account == null)
+                                {
+                                    account = db.UserAccount.Add(new UserAccount()
+                                    {
+                                        Id = LeaderUserId,
+                                        UserId = LeaderUserId,
+                                    }).Entity;
+                                    db.SaveChanges();
+                                }
+                                decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                                decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                                decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                                account.BalanceAmount += 100;
+                                account.TotalAmount += 100;
+                                decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                                decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                                decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                                UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    UpdateDate = DateTime.Now,
+                                    UserId = LeaderUserId, //创客
+                                    ChangeType = 116, //变动类型
+                                    ChangeAmount = 5, //变更金额
+                                    BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                    AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                    BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                    AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                    BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                    AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                    QueryCount = PosId,
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        function.WriteLog(DateTime.Now.ToString() + "\r\n" + ex.ToString(), "大盟主奖励异常");
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(5000);
+                }
+            }
+        }
+    }
+}

+ 1 - 0
Startup.cs

@@ -201,6 +201,7 @@ namespace MySystem
             RedPackageHelper.Instance.Start(); //每天生成300个红包
             RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
             RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
+            LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
             //必须打开的
 
             // StatService.Instance.StartEverDay("2022-06-18");