lichunlei 2 жил өмнө
parent
commit
f441738f3f

+ 159 - 159
AppStart/Helper/Profit/HelpProfitHelper.cs

@@ -34,6 +34,133 @@ namespace MySystem
                 Thread.Sleep(600000);
             }
         }
+        // public void StatProfitEveryDay(string Month)
+        // {
+        //     // string check = function.ReadInstance("/HelpProfitStat/" + Month + ".txt");
+        //     // if (!string.IsNullOrEmpty(check))
+        //     // {
+        //     //     return;
+        //     // }
+        //     // function.WritePage("/HelpProfitStat/", Month + ".txt", DateTime.Now.ToString());
+        //     WebCMSEntities db = new WebCMSEntities();
+        //     var orders = db.Orders.Select(m => new { m.UserId, m.Status, m.ProductId }).Where(m => m.Status > 0 && m.ProductId == 34).ToList();
+        //     int StartId = 0;
+        //     bool op = true;
+        //     while(op)
+        //     {
+        //         List<HelpProfitMerTradeSummay> list = db.HelpProfitMerTradeSummay.Where(m => m.Id > StartId && m.TradeMonth == Month).OrderBy(m => m.Id).Take(50).ToList();
+        //         if(list.Count > 0)
+        //         {
+        //             function.WriteLog("开始:" + DateTime.Now.ToString(), "助利宝分润日志");
+        //             function.WriteLog("总数:" + list.Count(), "助利宝分润日志");
+        //             int index = 0;
+        //             foreach(HelpProfitMerTradeSummay sub in list)
+        //             {
+        //                 index += 1;
+        //                 int MerchantId = sub.MerchantId;
+        //                 decimal TradeAmount = sub.TradeAmount;
+        //                 string TradeDate = sub.TradeDate;
+        //                 HelpProfitMerchantForUser merchant = db.HelpProfitMerchantForUser.FirstOrDefault(m => m.MerchantId == MerchantId);
+        //                 if(merchant != null)
+        //                 {
+        //                     int UserId = merchant.UserId;
+        //                     PosMerchantInfo mer = db.PosMerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new PosMerchantInfo();
+        //                     MachineForMerNo merFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == mer.KqMerNo) ?? new MachineForMerNo();
+        //                     PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == merFor.SnId) ?? new PosMachinesTwo();
+                            
+        //                     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+        //                     decimal money = TradeAmount * 0.0005M;
+        //                     decimal money2 = TradeAmount * 0.00005M;
+                            
+        //                     AddProfitRecord(db, user, pos, mer, TradeAmount, money, TradeDate, 1);
+        //                     db.SaveChanges();
+
+        //                     int ParentUserId = user.ParentUserId;
+        //                     while(ParentUserId > 0)
+        //                     {
+        //                         Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId);
+        //                         if(puser != null)
+        //                         {
+        //                             bool checkorder = orders.Any(m => m.UserId == ParentUserId);
+        //                             if(checkorder)
+        //                             {
+        //                                 AddProfitRecord(db, puser, pos, mer, TradeAmount, money2, TradeDate, 112);
+        //                                 db.SaveChanges();
+        //                                 ParentUserId = 0;
+        //                             }
+        //                             else
+        //                             {
+        //                                 ParentUserId = puser.ParentUserId;
+        //                             }
+        //                         }
+        //                         else
+        //                         {
+        //                             ParentUserId = 0;
+        //                         }
+        //                     }
+        //                 }
+        //                 function.WriteLog(index + "--Id:" + sub.Id + ";MerchantId:" + sub.MerchantId + ";" + DateTime.Now.ToString(), "助利宝分润日志");
+        //             }
+        //         }
+        //         else
+        //         {
+        //             op = false;
+        //         }
+        //     }
+        //     db.Dispose();
+        //     function.WriteLog("结束:" + DateTime.Now.ToString(), "助利宝分润日志");
+        // }
+
+        // private void AddProfitRecord(WebCMSEntities db, Users puser, PosMachinesTwo pos, PosMerchantInfo merchant, decimal TradeAmount, decimal Prize, string TradeDate, int RewardType)
+        // {
+        //     if(Prize == 0)
+        //     {
+        //         return;
+        //     }
+        //     string RewardDesc = "助利宝分润";
+        //     if(RewardType == 112)
+        //     {
+        //         RewardDesc = "助利宝推荐分润";
+        //     }
+        //     string TradeMonth = TradeDate.Substring(0, 6);
+        //     HelpProfitRewardDetail detail = db.HelpProfitRewardDetail.Add(new HelpProfitRewardDetail()
+        //     {
+        //         CreateDate = DateTime.Now,
+        //         UpdateDate = DateTime.Now,
+        //         TradeMonth = TradeMonth, //交易月
+        //         SeoTitle = TradeDate,
+        //         UserId = puser.Id, //创客
+        //         BrandId = pos.BrandId, //品牌
+        //         ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
+        //         MerchantId = pos.BindMerchantId, //商户
+        //         DirectUserId = merchant.UserId, //商户直属人
+        //         SnNo = pos.PosSn, //SN号
+        //         MerNo = merchant.KqMerNo, //渠道商户号
+        //         SnType = pos.PosSnType, //机具类型
+        //         StandardDate = pos.ActivationTime, //商户的激活日期
+        //         SnStoreId = pos.StoreId, //SN仓库
+        //         MerBuddyType = puser.MerchantType, //商户创客类型
+        //         RewardType = RewardType, //奖励类型
+        //         RewardTips = RewardDesc, //奖励描述
+        //         CreditTradeAmt = TradeAmount, //贷记卡交易总金额
+        //         CreditRewardAmount = Prize, //贷记卡交易奖励金额
+        //         RewardDesc = RewardDesc, //奖励描述
+        //     }).Entity;
+        //     db.HelpProfitReward.Add(new HelpProfitReward()
+        //     {
+        //         CreateDate = DateTime.Now,
+        //         UpdateDate = DateTime.Now,
+        //         TradeMonth = TradeMonth, //交易月
+        //         SeoTitle = TradeDate,
+        //         UserId = puser.Id, //创客
+        //         BrandId = pos.BrandId, //品牌
+        //         RewardType = RewardType, //奖励类型
+        //         CreditTradeAmt = TradeAmount, //贷记卡交易总金额
+        //         CreditRewardAmount = Prize, //贷记卡交易奖励金额
+        //         RewardDesc = RewardDesc, //奖励描述
+        //     });
+        // }
+
         public void StatProfitEveryDay(string Month)
         {
             string check = function.ReadInstance("/HelpProfitStat/" + Month + ".txt");
@@ -43,156 +170,55 @@ namespace MySystem
             }
             function.WritePage("/HelpProfitStat/", Month + ".txt", DateTime.Now.ToString());
             WebCMSEntities db = new WebCMSEntities();
