Browse Source

注销互斥标记

lichunlei 3 năm trước cách đây
mục cha
commit
1a2553129b
3 tập tin đã thay đổi với 18 bổ sung214 xóa
  1. 13 210
      AppStart/Helper/StatService.cs
  2. 2 1
      AppStart/Helper/SycnSpServer/SycnSpTradeService.cs
  3. 3 3
      Startup.cs

+ 13 - 210
AppStart/Helper/StatService.cs

@@ -249,7 +249,8 @@ namespace MySystem
             foreach (PosMachinesTwo pos in posList.ToList())
             {
                 // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
                 if (merchant != null)
                 {
                     // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
@@ -600,7 +601,8 @@ namespace MySystem
                     if (ActPrize > 0)
                     {
                         // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
                         if (merchant != null)
                         {
                             // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
@@ -984,7 +986,8 @@ namespace MySystem
                     {
                         MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == TradeSnNo) ?? new MachineForSnNo();
                         PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId) ?? new PosMachinesTwo();
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
                         if(merchant != null)
                         {
                             bool checkExist = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
@@ -1459,15 +1462,6 @@ namespace MySystem
                         }
                         db.SaveChanges();
                     }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
                     if (!string.IsNullOrEmpty(ParentNav))
                     {
                         ParentNav += "," + UserId + ",";
@@ -1510,211 +1504,20 @@ namespace MySystem
                                         teamStat.NonDirectTradeAmt += TradeAmount;
                                     }
                                     db.SaveChanges();
-                                    OtherMySqlConn.op("update Users set ThisMonthTrade=ThisMonthTrade+"+TradeAmount+" where Id=" + NavUserId);
                                 }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
                             }
                         }
                     }
                 }
-            }
-            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);
-        }
-
-        public void StatTradeAmountEverDay2(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                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)
+                if(DateTime.Now.Day >= 2)
                 {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-
-                function.WriteLog("ap到main开始:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
-                DateTime StartDate = DateTime.Parse(start);
-                DateTime EndDate = DateTime.Parse(end);
-                int StartTradeId = int.Parse(function.CheckInt(startId));
-                bool op = true;
-                while (op)
-                {
-                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
-                    if (list.Count > 0)
-                    {
-                        foreach (TradeRecord sub in list)
-                        {
-                            maindb.TradeRecord.Add(new Models.TradeRecord()
-                            {
-                                CreateDate = sub.CreateDate,
-                                UpdateDate = sub.UpdateDate,
-                                RecordNo = sub.RecordNo, //单号
-                                UserId = sub.UserId, //创客
-                                MerchantId = sub.MerchantId, //商户
-                                MerNo = sub.MerNo, //渠道商户编号
-                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
-                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
-                                MerBuddyType = sub.MerBuddyType, //商户创客类型
-                                SnNo = sub.SnNo, //渠道SN号
-                                TradeDate = sub.TradeDate, //交易日期
-                                ClearDate = sub.ClearDate, //清算日期
-                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
-                                TradeAmount = sub.TradeAmount, //交易金额
-                                BankCardType = sub.BankCardType, //银行卡类型
-                                QrPayFlag = sub.QrPayFlag, //云闪付标识
-                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
-                                DirectFlag = sub.DirectFlag, //是否直营
-                                BrandId = sub.BrandId, //品牌
-                                Remark = sub.Remark, //备注
-                                TopUserId = sub.TopUserId, //顶级创客
-                                MerUserId = sub.MerUserId, //商户直属创客
-                            });
-                            StartTradeId = sub.Id;
-                        }
-                        maindb.SaveChanges();
-                    }
-                    else
-                    {
-                        op = false;
-                    }
-                }
-                maindb.Dispose();
-                function.WriteLog("ap到main结束:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                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 + "')");
-                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 + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
+                    Thread.Sleep(5000);
+                    DataTable list = OtherMySqlConn.dtable("select UserId,sum(NonDirectTradeAmt) from UserTradeDaySummary where TradeDate='" + TradeDate + "' GROUP BY UserId");
+                    foreach(DataRow dr in list.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();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    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 + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                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();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
+                        string UserId = dr["UserId"].ToString();
+                        string ThisMonthTrade = dr[1].ToString();
+                        OtherMySqlConn.op("update Users set ThisMonthTrade=ThisMonthTrade+" + ThisMonthTrade + " where Id=" + UserId);
                     }
                 }
             }

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

@@ -262,7 +262,8 @@ namespace MySystem
                                         // 立刷60天内刷满10000,再返40
                                         if (pos.BrandId == 6 && pos.ActivationState == 1 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
                                         {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                                            // PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && m.Sort == 1);
+                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
                                             if(merchant != null)
                                             {
                                                 PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();

+ 3 - 3
Startup.cs

@@ -232,10 +232,10 @@ namespace MySystem
             RedPackageHelper.Instance.StartSendPrize(); //红包活动发奖
             //必须打开的
 
-            StatService.Instance.StartPosActNum(); //实时统计激活数
-            StatService.Instance.StartNewUserNum(); //实时统计新增创客数
+            // StatService.Instance.StartPosActNum(); //实时统计激活数
+            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
             // StatService.Instance.StartEverDayV2("");
-            StatService.Instance.StatProfit("");
+            // StatService.Instance.StatProfit("");
             // RedPackageHelper.Instance.Start();
             // StatService.Instance.StatUserLevel();
             // ProfitHelper.Instance.StatProfit("202205"); //统计分润