瀏覽代碼

添加激活奖励队列

lichunlei 2 年之前
父節點
當前提交
9deb05e5d0
共有 2 個文件被更改,包括 73 次插入0 次删除
  1. 72 0
      AppStart/Helper/ActRewardService.cs
  2. 1 0
      Startup.cs

+ 72 - 0
AppStart/Helper/ActRewardService.cs

@@ -0,0 +1,72 @@
+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 ActRewardService
+    {
+        public readonly static ActRewardService Instance = new ActRewardService();
+        private ActRewardService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(dosomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void dosomething()
+        {
+            while (true)
+            {
+                string data = RedisDbconn.Instance.RPop<string>("ActRewardQueue");
+                if (!string.IsNullOrEmpty(data))
+                {
+                    try
+                    {
+                        JsonData jsonOj = JsonMapper.ToObject(data);
+                        int PosId = int.Parse(function.CheckInt(jsonOj["PosId"].ToString()));
+                        int UserId = int.Parse(function.CheckInt(jsonOj["UserId"].ToString()));
+                        decimal RewardAmount = decimal.Parse(function.CheckInt(jsonOj["RewardAmount"].ToString()));
+                        int ChangeType = int.Parse(function.CheckInt(jsonOj["ChangeType"].ToString()));
+                        WebCMSEntities db = new WebCMSEntities();
+                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == PosId) ?? new PosMachinesTwo();
+                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
+                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                        int BuyTopUserId = 0;
+                        string ParentNav = user.ParentNav;
+                        if (!string.IsNullOrEmpty(ParentNav))
+                        {
+                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                            if (ParentNavList.Length > 1)
+                            {
+                                BuyTopUserId = int.Parse(ParentNavList[1]);
+                            }
+                            else if (ParentNavList.Length == 1)
+                            {
+                                BuyTopUserId = int.Parse(ParentNavList[0]);
+                            }
+                        }
+                        StatService.Instance.doActiveReward(db, merchant, pos, user.Id, user.ParentNav, BuyTopUserId, RewardAmount, ChangeType);
+                        db.Dispose();
+                    }
+                    catch (Exception ex)
+                    {                        
+                        function.WriteLog(DateTime.Now.ToString() + "\r\n" + ex.ToString(), "设置激活奖励异常");
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(500);
+                }
+            }
+        }
+    }
+}

+ 1 - 0
Startup.cs

@@ -196,6 +196,7 @@ namespace MySystem
             RedPackageV2Helper.Instance.Start(); //每天生成红包
             RedPackageV2Helper.Instance.StartStatTop10(); //红包活动统计排行
             RedPackageV2Helper.Instance.StartSendPrize(); //红包活动发奖
+            ActRewardService.Instance.Start(); //发放激活奖励
 
             MessageCenterService.Instance.Start(); // 消息队列
             SetFeeFlagService.Instance.Start(); //118天提前通知创客费率调升消息