-            List<HelpProfitMerTradeSummay> list = db.HelpProfitMerTradeSummay.Where(m => m.TradeMonth == Month).ToList();
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            var orders = db.Orders.Select(m => new { m.UserId, m.Status, m.ProductId }).Where(m => m.Status > 0 && m.ProductId == 34).ToList();
+            DataTable list = OtherMySqlConn.dtable("select UserId,sum(TradeAmount) from HelpProfitMerchantForUser u,HelpProfitMerTradeSummay s where u.MerchantId=s.MerchantId and TradeMonth='" + Month + "' group by UserId");
             function.WriteLog("开始:" + DateTime.Now.ToString(), "助利宝分润日志");
-            function.WriteLog("总数:" + list.Count(), "助利宝分润日志");
+            function.WriteLog("总数:" + list.Rows.Count, "助利宝分润日志");
             int index = 0;
-            foreach(HelpProfitMerTradeSummay sub in list)
+            foreach (DataRow sub in list.Rows)
             {
                 index += 1;
-                int MerchantId = sub.MerchantId;
-                decimal TradeAmount = sub.TradeAmount;
-                string TradeDate = sub.TradeDate;
-                HelpProfitMerchantForUser merchant = db.HelpProfitMerchantForUser.FirstOrDefault(m => m.MerchantId == MerchantId);
-                if(merchant != null)
-                {
-                    int UserId = merchant.UserId;
-                    PosMerchantInfo mer = db.PosMerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new PosMerchantInfo();
-                    MachineForMerNo merFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == mer.KqMerNo) ?? new MachineForMerNo();
-                    PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == merFor.SnId) ?? new PosMachinesTwo();
-                    // string Name = mer.MerchantName;
-                    // if (mer.BrandId == 2)
-                    // {
-                    //     if (Name.Contains("-"))
-                    //     {
-                    //         Name = Name.Split('-')[1];
-                    //     }
-                    //     else if (Name.Contains("_"))
-                    //     {
-                    //         Name = Name.Split('_')[1];
-                    //     }
-                    // }
-                    // Name = Name.Replace("个体户", "");
-                    // Name = Name.Replace("个体商户", "");
-                    // Name = Name.Replace("企业户", "");
-                    // Name = Name.Replace("企业商户", "");
-                    Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                    decimal money = TradeAmount * 0.0005M;
-                    decimal money2 = TradeAmount * 0.00005M;
-                    // UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId);
-                    // if (account == null)
-                    // {
-                    //     account = db.UserAccount.Add(new UserAccount()
-                    //     {
-                    //         Id = UserId,
-                    //         UserId = UserId,
-                    //     }).Entity;
-                    //     db.SaveChanges();
-                    // }
-                    // decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                    // account.HelpProfitBalanceAmount += money;
-                    // decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                    // UserAccountRecord accountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                    // {
-                    //     CreateDate = DateTime.Now,
-                    //     UpdateDate = DateTime.Now,
-                    //     Sort = MerchantId,
-                    //     UserId = UserId, //创客
-                    //     ProductType = 101, //产品类型
-                    //     ChangeType = 1,
-                    //     ChangeAmount = money, //变更金额
-                    //     BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    //     AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                    //     Remark = Name.Substring(0, 1) + "**:" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + "交易" + TradeAmount.ToString("f2"),
-                    // }).Entity;
-                    AddProfitRecord(db, user, pos, mer, TradeAmount, money, TradeDate, 1);
-                    db.SaveChanges();
+                int UserId = int.Parse(sub["UserId"].ToString());
+                decimal TradeAmount = decimal.Parse(sub[1].ToString());
+
+                Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                decimal money = TradeAmount * 0.0005M;
+                decimal money2 = TradeAmount * 0.00005M;
+
+                AddProfitRecord(db, user, TradeAmount, money, Month, 1);
+                db.SaveChanges();
 
