Преглед на файлове

修改有效创客判断条件
更改交易额统计方式

lichunlei преди 3 години
родител
ревизия
e3147a72b8

+ 6 - 3
AppStart/Helper/AlipayPayBack2Service.cs

@@ -190,10 +190,11 @@ namespace MySystem
                                         {
                                             int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
                                             int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+                                            int couponCount = db.PosCoupons.Count(m => m.UserId == ParentUserId && m.IsUse == 0); //判断是否拥有3张券
                                             function.WriteLog("MakerCode:" + user.MakerCode, "推荐下单奖励监控日志");
                                             function.WriteLog("machineCount:" + machineCount, "推荐下单奖励监控日志");
                                             function.WriteLog("ActiveCount:" + ActiveCount, "推荐下单奖励监控日志");
-                                            if (machineCount + ActiveCount >= 3)
+                                            if (machineCount + ActiveCount + couponCount >= 3)
                                             {
                                                 function.WriteLog("满足条件", "推荐下单奖励监控日志");
                                                 function.WriteLog("\r\n\r\n", "推荐下单奖励监控日志");
@@ -384,7 +385,8 @@ namespace MySystem
                                 int ParentUserId = user.ParentUserId;
                                 int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
                                 int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                if (machineCount >= 3 || ActiveCount >= 3)
+                                int couponCount = db.PosCoupons.Count(m => m.UserId == ParentUserId && m.IsUse == 0); //判断是否拥有3张券
+                                if (machineCount + ActiveCount + couponCount >= 3)
                                 {
                                     UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == ParentUserId);
                                     if (account == null)
@@ -549,7 +551,8 @@ namespace MySystem
                                 int ParentUserId = user.ParentUserId;
                                 int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
                                 int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                if (machineCount >= 3 || ActiveCount >= 3)
+                                int couponCount = db.PosCoupons.Count(m => m.UserId == ParentUserId && m.IsUse == 0); //判断是否拥有3张券
+                                if (machineCount + ActiveCount + couponCount >= 3)
                                 {
                                     UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == ParentUserId);
                                     if (account == null)

+ 7 - 8
AppStart/Helper/Profit/ProfitHelper.cs

@@ -2064,11 +2064,11 @@ namespace MySystem
                     ) tb left join Users u on tb.UserId=u.Id LEFT JOIN KqProducts k ON k.Id=tb.BrandId left join PosMachinesTwo p on tb.MerchantId=p.BindMerchantId ORDER BY p.PosSn,u.MakerCode
 
                     //查补贴
-                    select u.MakerCode,u.RealName,u.UserLevel,m.KqMerNo,m.MerchantName,(case when SubsidyType=1 then '直营' else '团队' end) as DirectFlag,
+                    select u.MakerCode,u.RealName,u.UserLevel,m.KqSnNo,m.MerchantName,(case when SubsidyType=1 then '直营' else '团队' end) as DirectFlag,
                     k.Name,CreditTradeAmt,SubsidyProfit from (
                     select SubsidyUserId,MerchantId,BrandId,SubsidyType,
                     sum(CreditTradeAmt) as CreditTradeAmt,
-                    sum(SubsidyProfit) as SubsidyProfit
+                    sum(SubsidyProfitRate) as SubsidyProfit
                     from ProfitSubsidyDetail 
                     GROUP BY SubsidyUserId,MerchantId,BrandId,SubsidyType
                     ) tb left join Users u on tb.SubsidyUserId=u.Id LEFT JOIN KqProducts k ON k.Id=tb.BrandId left join PosMerchantInfo m on tb.MerchantId=m.Id
@@ -2085,11 +2085,11 @@ namespace MySystem
                 DataTable dt = new DataTable();
                 if (BankCardType == 1)
                 {
-                    dt = dbconn.dtable("select SnNo,QrPayFlag,sum(TradeAmount) from TradeRecordTest where CreateDate>='" + start + "' and CreateDate<'" + end + "' and BankCardType>=1 and BankCardType<=2 and BrandId=" + BrandId + " group by SnNo,QrPayFlag");
+                    dt = dbconn.dtable("select SnNo,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' and BankCardType>=1 and BankCardType<=2 and BrandId=" + BrandId + " group by SnNo,QrPayFlag");
                 }
                 if (BankCardType == 0)
                 {
-                    dt = dbconn.dtable("select SnNo,QrPayFlag,TradeAmount from TradeRecordTest where CreateDate>='" + start + "' and CreateDate<'" + end + "' and BankCardType=0 and BrandId=" + BrandId + "");
+                    dt = dbconn.dtable("select SnNo,QrPayFlag,TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' and BankCardType=0 and BrandId=" + BrandId + "");
                 }
                 foreach (DataRow dr in dt.Rows)
                 {
@@ -2133,7 +2133,7 @@ namespace MySystem
                                 {
                                     UserId = selfUser.Id,
                                     UserNav = selfUser.ParentNav,
-                                    Money = getLevelProfit,
+                                    Money = PublicFunction.NumberFormat(getLevelProfit),
                                     ProfitRate = 0.0006M,
                                     Message = "储蓄卡分润",
                                     BankCardType = BankCardType,
@@ -2211,7 +2211,7 @@ namespace MySystem
                                                     {
                                                         UserId = user.Id,
                                                         UserNav = user.ParentNav,
-                                                        Money = getLevelProfit,
+                                                        Money = PublicFunction.NumberFormat(getLevelProfit),
                                                         ProfitRate = objlevel.Percents,
                                                         Message = "交易分润",
                                                         BankCardType = BankCardType,
@@ -2237,7 +2237,7 @@ namespace MySystem
                                                         {
                                                             UserId = user.Id,
                                                             UserNav = user.ParentNav,
-                                                            Money = otherMoney,
+                                                            Money = PublicFunction.NumberFormat(otherMoney),
                                                             ProfitRate = otherPercent,
                                                             Message = "分润补贴",
                                                             BankCardType = BankCardType,
@@ -2271,6 +2271,5 @@ namespace MySystem
         }
         #endregion
 
-
     }
 }

+ 256 - 16
AppStart/Helper/StatService.cs

@@ -4,6 +4,7 @@ using Library;
 using LitJson;
 using System.Linq;
 using System.Data;
+using System.Threading;
 using MySystem.PxcModels;
 
 namespace MySystem
@@ -26,7 +27,8 @@ namespace MySystem
                     function.WritePage("/Stat/", doDate + ".txt", DateTime.Now.ToString("HH:mm:ss"));
                     dosomething1(doDate);
                     dosomething11(doDate);
-                    dosomething2(doDate);
+                    // dosomething2(doDate);
+                    StartEverDay(doDate);
                     dosomething4(doDate);
                 }
                 string Msg = "success";
@@ -136,25 +138,36 @@ namespace MySystem
                         Name = Name.Split('-')[1];
                     }
                     else if (Name.Contains("_"))
