Explorar o código

调整商户型创客先关数据结构

lichunlei %!s(int64=3) %!d(string=hai) anos
pai
achega
1fbd7cdc17

+ 51 - 3
AppStart/Helper/StatService.cs

@@ -284,7 +284,7 @@ namespace MySystem
                     //     otherInfo.PrizeFlag1 = 1;
                     //     db.SaveChanges();
                     string ParentNav = "";
-                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId);
+                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
                     if (user != null)
                     {
                         int GetUserId = user.Id;
@@ -623,7 +623,7 @@ namespace MySystem
                             //     otherInfo.PrizeFlag2 = 1;
                             //     db.SaveChanges();
                                 // 从机具所属人上级开始分开机奖励
-                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId);
+                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
                                 if (user != null)
                                 {
                                     if (!string.IsNullOrEmpty(user.ParentNav))
@@ -980,11 +980,11 @@ namespace MySystem
         }
         public void StatTradeAmountEverDay(object sender)
         {
+            string date = sender.ToString();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
             WebCMSEntities db = new WebCMSEntities();
             try
             {
-                string date = sender.ToString();
                 string TradeDate = date.Replace("-", "");
                 string TradeMonth = TradeDate.Substring(0, 6);
                 string start = date + " 00:00:00";
@@ -1107,6 +1107,8 @@ namespace MySystem
             }
             db.Dispose();
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+
+            StatMerchantTrade(date);
         }
 
         public void StatTradeAmountEverDaySum()
@@ -1179,5 +1181,51 @@ namespace MySystem
             // OtherMySqlConn.connstr = "";
             // function.WritePage("/html/", "1.html", html);
         }
+
+
+        //统计商户交易额
+        private void StatMerchantTrade(string date)
+        {
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
+            // WebCMSEntities db = new WebCMSEntities();
+            try
+            {
+                string start = date + " 00:00:00";
+                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                OtherMySqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb");
+                RedisDbconn.Instance.Clear("PosMerchantAmount:*");
+                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "").Substring(0, 6)); //商户当月交易
+                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "")); //商户当日交易
+                // foreach (DataRow selfDr in selfdt.Rows)
+                // {
+                //     int BrandId = int.Parse(selfDr["BrandId"].ToString());
+                //     int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
+                //     string TradeDate = selfDr["TradeDate"].ToString();
+                //     TradeDate = TradeDate.Replace("-", "");
+                //     string TradeMonth = TradeDate.Substring(0, 6);
+                //     decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
+                //     PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
+                //     if (merStat == null)
+                //     {
+                //         merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
+                //         {
+                //             MerchantId = MerchantId,
+                //             TradeMonth = TradeMonth,
+                //             TradeDate = TradeDate,
+                //             BrandId = BrandId,
+                //         }).Entity;
+                //         db.SaveChanges();
+                //     }
+                //     merStat.TradeAmount += TradeAmount;
+                //     db.SaveChanges();                    
+                // }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
+            }
+            // db.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
+        }
     }
 }

+ 1 - 1
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -137,7 +137,7 @@ namespace MySystem
                                             HelpMonthCount = 0, //扶持第几个月
                                             MerBuddyType = user.MerchantType, //商户创客类型
                                             SnNo = trade.TradeSnNo, //渠道SN号
-                                                                    // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
+                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
                                             TradeSerialNo = trade.ChannelSerial, //交易流水号
                                             TradeAmount = TradeAmount, //交易金额
                                             BankCardType = BankCardType, //银行卡类型

+ 197 - 132
AppStart/Timer/TestHelper.cs

@@ -16,7 +16,7 @@ public class TestHelper
     
     public void Start()
     {
-        Thread th = new Thread(domerchantType);
+        Thread th = new Thread(StartEverDay);
         th.IsBackground = true;
         th.Start();
     }
@@ -95,148 +95,213 @@ public class TestHelper
         // db.Dispose();
     }
 
