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

推荐奖励记录保存订单Id

lichunlei 3 жил өмнө
parent
commit
2193e3ae18

+ 6 - 4
AppStart/Helper/AlipayPayBack2Service.cs

@@ -184,12 +184,13 @@ namespace MySystem
                                         int ParentUserId = user.ParentUserId;
                                         int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
                                         int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+                                        function.WriteLog("MakerCode:" + user.MakerCode, "推荐下单奖励监控日志");
+                                        function.WriteLog("machineCount:" + machineCount, "推荐下单奖励监控日志");
+                                        function.WriteLog("ActiveCount:" + ActiveCount, "推荐下单奖励监控日志");
+                                        function.WriteLog("OrderId:" + OrderId, "推荐下单奖励监控日志");
                                         if (machineCount + ActiveCount >= 3)
                                         {
-                                            function.WriteLog("OrderId:" + OrderId, "推荐下单奖励监控日志");
-                                            function.WriteLog("order.Id:" + order.Id, "推荐下单奖励监控日志");
-                                            function.WriteLog("ParentUserId:" + ParentUserId, "推荐下单奖励监控日志");
-                                            function.WriteLog("order.UserId:" + order.UserId, "推荐下单奖励监控日志");
+                                            function.WriteLog("满足条件", "推荐下单奖励监控日志");
                                             function.WriteLog("\r\n\r\n", "推荐下单奖励监控日志");
                                             UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == ParentUserId);
                                             if (account == null)
@@ -222,6 +223,7 @@ namespace MySystem
                                                 AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
                                                 BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
                                                 AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                QueryCount = OrderId,
                                             }).Entity;
                                             db.SaveChanges();
                                             RedisDbconn.Instance.Set("UserAccount:" + ParentUserId, account);

+ 30 - 1
AppStart/Helper/StatService.cs

@@ -210,7 +210,36 @@ namespace MySystem
                 content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
                 content += "\"TradeAmount\":\"" + TradeAmount + "\"";
                 content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueue", content);                
+                RedisDbconn.Instance.AddList("TradeStatQueue", content);    
+                RedisDbconn.Instance.AddList("TradeStatQueue2", content);              
+            }
+        }
+
+        public void testStatTrade(string date)
+        {
+            string yesterday = date + " 00:00:00";
+            string today = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+            string TradeMonth = DateTime.Parse(date).ToString("yyyyMM");
+            string TradeDate = DateTime.Parse(date).ToString("yyyyMMdd");
+            DataTable dt = dbconn.dtable("select UserId,BrandId,MerchantId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,QrPayFlag");
+            foreach (DataRow dr in dt.Rows)
+            {
+                int UserId = int.Parse(dr["UserId"].ToString()); //创客ID
+                int BrandId = int.Parse(dr["BrandId"].ToString()); //品牌
+                int MerchantId = int.Parse(dr["MerchantId"].ToString()); //商户Id
+                int BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
+                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
+                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
+                string content = "{";
+                content += "\"DateString\":\"" + date + "\",";
+                content += "\"UserId\":\"" + UserId + "\",";
+                content += "\"BrandId\":\"" + BrandId + "\",";
+                content += "\"MerchantId\":\"" + MerchantId + "\",";
+                content += "\"BankCardType\":\"" + BankCardType + "\",";
+                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
+                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
+                content += "}";
+                RedisDbconn.Instance.AddList("TradeStatQueueTest", content);
             }
         }
 

+ 182 - 0
AppStart/Timer/TradeStatTimer2.cs