-                    { 
+                    {
                         Name = Name.Split('_')[1];
                     }
                 }
-                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0 && m.CreateDate >= yesterday && m.CreateDate < today);
+                else if (bind.ProductType == "4")
+                {
+                    Name = bind.SeoTitle;
+                }
+                PxcModels.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)
                 {
-                    user.MerchantType = 1;
-                    PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
-                    merchant.MerUserType = 1;
-                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.BindMerchantId == merchant.Id);
-                    if (pos != null)
+                    bool checkPos = db.PosMachinesTwo.Any(m => m.UserId == user.Id);
+                    if (!checkPos)
                     {
-                        pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
+                        PxcModels.MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
+                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
+                        if (pos != null)
+                        {
+                            pos.UserId = user.Id;
+                            user.MerchantType = 1;
+                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.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);
+                        }
                     }
-                    db.SaveChanges();
-                    RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                    RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
                 }
             }
             spdb.Dispose();
@@ -171,7 +184,8 @@ namespace MySystem
             foreach (var user in users)
             {
                 int machineCount = db.PosMachinesTwo.Count(m => m.UserId == user.Id && m.PosSnType == 0);
-                if (machineCount >= 3)
+                int couponCount = db.PosCoupons.Count(m => m.UserId == user.Id && m.IsUse == 0); //判断是否拥有3张券
+                if (machineCount + couponCount >= 3)
                 {
                     Users edit = db.Users.FirstOrDefault(m => m.Id == user.Id);
                     if (edit != null)
@@ -624,9 +638,10 @@ namespace MySystem
                                             {
                                                 int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
                                                 int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+                                                int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
                                                 // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
                                                 // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                                if (machineCount + ActiveCount >= 3)
+                                                if (machineCount + ActiveCount + couponCount >= 3)
                                                 {
                                                     int pTopUserId = 0;
                                                     if (!string.IsNullOrEmpty(puser.ParentNav))
@@ -801,9 +816,10 @@ namespace MySystem
                                     {
                                         int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
                                         int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+                                        int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
                                         // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
                                         // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                        if (machineCount + ActiveCount >= 3)
+                                        if (machineCount + ActiveCount + couponCount >= 3)
                                         {
                                             int pTopUserId = 0;
                                             if (!string.IsNullOrEmpty(puser.ParentNav))
@@ -939,5 +955,229 @@ namespace MySystem
             }
             db.Dispose();
         }
+
+
+
+
+
+
+        // 每天统计头一天的交易额
+        public void StartEverDay(string date)
+        { 
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
+            // DateTime check = DateTime.Parse("2022-03-11");
+            // while (check <= end)
+            // {
+            //     Thread th = new Thread(StatTradeAmountEverDay);
+            //     th.IsBackground = true;
+            //     th.Start(check.ToString("yyyy-MM-dd"));
+            //     check = check.AddDays(1);
+            // }
+            Thread th = new Thread(StatTradeAmountEverDay);
+            th.IsBackground = true;
+            th.Start(date);
+        }
+        public void StatTradeAmountEverDay(object sender)
+        {
+            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";
+                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();
+                // }
+                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
+                // if (endDt.Rows.Count > 0)
+                // {
+                //     endId = endDt.Rows[0][0].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 + "')");
+                foreach (DataRow userDr in userDt.Rows)
+                {
+                    int UserId = int.Parse(userDr["Id"].ToString());
+                    string ParentNav = userDr["ParentNav"].ToString();
+                    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");
+                    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();
+                    }
+                    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);
+                                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");
+                                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);
+                            }
+                        }
+                    }
+                }
+            }
+            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", "执行昨天交易额日志");
+        }
+
+        public void StatTradeAmountEverDaySum()
+        {
+            // WebCMSEntities db = new WebCMSEntities();
+            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            // DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,QueryCount,TradeDate,TradeMonth,sum(DirectDebitTradeAmt) as DirectDebitTradeAmt,sum(DirectTradeAmt) as DirectTradeAmt,sum(NonDirectDebitTradeAmt) as NonDirectDebitTradeAmt,sum(NonDirectTradeAmt) as NonDirectTradeAmt from UserTradeDaySummary group by UserId,BrandId,QueryCount,TradeDate,TradeMonth order by UserId,BrandId,QueryCount");
+            // string html = "<table>";
+            // foreach (DataRow dr in dt.Rows)
+            // {
+            //     html += "<tr>";
+            //     string TradeDate = dr["TradeDate"].ToString();
+            //     string TradeMonth = dr["TradeMonth"].ToString();
+            //     int UserId = int.Parse(dr["UserId"].ToString());
+            //     int BrandId = int.Parse(dr["BrandId"].ToString());
+            //     int QrPayFlag = int.Parse(dr["QueryCount"].ToString());
+            //     decimal DirectDebitTradeAmt = decimal.Parse(dr["DirectDebitTradeAmt"].ToString());
+            //     decimal DirectTradeAmt = decimal.Parse(dr["DirectTradeAmt"].ToString());
+            //     decimal NonDirectDebitTradeAmt = decimal.Parse(dr["NonDirectDebitTradeAmt"].ToString());
+            //     decimal NonDirectTradeAmt = decimal.Parse(dr["NonDirectTradeAmt"].ToString());
+            //     decimal CurAmount = 0, CurTotalAmount = 0, CurMonthAmount = 0, CurDayAmount = 0;
+
+            //     CurTotalAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId); //总交易
+            //     CurMonthAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeDate); //总交易
+            //     CurDayAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeMonth); //总交易
+            //     CurAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate); //总交易
+            //     decimal TotalPosAmount = 0;
+            //     decimal TotalCloudPayAmount = 0;
+            //     decimal TeamTotalPosAmount = 0;
+            //     decimal TeamTotalCloudPayAmount = 0;
+            //     if (QrPayFlag == 1)
+            //     {
+            //         TotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TotalCloudPayAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
+            //         TeamTotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
+            //     }
+            //     else
+            //     {
+            //         TotalPosAmount = RedisDbconn.Instance.Get<decimal>("TotalPosAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
+            //         TeamTotalPosAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalPosAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
+            //     }
+            //     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+            //     html += "<td>应得</td>";
+            //     html += "<td>" + user.MakerCode + "</td>";
+            //     html += "<td>" + user.RealName + "</td>";
+            //     html += "<td>" + user.Mobile + "</td>";
+            //     html += "<td>" + BrandId + "</td>";
+            //     html += "<td>" + QrPayFlag + "</td>";
+            //     html += "<td>" + DirectDebitTradeAmt + "</td>";
+            //     html += "<td>" + DirectTradeAmt + "</td>";
+            //     html += "<td>" + NonDirectDebitTradeAmt + "</td>";
+            //     html += "<td>" + NonDirectTradeAmt + "</td>";
+            //     html += "</tr>";
+
+            //     html += "<tr>";
+            //     html += "<td>当前</td>";
+            //     html += "<td></td>";
+            //     html += "<td></td>";
+            //     html += "<td>当天品牌:" + CurAmount + "</td>";
+            //     html += "<td>总交易:" + CurTotalAmount + "</td>";
+            //     html += "<td>当月:" + CurMonthAmount + "</td>";
+            //     html += "<td>当天:" + CurDayAmount + "</td>";
+            //     html += "<td>" + TotalPosAmount + "</td>";
+            //     html += "<td>" + TotalCloudPayAmount + "</td>";
+            //     html += "<td>" + TeamTotalPosAmount + "</td>";
+            //     html += "<td>" + TeamTotalCloudPayAmount + "</td>";
+            //     html += "</tr>";
+            // }
+            // html += "</table>";
+            // db.Dispose();
+            // OtherMySqlConn.connstr = "";
+            // function.WritePage("/html/", "1.html", html);
+        }
     }
 }