-    public void DoUsers(WebCMSEntities db, int uid)
+    // public void DoUsers(WebCMSEntities db, int uid)
+    // { 
+    //     Users user = db.Users.FirstOrDefault(m => m.Id == uid);
+    //     if (user != null)
+    //     {
+    //         string Mobile = function.CheckNull(user.Mobile);
+    //         if (!Mobile.Contains("*") && Mobile.Substring(0, 1) == "1" && Mobile.Length == 11)
+    //         {
+    //             string ParentNav = user.ParentNav;
+    //             if (!string.IsNullOrEmpty(ParentNav))
+    //             {
+    //                 string NewParentNav = "";
+    //                 int NewParentUserId = 1;
+    //                 string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+    //                 Array.Reverse(ParentNavList);
+    //                 int i = 0;
+    //                 foreach (string ParentId in ParentNavList)
+    //                 {
+    //                     int puid = int.Parse(ParentId);
+    //                     Users puser = db.Users.FirstOrDefault(m => m.Id == puid);
+    //                     if (puser != null)
+    //                     {
+    //                         Mobile = function.CheckNull(puser.Mobile);
+    //                         if (!Mobile.Contains("*") && Mobile.Substring(0, 1) == "1" && Mobile.Length == 11)
+    //                         {
+    //                             i += 1;
+    //                             NewParentNav = "," + ParentId + "," + NewParentNav;
+    //                             if (i == 1)
+    //                             {
+    //                                 NewParentUserId = puid;
+    //                             }
+    //                         }
+    //                     }
+    //                 }
+    //                 if (string.IsNullOrEmpty(NewParentNav))
+    //                 {
+    //                     NewParentNav = ",1,";
+    //                 }
+    //                 user.ParentNav = NewParentNav;
+    //                 user.ParentUserId = NewParentUserId;
+    //             }
+    //             else
+    //             {
+    //                 user.ParentNav = ",1,";
+    //                 user.ParentUserId = 1;
+    //             }
+    //             db.SaveChanges();
+    //         }
+    //     }
+    // }
+
+    private void domerchantType()
     { 
-        Users user = db.Users.FirstOrDefault(m => m.Id == uid);
-        if (user != null)
-        {
-            string Mobile = function.CheckNull(user.Mobile);
-            if (!Mobile.Contains("*") && Mobile.Substring(0, 1) == "1" && Mobile.Length == 11)
-            {
-                string ParentNav = user.ParentNav;
-                if (!string.IsNullOrEmpty(ParentNav))
-                {
-                    string NewParentNav = "";
-                    int NewParentUserId = 1;
-                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                    Array.Reverse(ParentNavList);
-                    int i = 0;
-                    foreach (string ParentId in ParentNavList)
-                    {
-                        int puid = int.Parse(ParentId);
-                        Users puser = db.Users.FirstOrDefault(m => m.Id == puid);
-                        if (puser != null)
-                        {
-                            Mobile = function.CheckNull(puser.Mobile);
-                            if (!Mobile.Contains("*") && Mobile.Substring(0, 1) == "1" && Mobile.Length == 11)
-                            {
-                                i += 1;
-                                NewParentNav = "," + ParentId + "," + NewParentNav;
-                                if (i == 1)
-                                {
-                                    NewParentUserId = puid;
-                                }
-                            }
-                        }
-                    }
-                    if (string.IsNullOrEmpty(NewParentNav))
-                    {
-                        NewParentNav = ",1,";
-                    }
-                    user.ParentNav = NewParentNav;
-                    user.ParentUserId = NewParentUserId;
-                }
-                else
-                {
-                    user.ParentNav = ",1,";
-                    user.ParentUserId = 1;
-                }
-                db.SaveChanges();
-            }
-        }
+        // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+        // OtherMySqlConn.op("update PosMerchantInfo set MerUserType=0");
+        // OtherMySqlConn.op("update Users set MerchantType=0");
+        // bool op = true;
+        // while (op)
+        // {
+        //     MySystem.SpModels.WebCMSEntities spdb = new MySystem.SpModels.WebCMSEntities();
+        //     WebCMSEntities db = new WebCMSEntities();
+        //     DateTime end = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
+        //     int startId = int.Parse(function.CheckInt(RedisDbconn.Instance.Get<string>("BindRecordId")));
+        //     List<MySystem.SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.Id > startId && m.CreateTime < end).OrderBy(m => m.Id).Take(200).ToList();
+        //     if (binds.Count > 0)
+        //     {
+        //         foreach (MySystem.SpModels.BindRecord bind in binds)
+        //         {
+        //             string Mobile = bind.MerNewSnNo;
+        //             string MerNo = bind.MerNo;
+        //             string BeforeNum = "";
+        //             string AfterNum = "";
+        //             if (Mobile.Contains("****") && Mobile.Length == 11)
+        //             {
+        //                 BeforeNum = Mobile.Substring(0, 3);
+        //                 AfterNum = Mobile.Substring(7);
+        //             }
+        //             string Name = bind.MerName;
+        //             if (bind.ProductType == "2")
+        //             {
+        //                 if (Name.Contains("-"))
+        //                 {
+        //                     Name = Name.Split('-')[1];
+        //                 }
+        //                 else if (Name.Contains("_"))
+        //                 {
+        //                     Name = Name.Split('_')[1];
+        //                 }
+        //             }
+        //             else if (bind.ProductType == "4")
+        //             {
+        //                 Name = bind.SeoTitle;
+        //             }
+        //             Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
+        //             if (user != null)
+        //             {
+        //                 PosMachinesTwo checkPos = db.PosMachinesTwo.FirstOrDefault(m => m.UserId == user.Id);
+        //                 if (checkPos == null)
+        //                 {
+        //                     MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new MachineForSnNo();
+        //                     PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
+        //                     if (pos != null)
+        //                     {
+        //                         pos.UserId = user.Id;
+        //                         user.MerchantType = 1;
+        //                         PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
+        //                         merchant.UserId = user.Id;
+        //                         merchant.MerUserType = 1;
+        //                         pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
+        //                         RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
+        //                         db.SaveChanges();
+        //                         RedisDbconn.Instance.Set("Users:" + user.Id, user);
+        //                         RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
+        //                     }
+        //                 }
+        //                 else
+        //                 { 
+        //                     int count = db.PosMachinesTwo.Count(m => m.UserId == user.Id);
+        //                     if (count == 1 && checkPos.UserId != checkPos.BuyUserId)
+        //                     { 
+        //                         user.MerchantType = 1;
+        //                         PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == checkPos.BindMerchantId) ?? new PosMerchantInfo();
+        //                         merchant.UserId = user.Id;
+        //                         merchant.MerUserType = 1;
+        //                         checkPos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
+        //                         RedisDbconn.Instance.Set("PosMachinesTwo:" + checkPos.Id, checkPos);
+        //                         db.SaveChanges();
+        //                         RedisDbconn.Instance.Set("Users:" + user.Id, user);
+        //                         RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
+        //                     }
+        //                 }
+        //             }
+        //             RedisDbconn.Instance.Set("BindRecordId", bind.Id.ToString());
+        //         }
+        //     }
+        //     else
+        //     {
+        //         op = false;
+        //     }
+        //     spdb.Dispose();
+        //     db.Dispose();
+        // }
+        // RedisDbconn.Instance.Clear("BindRecordId");
+
+        // DataTable dt = OtherMySqlConn.dtable("select PosSn,UserId from PosMachinesTwo where UserId in (select Id from Users where MerchantType=1);");
+        // foreach (DataRow dr in dt.Rows)
+        // {
+        //     string PosSn = dr["PosSn"].ToString();
+        //     string UserId = dr["UserId"].ToString();
+        //     OtherMySqlConn.op("update TradeRecord set UserId=" + UserId + " where SnNo='" + PosSn + "' and CreateDate>='2022-04-01 00:00:00'");
+        // }
+        // OtherMySqlConn.connstr = "";
+
+        // StatService.Instance.StartEverDay2();
     }
 