-                    // account = db.UserAccount.FirstOrDefault(m => m.Id == user.ParentUserId);
-                    // if (account == null)
-                    // {
-                    //     account = db.UserAccount.Add(new UserAccount()
-                    //     {
-                    //         Id = user.ParentUserId,
-                    //         UserId = user.ParentUserId,
-                    //     }).Entity;
-                    //     db.SaveChanges();
-                    // }
-                    // BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                    // account.HelpProfitBalanceAmount += money2;
-                    // AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                    // accountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                    // {
-                    //     CreateDate = DateTime.Now,
-                    //     UpdateDate = DateTime.Now,
-                    //     Sort = MerchantId,
-                    //     UserId = user.ParentUserId, //创客
-                    //     ProductType = 101, //产品类型
-                    //     ChangeType = 112,
-                    //     ChangeAmount = money2, //变更金额
-                    //     BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    //     AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                    //     Remark = Name.Substring(0, 1) + "**:" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + "交易" + TradeAmount.ToString("f2"),
-                    // }).Entity;
-                    int ParentUserId = user.ParentUserId;
-                    while(ParentUserId > 0)
+                int ParentUserId = user.ParentUserId;
+                while (ParentUserId > 0)
+                {
+                    Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId);
+                    if (puser != null)
                     {
-                        Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId);
-                        if(puser != null)
+                        bool checkorder = orders.Any(m => m.UserId == ParentUserId);
+                        if (checkorder)
                         {
-                            bool op = db.Orders.Any(m => m.UserId == ParentUserId && m.Status > 0 && m.ProductId == 34);
-                            if(op)
-                            {
-                                AddProfitRecord(db, puser, pos, mer, TradeAmount, money2, TradeDate, 112);
-                                db.SaveChanges();
-                                ParentUserId = 0;
-                            }
-                            else
-                            {
-                                ParentUserId = puser.ParentUserId;
-                            }
+                            AddProfitRecord(db, puser, TradeAmount, money2, Month, 112);
+                            db.SaveChanges();
+                            ParentUserId = 0;
                         }
                         else
                         {
-                            ParentUserId = 0;
+                            ParentUserId = puser.ParentUserId;
                         }
                     }
-
-                    // string Month = Date.Substring(0, 6);
-                    // HelpProfitRebateDetail selfStat = db.HelpProfitRebateDetail.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == Month && m.TradeDate == Date);
-                    // if (selfStat == null)
-                    // {
-                    //     selfStat = db.HelpProfitRebateDetail.Add(new HelpProfitRebateDetail()
-                    //     {
-                    //         TradeMonth = Month,
-                    //         TradeDate = Date,
-                    //         UserId = UserId,
-                    //     }).Entity;
-                    //     db.SaveChanges();
-                    // }
-                    // selfStat.CreditRewardAmount += money;
-
-                    // selfStat = db.HelpProfitRebateDetail.FirstOrDefault(m => m.UserId == user.ParentUserId && m.TradeMonth == Month && m.TradeDate == Date);
-                    // if (selfStat == null)
-                    // {
-                    //     selfStat = db.HelpProfitRebateDetail.Add(new HelpProfitRebateDetail()
-                    //     {
-                    //         TradeMonth = Month,
-                    //         TradeDate = Date,
-                    //         UserId = user.ParentUserId,
-                    //     }).Entity;
-                    //     db.SaveChanges();
-                    // }
-                    // selfStat.CreditRewardAmount += money2;
-                    // db.SaveChanges();
-                }                
-                function.WriteLog(index + "--Id:" + sub.Id + ";MerchantId:" + sub.MerchantId + ";", "助利宝分润日志");
+                    else
+                    {
+                        ParentUserId = 0;
+                    }
+                }
+                function.WriteLog(index + "--UserId:" + UserId + ";TradeAmount:" + TradeAmount + ";" + DateTime.Now.ToString(), "助利宝分润日志");
             }
             db.Dispose();
             function.WriteLog("结束:" + DateTime.Now.ToString(), "助利宝分润日志");
         }
 