+ 0 - 1
AppStart/Helper/SycnSpServer/SycnSpMerchantService.cs

@@ -60,7 +60,6 @@ namespace MySystem
                                     CreateDate = Mer.CreateTime,
                                     UpdateDate = Mer.UpdateTime,
                                     TopUserId = TopUserId,
-                                    MerUserType = user.MerchantType,
                                     BrandId = BrandId,
                                     SnStoreId = pos.StoreId,
                                     SnType = pos.PosSnType,

+ 153 - 5
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -32,11 +32,7 @@ namespace MySystem
                     DateTime start = DateTime.Now.AddDays(-5);
                     IQueryable<TradeRecord> trades = spdb.TradeRecord;
                     trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderByDescending(m => m.Id);
-                    // DateTime start = DateTime.Parse("2022-04-03 00:00:00");
-                    // DateTime end = DateTime.Parse("2022-04-04 00:00:00");
-                    // trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                    trades = trades.OrderBy(m => m.Id);
+                    trades = trades.OrderBy(m => m.CreateDate);
                     foreach (TradeRecord trade in trades.ToList())
                     {
                         bool op = true;
@@ -199,5 +195,157 @@ namespace MySystem
                 Thread.Sleep(1000);
             }
         }
+
+
+
+
+        public void StartTest()
+        { 
+            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
+            DateTime check = DateTime.Parse("2022-04-19");
+            while (check <= today)
+            {
+                Thread th = new Thread(StartTestDo);
+                th.IsBackground = true;
+                th.Start(check.ToString("yyyy-MM-dd"));
+                check = check.AddDays(1);
+            }
+        }
+        public void StartTestDo(object sender)
+        {
+            string date = sender.ToString();
+            DateTime start = DateTime.Parse(date);
+            DateTime end = start.AddDays(1);
+            try
+            {
+                WebCMSEntities spdb = new WebCMSEntities();
+                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
+                IQueryable<TradeRecord> trades = spdb.TradeRecord;
+                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
+                trades = trades.OrderBy(m => m.Id);
+                foreach (TradeRecord trade in trades.ToList())
+                {
+                    bool op = true;
+                    if (trade.SerEntryMode == "N")
+                    {
+                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
+                        {
+                            op = false;
+                            // TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
+                            // if (edit != null)
+                            // {
+                            //     edit.Status = 2;
+                            // }
+                            // spdb.SaveChanges();
+                        }
+                    }
+                    if (trade.DiscountRateFlag == "True")
+                    { 
+                        op = false;
+                        // TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
+                        // if (edit != null)
+                        // {
+                        //     edit.Status = 2;
+                        // }
+                        // spdb.SaveChanges();
+                    }
+                    if (op)
+                    {
+                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
+                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
+                        if (pos != null)
+                        {
+                            if (pos.BindMerchantId > 0)
+                            {
+                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
+                                int TopUserId = 0;
+                                if (!string.IsNullOrEmpty(user.ParentNav))
+                                {
+                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
+                                }
+                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
+                                if (!check)
+                                {
+                                    decimal TradeAmount = trade.TradeAmount;
+                                    int BankCardType = -1;
+                                    int QrPayFlag = 0;
+                                    if (pos.BrandId == 1 || pos.BrandId == 3)
+                                    {
+                                        TradeAmount = TradeAmount / 100;
+                                        BankCardType = int.Parse(trade.BankCardType);
+                                        if (trade.TradeType == "02") QrPayFlag = 1;
+                                    }
+                                    else if (pos.BrandId == 2)
+                                    {
+                                        if (trade.TradeType == "CREDIT_BY_CARD")
+                                        {
+                                            BankCardType = 1;
+                                        }
+                                        else if (trade.TradeType == "DEBIT_BY_CARD")
+                                        {
+                                            BankCardType = 0;
+                                        }
+                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
+                                    }
+                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
+                                    {
+                                        TradeAmount = TradeAmount / 100;
+                                        if (trade.BankCardType == "100")
+                                        {
+                                            BankCardType = 1;
+                                        }
+                                        else if (trade.BankCardType == "200")
+                                        {
+                                            BankCardType = 0;
+                                        }
+                                        if (trade.TradeType == "200") QrPayFlag = 1;
+                                    }
+                                    int BrandId = int.Parse(trade.ProductType);
+                                    if (trade.MerNo.StartsWith("M900"))
+                                    {
+                                        BrandId = 3;
+                                    }
+                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
+                                    {
+                                        CreateDate = trade.CreateDate,
+                                        UpdateDate = trade.UpdateDate,
+                                        RecordNo = trade.TradeSerialNo, //单号
+                                        UserId = pos.UserId, //创客
+                                        MerchantId = pos.BindMerchantId, //商户
+                                        MerNo = trade.MerNo, //渠道商户编号
+                                        MerHelpFlag = 0, //是否属于扶持周期内商户
+                                        HelpMonthCount = 0, //扶持第几个月
+                                        MerBuddyType = user.MerchantType, //商户创客类型
+                                        SnNo = trade.TradeSnNo, //渠道SN号
+                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
+                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
+                                        TradeAmount = TradeAmount, //交易金额
+                                        BankCardType = BankCardType, //银行卡类型
+                                        QrPayFlag = QrPayFlag, //云闪付标识
+                                        BrandId = BrandId, //品牌
+                                        Remark = trade.Remark, //备注
+                                        TopUserId = TopUserId, //顶级创客
+                                        MerUserId = pos.UserId, //商户直属创客
+                                    });
+                                    db.SaveChanges();
+                                }
+                                // TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
+                                // if (edit != null)
+                                // {
+                                //     edit.Status = 2;
+                                // }
+                                spdb.SaveChanges();
+                            }
+                        }
+                    }
+                }
+                spdb.Dispose();
+                db.Dispose();
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
+            }
+        }
     }
 }