-    private void domerchantType()
+    public void StartEverDay()
     { 
         OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-        OtherMySqlConn.op("update PosMerchantInfo set MerUserType=0");
-        OtherMySqlConn.op("update Users set MerchantType=0");
-        OtherMySqlConn.connstr = "";
-        bool op = true;
-        while (op)
+        DateTime end = DateTime.Parse("2022-04-19 00:00:00");
+        DateTime check = DateTime.Parse("2022-03-11");
+        while (check <= end)
+        {
+            StatMerchantTrade(check.ToString("yyyy-MM-dd"));
+            check = check.AddDays(1);
+        }
+    }
+
+    private void StatMerchantTrade(string date)
+    {
+        function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
+        WebCMSEntities db = new WebCMSEntities();
+        try
         {
-            MySystem.SpModels.WebCMSEntities spdb = new MySystem.SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime end = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            int startId = int.Parse(function.CheckInt(RedisDbconn.Instance.Get<string>("BindRecordId")));
-            List<MySystem.SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.Id > startId && m.CreateTime < end).OrderBy(m => m.Id).Take(200).ToList();
-            if (binds.Count > 0)
+            DataTable selfdt = OtherMySqlConn.dtable("select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y-%m-%d') as TradeDate,sum(TradeAmount) as TradeAmount from TradeRecord group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y-%m-%d') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y-%m-%d')");
+            foreach (DataRow selfDr in selfdt.Rows)
             {
-                foreach (MySystem.SpModels.BindRecord bind in binds)
+                int BrandId = int.Parse(selfDr["BrandId"].ToString());
+                int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
+                string TradeDate = selfDr["TradeDate"].ToString();
+                TradeDate = TradeDate.Replace("-", "");
+                string TradeMonth = TradeDate.Substring(0, 6);
+                decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
+                PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
+                if (merStat == null)
                 {
-                    string Mobile = bind.MerNewSnNo;
-                    string MerNo = bind.MerNo;
-                    string BeforeNum = "";
-                    string AfterNum = "";
-                    if (Mobile.Contains("****") && Mobile.Length == 11)
-                    {
-                        BeforeNum = Mobile.Substring(0, 3);
-                        AfterNum = Mobile.Substring(7);
-                    }
-                    string Name = bind.MerName;
-                    if (bind.ProductType == "2")
+                    merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
                     {
-                        if (Name.Contains("-"))
-                        {
-                            Name = Name.Split('-')[1];
-                        }
-                        else if (Name.Contains("_"))
-                        {
-                            Name = Name.Split('_')[1];
-                        }
-                    }
-                    else if (bind.ProductType == "4")
-                    {
-                        Name = bind.SeoTitle;
-                    }
-                    Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
-                    if (user != null)
-                    {
-                        PosMachinesTwo checkPos = db.PosMachinesTwo.FirstOrDefault(m => m.UserId == user.Id);
-                        if (checkPos == null)
-                        {
-                            MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new MachineForSnNo();
-                            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
-                            if (pos != null)
-                            {
-                                pos.UserId = user.Id;
-                                user.MerchantType = 1;
-                                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PosMerchantInfo();
-                                merchant.UserId = user.Id;
-                                merchant.MerUserType = 1;
-                                pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                                RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                                db.SaveChanges();
-                                RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                            }
-                        }
-                        else
-                        { 
-                            int count = db.PosMachinesTwo.Count(m => m.UserId == user.Id);
-                            if (count == 1)
-                            { 
-                                user.MerchantType = 1;
-                                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PosMerchantInfo();
-                                merchant.MerUserType = 1;
-                                checkPos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                                RedisDbconn.Instance.Set("PosMachinesTwo:" + checkPos.Id, checkPos);
-                                db.SaveChanges();
-                                RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                            }
-                        }
-                    }
-                    RedisDbconn.Instance.Set("BindRecordId", bind.Id.ToString());
+                        MerchantId = MerchantId,
+                        TradeMonth = TradeMonth,
+                        TradeDate = TradeDate,
+                        BrandId = BrandId,
+                    }).Entity;
+                    db.SaveChanges();
                 }