-        private void AddProfitRecord(WebCMSEntities db, Users puser, PosMachinesTwo pos, PosMerchantInfo merchant, decimal TradeAmount, decimal Prize, string TradeDate, int RewardType)
+        private void AddProfitRecord(WebCMSEntities db, Users puser, decimal TradeAmount, decimal Prize, string TradeMonth, int RewardType)
         {
             if(Prize == 0)
             {
@@ -203,38 +229,12 @@ namespace MySystem
             {
                 RewardDesc = "助利宝推荐分润";
             }
-            string TradeMonth = TradeDate.Substring(0, 6);
-            HelpProfitRewardDetail detail = db.HelpProfitRewardDetail.Add(new HelpProfitRewardDetail()
-            {
-                CreateDate = DateTime.Now,
-                UpdateDate = DateTime.Now,
-                TradeMonth = TradeMonth, //交易月
-                SeoTitle = TradeDate,
-                UserId = puser.Id, //创客
-                BrandId = pos.BrandId, //品牌
-                ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                MerchantId = pos.BindMerchantId, //商户
-                DirectUserId = merchant.UserId, //商户直属人
-                SnNo = pos.PosSn, //SN号
-                MerNo = merchant.KqMerNo, //渠道商户号
-                SnType = pos.PosSnType, //机具类型
-                StandardDate = pos.ActivationTime, //商户的激活日期
-                SnStoreId = pos.StoreId, //SN仓库
-                MerBuddyType = puser.MerchantType, //商户创客类型
-                RewardType = RewardType, //奖励类型
-                RewardTips = RewardDesc, //奖励描述
-                CreditTradeAmt = TradeAmount, //贷记卡交易总金额
-                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                RewardDesc = RewardDesc, //奖励描述
-            }).Entity;
             db.HelpProfitReward.Add(new HelpProfitReward()
             {
                 CreateDate = DateTime.Now,
                 UpdateDate = DateTime.Now,
                 TradeMonth = TradeMonth, //交易月
-                SeoTitle = TradeDate,
                 UserId = puser.Id, //创客
-                BrandId = pos.BrandId, //品牌
                 RewardType = RewardType, //奖励类型
                 CreditTradeAmt = TradeAmount, //贷记卡交易总金额
                 CreditRewardAmount = Prize, //贷记卡交易奖励金额

+ 1 - 1
AppStart/Helper/SetDepositService.cs

@@ -102,7 +102,7 @@ namespace MySystem
                                             userPosList.Add(pos.BuyUserId, subPos);
                                         }
                                     }
-                                    if(Kind >= 1)
+                                    if(Kind > 1)
                                     {
                                         RedisDbconn.Instance.AddList("SetDepositPostQueue", data);
                                     }

+ 1 - 1
Startup.cs

@@ -206,7 +206,7 @@ namespace MySystem
             // StatService.Instance.StatUserLevel(); //升级并分润
             //必须打开的
 
-            // HelpProfitHelper.Instance.Start();
+            HelpProfitHelper.Instance.Start();
             // HelpProfitPreMerchantHelper.Instance.Start();
             // SetDepositService.Instance.Start(); //调整费率(通知、标记)
             // SetDepositPostService.Instance.Start(); //提交支付公司设置费率接口

+ 3 - 3
appsettings.json

@@ -17,10 +17,10 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMain;password=mzeqjriUWore0dwT;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMain;password=mzeqjriUWore0dwT;database=KxsMainServer;charset=utf8;",
+    "SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer2;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer2;charset=utf8;",
+    "Pxc1SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer2;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer2;charset=utf8;",
     "SpSqlConnStr": "server=47.109.31.237;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",
+    "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",
     "AndroidAppVersion": "1.0.0",
     "OSSKey": "iL9dWgBunZRwGbHQ",