+ 116 - 22
AppStart/Timer/TestHelper.cs

@@ -16,14 +16,14 @@ public class TestHelper
     
     public void Start()
     {
-        Thread th = new Thread(DoWorks);
+        Thread th = new Thread(domerchantType);
         th.IsBackground = true;
         th.Start();
     }
 
     private void DoWorks()
     {
-        WebCMSEntities db = new WebCMSEntities();
+        // WebCMSEntities db = new WebCMSEntities();
         // bool op = true;
         // while (op)
         // {
@@ -72,27 +72,27 @@ public class TestHelper
         // function.WriteLog("finish", "生成邀请二维码");
 
         
-        bool op = true;
-        while (op)
-        {
-            int startId = RedisDbconn.Instance.Get<int>("RemoveUserId");
-            List<int> uids = db.Users.Select(m => m.Id).Where(m => m > startId && m > 1).OrderBy(m => m).Take(100).ToList();
-            if (uids.Count > 0)
-            {
-                foreach (int uid in uids)
-                {
-                    DoUsers(db, uid);
-                    RedisDbconn.Instance.Set("RemoveUserId", uid);
-                }
-                Thread.Sleep(200);
-            }
-            else
-            {
-                op = false;
-            }
-        }
+        // bool op = true;
+        // while (op)
+        // {
+        //     int startId = RedisDbconn.Instance.Get<int>("RemoveUserId");
+        //     List<int> uids = db.Users.Select(m => m.Id).Where(m => m > startId && m > 1).OrderBy(m => m).Take(100).ToList();
+        //     if (uids.Count > 0)
+        //     {
+        //         foreach (int uid in uids)
+        //         {
+        //             DoUsers(db, uid);
+        //             RedisDbconn.Instance.Set("RemoveUserId", uid);
+        //         }
+        //         Thread.Sleep(200);
+        //     }
+        //     else
+        //     {
+        //         op = false;
+        //     }
+        // }
 
-        db.Dispose();
+        // db.Dispose();
     }
 
     public void DoUsers(WebCMSEntities db, int uid)