+                merStat.TradeAmount += TradeAmount;
+                db.SaveChanges();
+                RedisDbconn.Instance.Clear("MerTotalAmount:" + MerchantId);
+                RedisDbconn.Instance.Clear("MerTotalAmount:" + MerchantId + ":" + TradeMonth); //商户当月交易
+                RedisDbconn.Instance.Clear("MerTotalAmount:" + MerchantId + ":" + TradeDate); //商户当日交易
             }
-            else
-            {
-                op = false;
-            }
-            spdb.Dispose();
-            db.Dispose();
-            RedisDbconn.Instance.Clear("BindRecordId");
         }
+        catch (Exception ex)
+        {
+            function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
+        }
+        db.Dispose();
+        function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
     }
 }

+ 17 - 5
Controllers/HomeController.cs

@@ -591,8 +591,8 @@ namespace MySystem.Controllers
                 }).Entity;
                 db.SaveChanges();
             }
-            machineData.BindCount = db.PosMachinesTwo.Count(m => m.UserId == uid && m.BrandId == kind && m.BindingState == 1);
-            machineData.UnBindCount = db.PosMachinesTwo.Count(m => m.UserId == uid && m.BrandId == kind && m.BindingState == 0);
+            machineData.BindCount = db.PosMachinesTwo.Count(m => (m.UserId == uid && m.BuyUserId == uid) && m.BrandId == kind && m.BindingState == 1);
+            machineData.UnBindCount = db.PosMachinesTwo.Count(m => (m.UserId == uid && m.BuyUserId == uid) && m.BrandId == kind && m.BindingState == 0);
             machineData.TotalMachineCount = machineData.BindCount + machineData.UnBindCount;
             db.SaveChanges();
             RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, machineData);
