Browse Source

修改开店宝交易统计入库条件

lichunlei 2 years ago
parent
commit
824b2be6a4

+ 16 - 16
AppStart/Helper/StatService.cs

@@ -1179,24 +1179,24 @@ namespace MySystem
         public void StartEverDayV2(string date)
         {
             OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // Thread th = new Thread(StatTradeAmountEverDay);
-            // th.IsBackground = true;
-            // th.Start(date);
-            Thread th = new Thread(StartEverDayV2Do);
+            Thread th = new Thread(StatTradeAmountEverDayV2);
             th.IsBackground = true;
-            th.Start();
-        }
-        public void StartEverDayV2Do()
-        {
-            DateTime end = DateTime.Parse("2022-06-15 00:00:00");
-            DateTime check = DateTime.Parse("2022-06-01");
-            while (check <= end)
-            {
-                StatTradeAmountEverDayV2(check.ToString("yyyy-MM-dd"));
-                Thread.Sleep(1000);
-                check = check.AddDays(1);
-            }
+            th.Start(date);
+            // Thread th = new Thread(StartEverDayV2Do);
+            // th.IsBackground = true;
+            // th.Start();
         }
+        // public void StartEverDayV2Do()
+        // {
+        //     DateTime end = DateTime.Parse("2022-06-15 00:00:00");
+        //     DateTime check = DateTime.Parse("2022-06-01");
+        //     while (check <= end)
+        //     {
+        //         StatTradeAmountEverDayV2(check.ToString("yyyy-MM-dd"));
+        //         Thread.Sleep(1000);
+        //         check = check.AddDays(1);
+        //     }
+        // }
         public void StatTradeAmountEverDayV2(object sender)
         {
             string date = sender.ToString();

+ 189 - 0
AppStart/Helper/StatServiceTmp.cs

@@ -0,0 +1,189 @@
+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 StatServiceTmp
+    {
+        public readonly static StatServiceTmp Instance = new StatServiceTmp();
+        private StatServiceTmp()
+        { }
+
+
+        public void Start()
+        {
+            Thread th = new Thread(StartEverDay);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        // 每天统计头一天的交易额
+        public void StartEverDay()
+        {
+            string chk = function.ReadInstance("/log/临时重置盛付通交易额.txt");
+            if(string.IsNullOrEmpty(chk))
+            {
+                function.WritePage("/log/", "临时重置盛付通交易额.txt", DateTime.Now.ToString());
+                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+                DateTime end = DateTime.Parse("2022-06-23 00:00:00");
+                DateTime check = DateTime.Parse("2022-06-14");
+                while (check <= end)
+                {
+                    StatTradeAmountEverDay(check.ToString("yyyy-MM-dd"));
+                    check = check.AddDays(1);
+                    Thread.Sleep(1000);
+                }
+            }
+        }
+        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 TradeDate = date.Replace("-", "");
+                string TradeMonth = TradeDate.Substring(0, 6);
+                string start = date + " 00:00:00";
+                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                string startId = "0", endId = "9999999999";
+                List<string> uids = new List<string>();
+                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
+                if (startDt.Rows.Count > 0)
+                {
+                    startId = startDt.Rows[0][0].ToString();
+                }
+                function.WriteLog(startId + "\n\n", "临时重置交易额日志");
+                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and BrandId=7)");
+                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "临时重置交易额日志");
+                foreach (DataRow userDr in userDt.Rows)
+                {
+                    int UserId = int.Parse(userDr["Id"].ToString());
+                    string ParentNav = userDr["ParentNav"].ToString();
+                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "临时重置交易额日志");
+                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " and BrandId=7 group by BrandId,BankCardType,QrPayFlag");
+                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "临时重置交易额日志");
+                    OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + UserId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and BrandId=7 and SeoTitle='self'");
+                    foreach (DataRow selfDr in selfdt.Rows)
+                    {
+                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
+                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
+                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
+                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
+                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
+                        if (selfStat == null)
+                        {
+                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                            {
+                                UserId = UserId,
+                                TradeMonth = TradeMonth,
+                                TradeDate = TradeDate,
+                                BrandId = BrandId,
+                                QueryCount = QrPayFlag,
+                                SeoTitle = "self",
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        if (BankCardType == 0)
+                        {
+                            selfStat.DirectDebitTradeAmt += TradeAmount;
+                        }
+                        else if (BankCardType != 0)
+                        {
+                            selfStat.DirectTradeAmt += TradeAmount;
+                        }
+                        db.SaveChanges();
+                    }
+                    if (!string.IsNullOrEmpty(ParentNav))
+                    {
+                        ParentNav += "," + UserId + ",";
+                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                        foreach (string NavUserIdString in ParentNavList)
+                        {
+                            if (!uids.Contains(NavUserIdString + start))
+                            {
+                                uids.Add(NavUserIdString + start);
+                                int NavUserId = int.Parse(NavUserIdString);
+                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "临时重置交易额日志");
+                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") and BrandId=7 group by BrandId,BankCardType,QrPayFlag");
+                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "临时重置交易额日志");
+                                OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + NavUserId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and BrandId=7 and SeoTitle='team'");
+                                foreach (DataRow teamDr in teamDt.Rows)
+                                {
+                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
+                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
+                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
+                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
+                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
+                                    if (teamStat == null)
+                                    {
+                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                        {
+                                            UserId = NavUserId,
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            BrandId = BrandId,
+                                            QueryCount = QrPayFlag,
+                                            SeoTitle = "team",
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    if (BankCardType == 0)
+                                    {
+                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
+                                    }
+                                    else if (BankCardType != 0)
+                                    {
+                                        teamStat.NonDirectTradeAmt += 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", "临时重置交易额日志");
+
+            StatMerchantTrade(date);
+        }
+
+        
+
+        //统计商户交易额
+        private void StatMerchantTrade(string date)
+        {
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
+            try
+            {
+                string TradeDate = date.Replace("-", "");
+                string start = date + " 00:00:00";
+                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                OtherMySqlConn.op("delete from PosMerchantTradeSummay where TradeDate='" + TradeDate + "' and BrandId=7");
+                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 + "' and BrandId=7 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("-", "")); //商户当日交易
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "临时重置商户的交易额");
+            }
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "临时重置商户交易额日志");
+        }
+
+
+
+    }
+}

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

@@ -113,13 +113,13 @@ namespace MySystem
                                         }
                                         else if (pos.BrandId == 2)
                                         {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
+                                            if (trade.TradeType == "DEBIT_BY_CARD")
                                             {
-                                                BankCardType = 1;
+                                                BankCardType = 0;
                                             }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
+                                            else
                                             {
-                                                BankCardType = 0;
+                                                BankCardType = 1;
                                             }
                                             if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
                                         }