@@ -0,0 +1,182 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Linq;
+using Microsoft.Extensions.Hosting;
+using MySystem;
+using MySystem.PxcModels;
+using LitJson;
+using Library;
+
+public class TradeStatTimer2
+{
+    public readonly static TradeStatTimer2 Instance = new TradeStatTimer2();
+    private TradeStatTimer2()
+    {
+    }
+    
+    public void Start()
+    {
+        Thread th = new Thread(DoWorks);
+        th.IsBackground = true;
+        th.Start();
+    }
+
+    private void DoWorks()
+    {
+        while (true)
+        {
+            string content = RedisDbconn.Instance.RPop<string>("TradeStatQueueTest");
+            if (!string.IsNullOrEmpty(content))
+            {
+                JsonData jsonObj = JsonMapper.ToObject(content);
+                string DateString = jsonObj["DateString"].ToString();
+                int UserId = int.Parse(jsonObj["UserId"].ToString()); //创客ID
+                if (UserId == 9)
+                {
+                    string ss = "123";
+                }
+                int BrandId = int.Parse(jsonObj["BrandId"].ToString()); //品牌
+                int BankCardType = int.Parse(jsonObj["BankCardType"].ToString()); //卡类型
+                int MerchantId = int.Parse(jsonObj["MerchantId"].ToString()); //商户Id
+                int QrPayFlag = int.Parse(jsonObj["QrPayFlag"].ToString()); //云闪付
+                decimal TradeAmount = decimal.Parse(jsonObj["TradeAmount"].ToString()); //当日交易额
+                string TradeMonth = DateTime.Parse(DateString).ToString("yyyyMM");
+                string TradeDate = DateTime.Parse(DateString).ToString("yyyyMMdd");
+                WebCMSEntities db = new WebCMSEntities();
+                var tran = db.Database.BeginTransaction();
+                try
+                {
+                    PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new PosMerchantInfo();
+                    MachineForMerNo machineFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.KqMerNo) ?? new MachineForMerNo();
+                    PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineFor.SnId) ?? new PosMachinesTwo();
+                    int MerchantTypeUserId = int.Parse(function.CheckInt(pos.SeoTitle));
+                    if (MerchantTypeUserId > 0)
+                    {
+                        Users merchantUser = db.Users.FirstOrDefault(m => m.Id == MerchantTypeUserId && m.MerchantType == 1);
+                        if (merchantUser != null)
+                        {
+                            UserId = MerchantTypeUserId;
+                        }
+                    }
+                    Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
+                    if (user != null)
+                    {
+                        if (user.AuthFlag == 1)
+                        {
+                            UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.Sort == MerchantId && m.SeoTitle == "self");
+                            if (selfStat == null)
+                            {
+                                selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                {
+                                    UserId = UserId,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    BrandId = BrandId,
+                                    QueryCount = QrPayFlag,
+                                    Sort = MerchantId,
+                                    SeoTitle = "self",
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                            if (BankCardType == 0)
+                            { 
+                                selfStat.DirectDebitTradeAmt += TradeAmount;
+                            }
+                            else if (BankCardType == 1)
+                            {
+                                selfStat.DirectTradeAmt += TradeAmount;
+                            }
+                            db.SaveChanges();
+
+                            string ParentNav = user.ParentNav;
+                            if (UserId != pos.UserId)
+                            {
+                                user = db.Users.FirstOrDefault(m => m.Id == pos.UserId);
+                                if (user != null)
+                                {
+                                    ParentNav = user.ParentNav;
+                                    UserId = pos.UserId;
+                                }
+                            }
+                            if (!string.IsNullOrEmpty(ParentNav))
+                            {
+                                ParentNav += "," + UserId + ",";
+                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                foreach (string UserIdString in ParentNavList)
+                                {
+                                    int ParentUserId = int.Parse(UserIdString);
+                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == ParentUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.Sort == MerchantId && m.SeoTitle == "team");
+                                    if (teamStat == null)
+                                    {
+                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                        {
+                                            UserId = ParentUserId,
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            BrandId = BrandId,
+                                            QueryCount = QrPayFlag,
+                                            Sort = MerchantId,
+                                            SeoTitle = "team",
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    if (BankCardType == 0)
+                                    { 
+                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
+                                    }
+                                    else if (BankCardType == 1)
+                                    {
+                                        teamStat.NonDirectTradeAmt += TradeAmount;
+                                    }
+                                    db.SaveChanges();
+                                }
+                            }
+                        }
+                    }
+                    else
+                    { 
+                        int ParentUserId = 1;
+                        UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == ParentUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.Sort == MerchantId && m.SeoTitle == "team");
+                        if (teamStat == null)
+                        {
+                            teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                            {
+                                UserId = ParentUserId,
+                                TradeMonth = TradeMonth,
+                                TradeDate = TradeDate,
+                                BrandId = BrandId,
+                                QueryCount = QrPayFlag,
+                                Sort = MerchantId,
+                                SeoTitle = "team",
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        if (BankCardType == 0)
+                        { 
+                            teamStat.NonDirectDebitTradeAmt += TradeAmount;
+                        }
+                        else if (BankCardType == 1)
+                        {
+                            teamStat.NonDirectTradeAmt += TradeAmount;
+                        }
+                        db.SaveChanges();
+                    }
+                    tran.Commit();
+                }
+                catch (Exception ex)
+                {
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + content + "\n" + ex.ToString(), "统计交易额异常2");
+                    tran.Rollback();
+                }
+                tran.Dispose();
+                db.Dispose();
+            }
+            else
+            {
+                Thread.Sleep(5000);
+            }
+        }
+    }
+}