@@ -670,9 +670,21 @@ namespace MySystem.Controllers
 
         public string test()
         {
-
-            
-            return "ok";
+            string result = "";
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            DataTable dt = OtherMySqlConn.dtable("select PosSn,UserId from PosMachinesTwo where UserId in (select Id from Users where MerchantType=1);");
+            foreach (DataRow dr in dt.Rows)
+            {
+                string PosSn = dr["PosSn"].ToString();
+                string UserId = dr["UserId"].ToString();
+                DataTable subdt = OtherMySqlConn.dtable("select Id from TradeRecord where SnNo='" + PosSn + "' and CreateDate>='2022-04-01 00:00:00'");
+                foreach (DataRow subdr in subdt.Rows)
+                {
+                    result += "update TradeRecord set UserId=" + UserId + " where Id=" + subdr["Id"].ToString() + ";\n";
+                }
+            }
+            OtherMySqlConn.connstr = "";
+            return result;
         }
     }
 }

+ 23 - 0
Models/PosMerchantTradeSummay.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class PosMerchantTradeSummay
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int BrandId { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeDate { get; set; }
+        public string TradeMonth { get; set; }
+        public int MerchantId { get; set; }
+    }
+}

+ 47 - 0
Models/WebCMSEntities.cs

@@ -101,6 +101,7 @@ namespace MySystem.Models
         public virtual DbSet<PosMachinesTwo> PosMachinesTwo { get; set; }
         public virtual DbSet<PosMerchantInfo> PosMerchantInfo { get; set; }
         public virtual DbSet<PosMerchantOtherInfo> PosMerchantOtherInfo { get; set; }
+        public virtual DbSet<PosMerchantTradeSummay> PosMerchantTradeSummay { get; set; }
         public virtual DbSet<ProductComment> ProductComment { get; set; }
         public virtual DbSet<ProductCommentAgree> ProductCommentAgree { get; set; }
         public virtual DbSet<ProductFareAreas> ProductFareAreas { get; set; }
@@ -6803,6 +6804,52 @@ namespace MySystem.Models
                     .HasCollation("utf8_general_ci");
             });
 
+            modelBuilder.Entity<PosMerchantTradeSummay>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.MerchantId).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort).HasColumnType("int(11)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TradeAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.TradeDate)
+                    .HasColumnType("varchar(8)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.TradeMonth)
+                    .HasColumnType("varchar(6)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+            });
+
             modelBuilder.Entity<ProductComment>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");

+ 23 - 0
PxcModels/PosMerchantTradeSummay.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class PosMerchantTradeSummay
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int BrandId { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeDate { get; set; }
+        public string TradeMonth { get; set; }
+        public int MerchantId { get; set; }
+    }
+}

+ 47 - 0
PxcModels/WebCMSEntities.cs

@@ -101,6 +101,7 @@ namespace MySystem.PxcModels
         public virtual DbSet<PosMachinesTwo> PosMachinesTwo { get; set; }
         public virtual DbSet<PosMerchantInfo> PosMerchantInfo { get; set; }
         public virtual DbSet<PosMerchantOtherInfo> PosMerchantOtherInfo { get; set; }
+        public virtual DbSet<PosMerchantTradeSummay> PosMerchantTradeSummay { get; set; }
         public virtual DbSet<ProductComment> ProductComment { get; set; }
         public virtual DbSet<ProductCommentAgree> ProductCommentAgree { get; set; }
         public virtual DbSet<ProductFareAreas> ProductFareAreas { get; set; }
@@ -6803,6 +6804,52 @@ namespace MySystem.PxcModels
                     .HasCollation("utf8_general_ci");
             });
 
