Pārlūkot izejas kodu

大盟主组合下单逻辑
更换实时统计交易额逻辑

lichunlei 3 gadi atpakaļ
vecāks
revīzija
3c4440f32c
3 mainītis faili ar 176 papildinājumiem un 121 dzēšanām
  1. 64 10
      AppStart/Helper/AlipayPayBack2Service.cs
  2. 111 110
      AppStart/Helper/StatService.cs
  3. 1 1
      Startup.cs

+ 64 - 10
AppStart/Helper/AlipayPayBack2Service.cs

@@ -120,22 +120,76 @@ namespace MySystem
                                     {
                                         Kind = 2;
                                     }
+                                    else if (pro.NormDetail == "50大机券+225电签券")
+                                    {
+                                        Kind = 3;
+                                    }
+                                    else if (pro.NormDetail == "100大机券+150电签券")
+                                    {
+                                        Kind = 4;
+                                    }
+                                    else if (pro.NormDetail == "150大机券+75电签券")
+                                    {
+                                        Kind = 5;
+                                    }
                                 }
                                 string Codes = "";
-                                var coupons = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == Kind).OrderBy(m => m.Id).Take(BuyCount).ToList();
-                                foreach (var coupon in coupons)
+                                if(Kind > 2)
+                                {
+                                    Dictionary<int, int> couponData = new Dictionary<int, int>();
+                                    if(Kind == 3)
+                                    {
+                                        couponData.Add(1, 225); //电签数量
+                                        couponData.Add(2, 50); //大机数量
+                                    }
+                                    else if(Kind == 4)
+                                    {
+                                        couponData.Add(1, 150); //电签数量
+                                        couponData.Add(2, 100); //大机数量
+                                    }
+                                    else if(Kind == 5)
+                                    {
+                                        couponData.Add(1, 75); //电签数量
+                                        couponData.Add(2, 150); //大机数量
+                                    }
+                                    foreach(int kindNum in couponData.Keys)
+                                    {
+                                        int BuyCountByKind = couponData[kindNum];
+                                        var coupons = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == kindNum).OrderBy(m => m.Id).Take(BuyCountByKind).ToList();
+                                        foreach (var coupon in coupons)
+                                        {
+                                            PosCoupons item = db.PosCoupons.FirstOrDefault(m => m.Id == coupon.Id);
+                                            if (item != null)
+                                            {
+                                                item.CreateDate = DateTime.Now;
+                                                item.UserId = order.UserId;
+                                                item.UpdateDate = DateTime.Now.AddDays(180);
+                                                if (pro.ProductId == 13)
+                                                {
+                                                    item.LeaderUserId = order.UserId;
+                                                }
+                                                Codes += item.ExchangeCode + ",";
+                                            }
+                                        }
+                                    }
+                                }
+                                else
                                 {
-                                    PosCoupons item = db.PosCoupons.FirstOrDefault(m => m.Id == coupon.Id);
-                                    if (item != null)
+                                    var coupons = db.PosCoupons.Where(m => m.IsLock == 0 && m.IsUse == 0 && m.UserId == 0 && m.QueryCount == Kind).OrderBy(m => m.Id).Take(BuyCount).ToList();
+                                    foreach (var coupon in coupons)
                                     {
-                                        item.CreateDate = DateTime.Now;
-                                        item.UserId = order.UserId;
-                                        item.UpdateDate = DateTime.Now.AddDays(180);
-                                        if (pro.ProductId == 13)
+                                        PosCoupons item = db.PosCoupons.FirstOrDefault(m => m.Id == coupon.Id);
+                                        if (item != null)
                                         {
-                                            item.LeaderUserId = order.UserId;
+                                            item.CreateDate = DateTime.Now;
+                                            item.UserId = order.UserId;
+                                            item.UpdateDate = DateTime.Now.AddDays(180);
+                                            if (pro.ProductId == 13)
+                                            {
+                                                item.LeaderUserId = order.UserId;
+                                            }
+                                            Codes += item.ExchangeCode + ",";
                                         }
-                                        Codes += item.ExchangeCode + ",";
                                     }
                                 }
                                 order.SnNos = Codes.TrimEnd(',');

+ 111 - 110
AppStart/Helper/StatService.cs

@@ -1204,145 +1204,146 @@ namespace MySystem
                 {
                     startId = "718574";
                 }