@@ -145,4 +145,98 @@ public class TestHelper
             }
         }
     }
+
+    private void domerchantType()
+    { 
+        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)
+        {
+            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.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());
+                }
+            }
+            else
+            {
+                op = false;
+            }
+            spdb.Dispose();
+            db.Dispose();
+            RedisDbconn.Instance.Clear("BindRecordId");
+        }
+    }
 }

+ 17 - 1
Controllers/HomeController.cs

@@ -653,9 +653,25 @@ namespace MySystem.Controllers
             return "";
         }
 
+        public string traderecord(int kind, int id = 0)
+        {
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            if (kind == 1)
+            {
+                OtherMySqlConn.op("delete from TradeRecordTest;insert into TradeRecordTest (Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo) select Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo from TradeRecord order by CreateDate;");
+            }
+            else if (kind == 2)
+            {
+                OtherMySqlConn.op("delete from TradeRecord where Id<" + id + ";insert into TradeRecord (Id,Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo) select Id,Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo from TradeRecordTest order by Id;");
+            }
+            OtherMySqlConn.connstr = "";
+            return "ok";
+        }
+
         public string test()
         {
-            TestHelper.Instance.DoUsers(new WebCMSEntities(), 483);
+
+            
             return "ok";
         }
     }

+ 26 - 0
Models/MachineUnBind.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class MachineUnBind
+    {
+        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 MerchantId { get; set; }
+        public DateTime? AuditDate { get; set; }
+        public string AuditDesc { get; set; }
+        public int AuditStatus { get; set; }
+        public string SnNo { get; set; }
+        public int BrandId { get; set; }
+        public int UserId { get; set; }
+        public string ApplyNo { get; set; }
+    }
+}