+            modelBuilder.Entity<PosMerchantTradeSummay>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.MerchantId).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort).HasColumnType("int(11)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TradeAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.TradeDate)
+                    .HasColumnType("varchar(8)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.TradeMonth)
+                    .HasColumnType("varchar(6)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+            });
+
             modelBuilder.Entity<ProductComment>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");

+ 13 - 12
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();
 
@@ -220,18 +220,19 @@ namespace MySystem
             // TradeStatTimer2.Instance.Start(); //交易统计
 
             //必须打开的
-            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            // TradeStatTimer.Instance.Start(); //交易统计
-            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            // RabbitMQClient.Instance.StartReceive("MakeReferenceQrCode");
-            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            // SycnSpTradeService.Instance.Start(); //同步SP交易数据
+            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
+            TradeStatTimer.Instance.Start(); //交易统计
+            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
+            RabbitMQClient.Instance.StartReceive("MakeReferenceQrCode");
+            SycnSpBindService.Instance.Start(); //同步SP绑定数据
+            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
+            SycnSpActiveService.Instance.Start(); //同步SP激活数据
+            SycnSpTradeService.Instance.Start(); //同步SP交易数据
             //必须打开的
 
+            // StatService.Instance.StartEverDay2();
             // ProfitHelper.Instance.StatProfit("202203"); //统计分润
-            TestHelper.Instance.Start();
+            // TestHelper.Instance.Start();
             // StatService.Instance.StartEverDay();
             // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
             // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");

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


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


+ 1 - 0
bin/Debug/netcoreapp3.0/log/执行商户交易额日志/2022/4/23/content.log

@@ -0,0 +1 @@
+2022-04-23 18:29:27.654

+ 88 - 0
bin/Debug/netcoreapp3.0/log/执行昨天交易额日志/2022/4/23/content.log

@@ -0,0 +1,88 @@
+2022-04-23 13:15:44.976
+2022-04-23 13:15:55.009
+
+
+2022-04-23 13:15:55.009
+2022-04-23 13:16:02.045
+
+
+2022-04-23 13:16:02.046
+2022-04-23 13:16:09.301
+
+
+2022-04-23 13:16:09.302
+2022-04-23 13:16:15.947
+
+
+2022-04-23 13:16:15.947
+2022-04-23 13:16:23.172
+
+
+2022-04-23 13:16:23.172
+2022-04-23 13:16:30.302
+
+
+2022-04-23 13:16:30.303
+2022-04-23 13:16:36.930
+
+
+2022-04-23 13:16:36.931
+2022-04-23 13:16:44.121
+
+
+2022-04-23 13:16:44.121
+2022-04-23 13:16:50.998
+
+
+2022-04-23 13:16:50.998
+2022-04-23 13:16:58.220
+
+
+2022-04-23 13:16:58.220
+2022-04-23 13:17:05.333
+
+
+2022-04-23 13:17:05.333
+2022-04-23 13:17:12.966
+
+
+2022-04-23 13:17:12.966
+2022-04-23 13:17:20.105
+
+
+2022-04-23 13:17:20.106
+2022-04-23 13:17:27.693
+
+
+2022-04-23 13:17:27.694
+2022-04-23 13:17:34.676
+
+
+2022-04-23 13:17:34.676
+2022-04-23 13:17:43.282
+
+
+2022-04-23 13:17:43.282
+2022-04-23 13:17:51.912
+
+
+2022-04-23 13:17:51.912
+2022-04-23 13:17:59.652
+
+
+2022-04-23 13:17:59.653
+2022-04-23 13:18:08.318
+
+
+2022-04-23 13:18:08.318
+2022-04-23 13:18:30.129
+
+
+2022-04-23 13:18:30.129
+2022-04-23 13:18:56.902
+
+
+2022-04-23 13:18:56.902
+2022-04-23 13:19:53.615
+
+

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


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


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

@@ -20,8 +20,8 @@
     "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": "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",
+    "RedisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
+    "TendisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",
     "AndroidAppVersion": "1.0.0",
     "OSSKey": "iL9dWgBunZRwGbHQ",

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


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


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


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