+ 1 - 21
Controllers/HomeController.cs

@@ -495,27 +495,7 @@ namespace MySystem.Controllers
 
         public string test()
         {
-            // StatService.Instance.dosomething2("2022-03-31");
-            // StatService.Instance.dosomething2("2022-03-30");
-            // StatService.Instance.dosomething2("2022-03-29");
-            // StatService.Instance.dosomething2("2022-03-28");
-            // StatService.Instance.dosomething2("2022-03-27");
-            // StatService.Instance.dosomething2("2022-03-26");
-            // StatService.Instance.dosomething2("2022-03-25");
-            // StatService.Instance.dosomething2("2022-03-24");
-            // StatService.Instance.dosomething2("2022-03-23");
-            // StatService.Instance.dosomething2("2022-03-22");
-            // StatService.Instance.dosomething2("2022-03-21");
-            // StatService.Instance.dosomething2("2022-03-20");
-            // StatService.Instance.dosomething2("2022-03-19");
-            // StatService.Instance.dosomething2("2022-03-18");
-            // StatService.Instance.dosomething2("2022-03-17");
-            // StatService.Instance.dosomething2("2022-03-16");
-            // StatService.Instance.dosomething2("2022-03-15");
-            // StatService.Instance.dosomething2("2022-03-14");
-            // StatService.Instance.dosomething2("2022-03-13");
-            // StatService.Instance.dosomething2("2022-03-12");
-            // StatService.Instance.dosomething2("2022-03-11");
+            StatService.Instance.testStatTrade("2022-04-04");
             return "ok";
         }
     }

+ 1 - 0
Startup.cs

@@ -218,6 +218,7 @@ namespace MySystem
 
             // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
             // TradeStatTimer.Instance.Start(); //交易统计
+            TradeStatTimer2.Instance.Start(); //交易统计
             // ProfitHelper.Instance.StatProfit("202203");
 
             //当前必须打开的

+ 4 - 4
appsettings.json

@@ -17,10 +17,10 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=47.108.229.115;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "47.108.207.184:6379,password=skb@redis2022,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
+    "SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "Pxc1SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "SpSqlConnStr": "server=localhost;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
+    "RedisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
     "TendisConnStr": "47.108.207.184:51002,password=HDlNs1ZpG5iR9D9I,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",
     "AndroidAppVersion": "1.0.0",

BIN
bin/Debug/netcoreapp3.0/MySystem.dll


BIN
bin/Debug/netcoreapp3.0/MySystem.pdb


+ 4 - 4
bin/Debug/netcoreapp3.0/appsettings.json

@@ -17,10 +17,10 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=47.108.229.115;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "47.108.207.184:6379,password=skb@redis2022,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
+    "SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "Pxc1SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "SpSqlConnStr": "server=localhost;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
+    "RedisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
     "TendisConnStr": "47.108.207.184:51002,password=HDlNs1ZpG5iR9D9I,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",
     "AndroidAppVersion": "1.0.0",

BIN
bin/release/netcoreapp3.0/MySystem.dll


BIN
bin/release/netcoreapp3.0/MySystem.pdb


+ 3 - 3
bin/release/netcoreapp3.0/appsettings.json

@@ -17,9 +17,9 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=localhost;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
+    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "SpSqlConnStr": "server=47.108.229.115;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
     "RedisConnStr": "47.108.207.184:6379,password=skb@redis2022,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
     "TendisConnStr": "47.108.207.184:51002,password=HDlNs1ZpG5iR9D9I,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",

BIN
obj/Debug/netcoreapp3.0/MySystem.dll


BIN
obj/Debug/netcoreapp3.0/MySystem.pdb


BIN
obj/release/netcoreapp3.0/MySystem.dll


BIN
obj/release/netcoreapp3.0/MySystem.pdb