+ 10 - 0
Models/TmpTradeNo.cs

@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class TmpTradeNo
+    {
+        public string RecordNo { get; set; }
+    }
+}

+ 41 - 0
Models/TradeRecordTest.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class TradeRecordTest
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int MerUserId { get; set; }
+        public int TopUserId { get; set; }
+        public string Remark { get; set; }
+        public int BrandId { get; set; }
+        public ulong DirectFlag { get; set; }
+        public int CapFlag { get; set; }
+        public int QrPayFlag { get; set; }
+        public int BankCardType { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeSerialNo { get; set; }
+        public DateTime? ClearDate { get; set; }
+        public DateTime? TradeDate { get; set; }
+        public string SnNo { get; set; }
+        public int MerBuddyType { get; set; }
+        public int HelpMonthCount { get; set; }
+        public ulong MerHelpFlag { get; set; }
+        public string MerNo { get; set; }
+        public int MerchantId { get; set; }
+        public int UserId { get; set; }
+        public string RecordNo { get; set; }
+    }
+}

+ 72 - 6
Models/WebCMSEntities.cs

@@ -54,6 +54,7 @@ namespace MySystem.Models
         public virtual DbSet<MachineForSnNo> MachineForSnNo { get; set; }
         public virtual DbSet<MachineRenew> MachineRenew { get; set; }
         public virtual DbSet<MachineReturn> MachineReturn { get; set; }