-                DataTable idsDt = OtherMySqlConn.dtable("select Id from TradeRecord where Id>=" + startId + " and QueryCount=0 order by Id limit 500");
+                DataTable idsDt = OtherMySqlConn.dtable("select Id from TradeRecord where Id>=" + startId + " and QueryCount=0 order by Id limit 50");
                 if(idsDt.Rows.Count > 0)
                 {
-                    string ids = "";
-                    foreach (DataRow idsDr in idsDt.Rows)
-                    {
-                        ids += idsDr["Id"].ToString() + ",";
-                        startId = idsDr["Id"].ToString();
-                    }
-                    DataTable selfDt = OtherMySqlConn.dtable("select UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(TradeAmount),count(Id) from TradeRecord where Id in (" + ids.TrimEnd(',') + ") group by UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d')");
-                    if (selfDt.Rows.Count > 0)
+                    using (WebCMSEntities db = new WebCMSEntities())
                     {
-                        function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "实时交易额V2日志");
-                        foreach (DataRow selfDr in selfDt.Rows)
+                        string ids = "";
+                        foreach (DataRow idsDr in idsDt.Rows)
                         {
-                            int UserId = int.Parse(selfDr["UserId"].ToString());
-                            string ParentNav = selfDr["ParentNav"].ToString();
-                            int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                            int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                            int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                            int MerHelpFlag = int.Parse(selfDr["MerHelpFlag"].ToString());
-                            int CapFlag = int.Parse(selfDr["CapFlag"].ToString());
-                            int VipFlag = int.Parse(selfDr["VipFlag"].ToString());
-                            int PayType = int.Parse(selfDr["PayType"].ToString());
-                            string TradeDate = selfDr[9].ToString();
-                            decimal TradeAmount = decimal.Parse(selfDr[10].ToString());
-                            int TradeCount = int.Parse(selfDr[11].ToString());
-                            string TradeMonth = TradeDate.Substring(0, 6);
-                            WebCMSEntities db = new WebCMSEntities();
-                            TradeDaySummary selfStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
-                            if (selfStat == null)
-                            {
-                                selfStat = db.TradeDaySummary.Add(new TradeDaySummary()
-                                {
-                                    UserId = UserId,
-                                    TradeMonth = TradeMonth,
-                                    TradeDate = TradeDate,
-                                    BrandId = BrandId,
-                                    QueryCount = QrPayFlag,
-                                    VipFlag = VipFlag,
-                                    PayType = PayType,
-                                    SeoTitle = "self",
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            if (BankCardType == 0)
+                            ids += idsDr["Id"].ToString() + ",";
+                            startId = idsDr["Id"].ToString();
+                        }
+                        DataTable selfDt = OtherMySqlConn.dtable("select UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(TradeAmount),count(Id) from TradeRecord where Id in (" + ids.TrimEnd(',') + ") group by UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d')");
+                        if (selfDt.Rows.Count > 0)
+                        {
+                            function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "实时交易额V2日志");
+                            foreach (DataRow selfDr in selfDt.Rows)
                             {
-                                if (MerHelpFlag == 1)
+                                int UserId = int.Parse(selfDr["UserId"].ToString());
+                                string ParentNav = selfDr["ParentNav"].ToString();
+                                int BrandId = int.Parse(selfDr["BrandId"].ToString());
+                                int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
+                                int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
+                                int MerHelpFlag = int.Parse(selfDr["MerHelpFlag"].ToString());
+                                int CapFlag = int.Parse(selfDr["CapFlag"].ToString());
+                                int VipFlag = int.Parse(selfDr["VipFlag"].ToString());
+                                int PayType = int.Parse(selfDr["PayType"].ToString());
+                                string TradeDate = selfDr[9].ToString();
+                                decimal TradeAmount = decimal.Parse(selfDr[10].ToString());
+                                int TradeCount = int.Parse(selfDr[11].ToString());
+                                string TradeMonth = TradeDate.Substring(0, 6);
+                                TradeDaySummary selfStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
+                                if (selfStat == null)
                                 {
-                                    selfStat.HelpDirectDebitTradeAmt += TradeAmount;
-                                    if (CapFlag == 1)
+                                    selfStat = db.TradeDaySummary.Add(new TradeDaySummary()
                                     {
-                                        selfStat.HelpDirectDebitCapTradeAmt += TradeAmount;
-                                        selfStat.HelpDirectDebitCapNum += TradeCount;
-                                    }
+                                        UserId = UserId,
+                                        TradeMonth = TradeMonth,
+                                        TradeDate = TradeDate,
+                                        BrandId = BrandId,
+                                        QueryCount = QrPayFlag,
+                                        VipFlag = VipFlag,
+                                        PayType = PayType,
+                                        SeoTitle = "self",
+                                    }).Entity;
+                                    db.SaveChanges();
                                 }
-                                else
+                                if (BankCardType == 0)
                                 {
-                                    selfStat.NotHelpDirectDebitTradeAmt += TradeAmount;
-                                    if (CapFlag == 1)
+                                    if (MerHelpFlag == 1)
                                     {
-                                        selfStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
-                                        selfStat.NotHelpDirectDebitCapNum += TradeCount;
+                                        selfStat.HelpDirectDebitTradeAmt += TradeAmount;
+                                        if (CapFlag == 1)
+                                        {
+                                            selfStat.HelpDirectDebitCapTradeAmt += TradeAmount;
+                                            selfStat.HelpDirectDebitCapNum += TradeCount;
+                                        }
+                                    }
+                                    else
+                                    {
+                                        selfStat.NotHelpDirectDebitTradeAmt += TradeAmount;
+                                        if (CapFlag == 1)
+                                        {
+                                            selfStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
+                                            selfStat.NotHelpDirectDebitCapNum += TradeCount;
+                                        }
                                     }
                                 }
-                            }
-                            else if (BankCardType != 0)
-                            {
-                                if (MerHelpFlag == 1)
-                                {
-                                    selfStat.HelpDirectTradeAmt += TradeAmount;
-                                }
-                                else
-                                {
-                                    selfStat.NotHelpDirectTradeAmt += TradeAmount;
-                                }
-                            }
-                            ParentNav += "," + UserId + ",";
-                            if (!string.IsNullOrEmpty(ParentNav))
-                            {
-                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                foreach (string NavUserIdString in ParentNavList)
+                                else if (BankCardType != 0)
                                 {
-                                    int NavUserId = int.Parse(NavUserIdString);
-                                    TradeDaySummary teamStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
-                                    if (teamStat == null)
+                                    if (MerHelpFlag == 1)
                                     {
-                                        teamStat = db.TradeDaySummary.Add(new TradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            VipFlag = VipFlag,
-                                            PayType = PayType,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
+                                        selfStat.HelpDirectTradeAmt += TradeAmount;
                                     }
-                                    if (BankCardType == 0)
+                                    else
+                                    {
+                                        selfStat.NotHelpDirectTradeAmt += TradeAmount;
+                                    }
+                                }
+                                ParentNav += "," + UserId + ",";
+                                if (!string.IsNullOrEmpty(ParentNav))
+                                {
+                                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                    foreach (string NavUserIdString in ParentNavList)
                                     {
-                                        if (MerHelpFlag == 1)
+                                        int NavUserId = int.Parse(NavUserIdString);
+                                        TradeDaySummary teamStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
+                                        if (teamStat == null)
                                         {
-                                            teamStat.HelpNonDirectDebitTradeAmt += TradeAmount;
-                                            if (CapFlag == 1)
+                                            teamStat = db.TradeDaySummary.Add(new TradeDaySummary()
                                             {
-                                                teamStat.HelpDirectDebitCapTradeAmt += TradeAmount;
-                                                teamStat.HelpDirectDebitCapNum += TradeCount;
-                                            }
+                                                UserId = NavUserId,
+                                                TradeMonth = TradeMonth,
+                                                TradeDate = TradeDate,
+                                                BrandId = BrandId,
+                                                QueryCount = QrPayFlag,
+                                                VipFlag = VipFlag,
+                                                PayType = PayType,
+                                                SeoTitle = "team",
+                                            }).Entity;
+                                            db.SaveChanges();
                                         }
-                                        else
+                                        if (BankCardType == 0)
                                         {
-                                            teamStat.NotHelpNonDirectDebitTradeAmt += TradeAmount;
-                                            if (CapFlag == 1)
+                                            if (MerHelpFlag == 1)
                                             {
-                                                teamStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
-                                                teamStat.NotHelpDirectDebitCapNum += TradeCount;
+                                                teamStat.HelpNonDirectDebitTradeAmt += TradeAmount;
+                                                if (CapFlag == 1)
+                                                {
+                                                    teamStat.HelpDirectDebitCapTradeAmt += TradeAmount;
+                                                    teamStat.HelpDirectDebitCapNum += TradeCount;
+                                                }
+                                            }
+                                            else
+                                            {
+                                                teamStat.NotHelpNonDirectDebitTradeAmt += TradeAmount;
+                                                if (CapFlag == 1)
+                                                {
+                                                    teamStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
+                                                    teamStat.NotHelpDirectDebitCapNum += TradeCount;
+                                                }
                                             }
                                         }
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        if (MerHelpFlag == 1)
-                                        {
-                                            teamStat.HelpNonDirectTradeAmt += TradeAmount;
-                                        }
-                                        else
+                                        else if (BankCardType != 0)
                                         {
-                                            teamStat.NotHelpNonDirectTradeAmt += TradeAmount;
+                                            if (MerHelpFlag == 1)
+                                            {
+                                                teamStat.HelpNonDirectTradeAmt += TradeAmount;
+                                            }
+                                            else
+                                            {
+                                                teamStat.NotHelpNonDirectTradeAmt += TradeAmount;
+                                            }
                                         }
                                     }
                                 }
                             }
-                            db.SaveChanges();
-                            db.Dispose();
+                            OtherMySqlConn.op("update TradeRecord set QueryCount=1 where Id in (" + ids.TrimEnd(',') + ")");
+                            function.WritePage("/TradeRecord/", "Id.txt", startId);
                         }
-                        OtherMySqlConn.op("update TradeRecord set QueryCount=1 where Id in (" + ids.TrimEnd(',') + ")");
-                        function.WritePage("/TradeRecord/", "Id.txt", startId);
+                        db.SaveChanges();
                     }
                 }
             }

+ 1 - 1
Startup.cs

@@ -212,7 +212,7 @@ namespace MySystem
             // MessageCenterService.Instance.Start(); // 消息队列
             // StatServiceTmp.Instance.Start();
             // StatService.Instance.StartEverDay("");
-            // StatService.Instance.StartEverDayV2();
+            StatService.Instance.StartEverDayV2();
             // RedPackageHelper.Instance.Start();
             // StatService.Instance.StatUserLevel();
             // ProfitHelper.Instance.StatProfit("202205"); //统计分润