+ 1 - 214
Controllers/HomeController.cs

@@ -948,219 +948,6 @@ namespace MySystem.Controllers
                 }
             }
         }
-    
-    
-        // 重置盛付通多余交易的创客
-        public string resetsftmore()
-        {
-            List<int> uids = new List<int>();
-            uids.Add(124462);
-            uids.Add(2502);
-            uids.Add(3745);
-            uids.Add(4328);
-            uids.Add(121845);
-            uids.Add(130602);
-            uids.Add(1056);
-            uids.Add(121168);
-            uids.Add(13411);
-            uids.Add(130577);
-            uids.Add(236);
-            uids.Add(3885);
-            uids.Add(130952);
-            uids.Add(59192);
-            uids.Add(130921);
-            uids.Add(123676);
-            uids.Add(130455);
-            uids.Add(123782);
-            uids.Add(131043);
-            uids.Add(129545);
-            uids.Add(125816);
-            uids.Add(54293);
-            uids.Add(122904);
-            uids.Add(128513);
-            uids.Add(6764);
-            uids.Add(23075);
-            uids.Add(121415);
-            uids.Add(128049);
-            uids.Add(200);
-            uids.Add(23459);
-            uids.Add(131113);
-            uids.Add(70313);
-            uids.Add(131085);
-            uids.Add(122361);
-            uids.Add(123537);
-            uids.Add(128360);
-            uids.Add(128691);
-            uids.Add(9702);
-            uids.Add(121749);
-            uids.Add(128086);
-            uids.Add(130933);
-            uids.Add(131134);
-            uids.Add(54550);
-            uids.Add(122043);
-            uids.Add(1893);
-            uids.Add(120965);
-            uids.Add(4696);
-            uids.Add(122211);
-            uids.Add(129466);
-            uids.Add(131275);
-            uids.Add(51704);
-            uids.Add(99807);
-            uids.Add(124154);
-            uids.Add(203);
-            uids.Add(36608);
-            uids.Add(131126);
-            uids.Add(75269);
-            uids.Add(129565);
-            uids.Add(131130);
-            uids.Add(33532);
-            uids.Add(130144);
-            uids.Add(131316);
-            uids.Add(131039);
-            uids.Add(130206);
-            uids.Add(121364);
-            uids.Add(32898);
-            uids.Add(120664);
-            uids.Add(131229);
-            uids.Add(76236);
-            uids.Add(124642);
-            uids.Add(126131);
-            uids.Add(127858);
-            uids.Add(515);
-            uids.Add(40717);
-            uids.Add(129457);
-            uids.Add(127543);
-            uids.Add(120614);
-            uids.Add(126802);
-            uids.Add(191);
-            List<int> mids = new List<int>();
-            mids.Add(23501);
-            mids.Add(28905);
-            mids.Add(28913);
-            mids.Add(29376);
-            mids.Add(29397);
-            mids.Add(29788);
-            mids.Add(29837);
-            mids.Add(29886);
-            mids.Add(29738);
-            mids.Add(29923);
-            mids.Add(29953);
-            mids.Add(29978);
-            mids.Add(29985);
-            mids.Add(29968);
-            mids.Add(30036);
-            mids.Add(30054);
-            mids.Add(30170);
-            mids.Add(30224);
-            mids.Add(30296);
-            mids.Add(30353);
-            mids.Add(30352);
-            mids.Add(29457);
-            mids.Add(30332);
-            mids.Add(30406);
-            mids.Add(30058);
-            mids.Add(30434);
-            mids.Add(30454);
-            mids.Add(30417);
-            mids.Add(30468);
-            mids.Add(30483);
-            mids.Add(30486);
-            mids.Add(30522);
-            mids.Add(30530);
-            mids.Add(30447);
-            mids.Add(30583);
-            mids.Add(30161);
-            mids.Add(30630);
-            mids.Add(30649);
-            mids.Add(30593);
-            mids.Add(30702);
-            mids.Add(30707);
-            mids.Add(30711);
-            mids.Add(30700);
-            mids.Add(30752);
-            mids.Add(30774);
-            mids.Add(30646);
-            mids.Add(30806);
-            mids.Add(30269);
-            mids.Add(30819);
-            mids.Add(30824);
-            mids.Add(30836);
-            mids.Add(30796);
-            mids.Add(30883);
-            mids.Add(30900);
-            mids.Add(30921);
-            mids.Add(30925);
-            mids.Add(29449);
-            mids.Add(30948);
-            mids.Add(30967);
-            mids.Add(30742);
-            mids.Add(30658);
-            mids.Add(31033);
-            mids.Add(31032);
-            mids.Add(31055);
-            mids.Add(30557);
-            mids.Add(31102);
-            mids.Add(31116);
-            mids.Add(30680);
-            mids.Add(31140);
-            mids.Add(31155);
-            mids.Add(30735);
-            mids.Add(31171);
-            mids.Add(31223);
-            mids.Add(31170);
-            mids.Add(31274);
-            mids.Add(31284);
-            mids.Add(31303);
-            mids.Add(31317);
-            mids.Add(31290);
-            mids.Add(31353);
-            mids.Add(31372);
-            mids.Add(31358);
-            mids.Add(31373);
-            mids.Add(31424);
-            mids.Add(31217);
-            mids.Add(31462);
-            mids.Add(31466);
-            mids.Add(31463);
-            mids.Add(31482);
-            mids.Add(30246);
-            mids.Add(29440);
-            mids.Add(30474);
-            mids.Add(30655);
-            mids.Add(31533);
-            mids.Add(31534);
-            mids.Add(31589);
-            mids.Add(30265);
-            mids.Add(31047);
-            mids.Add(31643);
-            mids.Add(31670);
-            mids.Add(31688);
-            List<string> dates = new List<string>();
-            dates.Add("2022-06-14 00:00:00,2022-06-15 00:00:00");
-            dates.Add("2022-06-15 00:00:00,2022-06-16 00:00:00");
-            dates.Add("2022-06-16 00:00:00,2022-06-17 00:00:00");
-            dates.Add("2022-06-17 00:00:00,2022-06-18 00:00:00");
-            dates.Add("2022-06-18 00:00:00,2022-06-19 00:00:00");
-            dates.Add("2022-06-19 00:00:00,2022-06-20 00:00:00");
-            dates.Add("2022-06-20 00:00:00,2022-06-21 00:00:00");
-            foreach(int UserId in uids)
-            {
-                foreach(string date in dates)
-                {
-                    string[] datelist = date.Split(',');
-                    RedisDbconn.Instance.AddList("ResetUserTradeQueue", UserId + "#cut#" + datelist[0] + "#cut#" + datelist[1] + "#cut#7");
-                }
-            }
-            foreach(int MerchantId in mids)
-            {
-                foreach(string date in dates)
-                {
-                    string[] datelist = date.Split(',');
-                    RedisDbconn.Instance.AddList("ResetMerchantTradeQueue", MerchantId + "#cut#" + datelist[0] + "#cut#" + datelist[1]);
-                }
-            }
-            return "ok";
-        }
-    
+        
     }
 }

+ 3 - 0
Startup.cs

@@ -198,6 +198,8 @@ namespace MySystem
             SycnSpMerchantService.Instance.Start(); //同步SP商户数据
             SycnSpActiveService.Instance.Start(); //同步SP激活数据
             SycnSpTradeService.Instance.Start(); //同步SP交易数据
+            SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
+            SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
             RedPackageHelper.Instance.Start(); //每天生成300个红包
             RedPackageHelper.Instance.StartStatTop10(); //红包活动统计排行
             RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
@@ -208,6 +210,7 @@ namespace MySystem
             StatService.Instance.StatProfit(); //实时统计创客收益
             LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
             MessageCenterService.Instance.Start(); // 消息队列
+            // StatServiceTmp.Instance.Start();
             // StatService.Instance.StartEverDay("");
             // StatService.Instance.StartEverDayV2("");
             // RedPackageHelper.Instance.Start();