+        public virtual DbSet<MachineUnBind> MachineUnBind { get; set; }
         public virtual DbSet<MenuRight> MenuRight { get; set; }
         public virtual DbSet<MerchantAddInfo> MerchantAddInfo { get; set; }
         public virtual DbSet<MerchantAdmin> MerchantAdmin { get; set; }
@@ -155,9 +156,10 @@ namespace MySystem.Models
         public virtual DbSet<TeamOfferApply> TeamOfferApply { get; set; }
         public virtual DbSet<TeamPersonDayTop> TeamPersonDayTop { get; set; }
         public virtual DbSet<TmpCert> TmpCert { get; set; }
+        public virtual DbSet<TmpTradeNo> TmpTradeNo { get; set; }
         public virtual DbSet<TradeDaySummary> TradeDaySummary { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
-        public virtual DbSet<TradeRecordCopy1> TradeRecordCopy1 { get; set; }
+        public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
         public virtual DbSet<UploadParams> UploadParams { get; set; }
         public virtual DbSet<UserAccount> UserAccount { get; set; }
         public virtual DbSet<UserAccountRecord> UserAccountRecord { get; set; }
@@ -3081,6 +3083,61 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<MachineUnBind>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.ApplyNo)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.AuditDate).HasColumnType("datetime");
+
+                entity.Property(e => e.AuditDesc)
+                    .HasColumnType("varchar(256)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.AuditStatus).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.SnNo)
+                    .HasColumnType("varchar(32)")
+                    .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.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+            });
+
             modelBuilder.Entity<MenuRight>(entity =>
             {
                 entity.HasKey(e => e.MenuId)
@@ -10579,6 +10636,17 @@ namespace MySystem.Models
                     .HasCollation("latin1_swedish_ci");
             });
 
