Browse Source

合并大盟主奖励

lichunlei 3 years ago
parent
commit
907d246716

+ 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));
+                        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 += 5;
+                            account.TotalAmount += 5;
+                            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();
+                        }
+                        db.Dispose();
+                    }
+                    catch (Exception ex)
+                    {
+                        function.WriteLog(DateTime.Now.ToString() + "\r\n" + ex.ToString(), "大盟主奖励异常");
+                    }
+                    Thread.Sleep(100);
+                }
+                else
+                {
+                    Thread.Sleep(5000);
+                }
+            }
+        }
+    }
+}

+ 5 - 0
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -255,6 +255,11 @@ namespace MySystem
                                                 db.SaveChanges();
                                                 RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
                                             }
+                                            //发放大盟主奖励
+                                            if(pos.LeaderUserId > 0)
+                                            {
+                                                RedisDbconn.Instance.AddList("LeaderPrizeQueue", pos.Id);
+                                            }
                                         }
                                         // 立刷60天内刷满10000,再返40
                                         if (pos.BrandId == 6 && pos.ActivationState == 1 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))

+ 18 - 17
Startup.cs

@@ -90,9 +90,9 @@ namespace MySystem
             // services.AddHostedService<PopService>();
             // services.AddHostedService<SycnSpTimer>(); //同步SP数据
 
-            // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
+            services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
+            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
+            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
 
             //services.AddHttpContextAccessor();
 
@@ -190,24 +190,25 @@ namespace MySystem
             // TradeStatTimer2.Instance.Start(); //交易统计
 
             //必须打开的
-            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            // TradeStatTimer.Instance.Start(); //交易统计
-            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            // MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            // SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // RedPackageHelper.Instance.Start(); //每天生成300个红包
-            // RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
-            // RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
+            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
+            TradeStatTimer.Instance.Start(); //交易统计
+            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
+            MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
+            SycnSpBindService.Instance.Start(); //同步SP绑定数据
+            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
+            SycnSpActiveService.Instance.Start(); //同步SP激活数据
+            SycnSpTradeService.Instance.Start(); //同步SP交易数据
+            RedPackageHelper.Instance.Start(); //每天生成300个红包
+            RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
+            RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
             //必须打开的
 
             MessageCenterService.Instance.Start(); // 消息队列
             // StatService.Instance.StartEverDay("2022-06-18");
-            // StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            // StatService.Instance.StatProfit(); //实时统计创客收益
+            StatService.Instance.StartPosActNum(); //实时统计激活数
+            StatService.Instance.StartNewUserNum(); //实时统计新增创客数
+            StatService.Instance.StatProfit(); //实时统计创客收益
+            LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
             // StatService.Instance.StartEverDayV2("");
             // RedPackageHelper.Instance.Start();
             // StatService.Instance.StatUserLevel();