+            modelBuilder.Entity<TmpTradeNo>(entity =>
+            {
+                entity.HasKey(e => e.RecordNo)
+                    .HasName("PRIMARY");
+
+                entity.Property(e => e.RecordNo)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("latin1")
+                    .HasCollation("latin1_swedish_ci");
+            });
+
             modelBuilder.Entity<TradeDaySummary>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10764,7 +10832,7 @@ namespace MySystem.Models
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.RecordNo)
-                    .HasColumnType("varchar(100)")
+                    .HasColumnType("varchar(50)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
@@ -10820,10 +10888,8 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
-            modelBuilder.Entity<TradeRecordCopy1>(entity =>
+            modelBuilder.Entity<TradeRecordTest>(entity =>
             {
-                entity.ToTable("TradeRecord_copy1");
-
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
                 entity.Property(e => e.BankCardType).HasColumnType("int(11)");
@@ -10867,7 +10933,7 @@ namespace MySystem.Models
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.RecordNo)
-                    .HasColumnType("varchar(32)")
+                    .HasColumnType("varchar(100)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 

+ 26 - 0
PxcModels/MachineUnBind.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class MachineUnBind
+    {
+        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 MerchantId { get; set; }
+        public DateTime? AuditDate { get; set; }
+        public string AuditDesc { get; set; }
+        public int AuditStatus { get; set; }
+        public string SnNo { get; set; }
+        public int BrandId { get; set; }
+        public int UserId { get; set; }
+        public string ApplyNo { get; set; }
+    }
+}

+ 10 - 0
PxcModels/TmpTradeNo.cs

@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class TmpTradeNo
+    {
+        public string RecordNo { get; set; }
+    }
+}

+ 41 - 0
PxcModels/TradeRecordTest.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class TradeRecordTest
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int MerUserId { get; set; }
+        public int TopUserId { get; set; }
+        public string Remark { get; set; }
+        public int BrandId { get; set; }
+        public ulong DirectFlag { get; set; }
+        public int CapFlag { get; set; }
+        public int QrPayFlag { get; set; }
+        public int BankCardType { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeSerialNo { get; set; }
+        public DateTime? ClearDate { get; set; }
+        public DateTime? TradeDate { get; set; }
+        public string SnNo { get; set; }
+        public int MerBuddyType { get; set; }
+        public int HelpMonthCount { get; set; }
+        public ulong MerHelpFlag { get; set; }
+        public string MerNo { get; set; }
+        public int MerchantId { get; set; }
+        public int UserId { get; set; }
+        public string RecordNo { get; set; }
+    }
+}

+ 72 - 6
PxcModels/WebCMSEntities.cs

@@ -54,6 +54,7 @@ namespace MySystem.PxcModels
         public virtual DbSet<MachineForSnNo> MachineForSnNo { get; set; }
         public virtual DbSet<MachineRenew> MachineRenew { get; set; }
         public virtual DbSet<MachineReturn> MachineReturn { get; set; }
+        public virtual DbSet<MachineUnBind> MachineUnBind { get; set; }
         public virtual DbSet<MenuRight> MenuRight { get; set; }
         public virtual DbSet<MerchantAddInfo> MerchantAddInfo { get; set; }
         public virtual DbSet<MerchantAdmin> MerchantAdmin { get; set; }
@@ -155,9 +156,10 @@ namespace MySystem.PxcModels
         public virtual DbSet<TeamOfferApply> TeamOfferApply { get; set; }
         public virtual DbSet<TeamPersonDayTop> TeamPersonDayTop { get; set; }
         public virtual DbSet<TmpCert> TmpCert { get; set; }
+        public virtual DbSet<TmpTradeNo> TmpTradeNo { get; set; }
         public virtual DbSet<TradeDaySummary> TradeDaySummary { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
-        public virtual DbSet<TradeRecordCopy1> TradeRecordCopy1 { get; set; }
+        public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
         public virtual DbSet<UploadParams> UploadParams { get; set; }
         public virtual DbSet<UserAccount> UserAccount { get; set; }
         public virtual DbSet<UserAccountRecord> UserAccountRecord { get; set; }
@@ -3081,6 +3083,61 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<MachineUnBind>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.ApplyNo)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.AuditDate).HasColumnType("datetime");
+
+                entity.Property(e => e.AuditDesc)
+                    .HasColumnType("varchar(256)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.AuditStatus).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.SnNo)
+                    .HasColumnType("varchar(32)")
+                    .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.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+            });
+
             modelBuilder.Entity<MenuRight>(entity =>
             {
                 entity.HasKey(e => e.MenuId)
@@ -10579,6 +10636,17 @@ namespace MySystem.PxcModels
                     .HasCollation("latin1_swedish_ci");
             });
 
+            modelBuilder.Entity<TmpTradeNo>(entity =>
+            {
+                entity.HasKey(e => e.RecordNo)
+                    .HasName("PRIMARY");
+
+                entity.Property(e => e.RecordNo)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("latin1")
+                    .HasCollation("latin1_swedish_ci");
+            });
+
             modelBuilder.Entity<TradeDaySummary>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10764,7 +10832,7 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.RecordNo)
-                    .HasColumnType("varchar(100)")
+                    .HasColumnType("varchar(50)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
@@ -10820,10 +10888,8 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
-            modelBuilder.Entity<TradeRecordCopy1>(entity =>
+            modelBuilder.Entity<TradeRecordTest>(entity =>
             {
-                entity.ToTable("TradeRecord_copy1");
-
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
                 entity.Property(e => e.BankCardType).HasColumnType("int(11)");
@@ -10867,7 +10933,7 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.RecordNo)
-                    .HasColumnType("varchar(32)")
+                    .HasColumnType("varchar(100)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 

+ 14 - 13
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交易数据
-            // ProfitHelper.Instance.StatProfit("202203"); //统计分润
-            // TestHelper.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交易数据
             //必须打开的
 
+            // ProfitHelper.Instance.StatProfit("202203"); //统计分润
+            TestHelper.Instance.Start();
+            // StatService.Instance.StartEverDay();
             // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
             // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
             // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");

+ 5 - 5
appsettings.json

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

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


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


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

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

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


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


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

@@ -17,9 +17,9 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=47.108.229.115;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
+    "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",
     "IOSAppVersion": "1.0.0",

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


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


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


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