Browse Source

调整助利宝分润逻辑

lichunlei 2 years ago
parent
commit
f1242fd91b
1 changed files with 39 additions and 17 deletions
  1. 39 17
      AppStart/Helper/Profit/HelpProfitHelper.cs

+ 39 - 17
AppStart/Helper/Profit/HelpProfitHelper.cs

@@ -27,27 +27,28 @@ namespace MySystem
         {
             while (true)
             {
-                if(DateTime.Now.Hour >= 2)// && DateTime.Now.Hour <= 3)
-                {
-                    StatProfitEveryDay(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
-                }
+                // if(DateTime.Now.Day == 1 && DateTime.Now.Hour >= 2 && DateTime.Now.Hour <= 3)
+                // {
+                    StatProfitEveryDay(DateTime.Now.AddMonths(-1).ToString("yyyyMM"));
+                // }
                 Thread.Sleep(600000);
             }
         }
-        public void StatProfitEveryDay(string Date)
+        public void StatProfitEveryDay(string Month)
         {
-            string check = function.ReadInstance("/HelpProfitStat/" + Date + ".txt");
+            string check = function.ReadInstance("/HelpProfitStat/" + Month + ".txt");
             if (!string.IsNullOrEmpty(check))
             {
                 return;
             }
-            function.WritePage("/HelpProfitStat/", Date + ".txt", DateTime.Now.ToString());
+            function.WritePage("/HelpProfitStat/", Month + ".txt", DateTime.Now.ToString());
             WebCMSEntities db = new WebCMSEntities();
-            List<HelpProfitMerTradeSummay> list = db.HelpProfitMerTradeSummay.Where(m => m.TradeDate == Date).ToList();
+            List<HelpProfitMerTradeSummay> list = db.HelpProfitMerTradeSummay.Where(m => m.TradeMonth == Month).ToList();
             foreach(HelpProfitMerTradeSummay sub in list)
             {
                 int MerchantId = sub.MerchantId;
                 decimal TradeAmount = sub.TradeAmount;
+                string TradeDate = sub.TradeDate;
                 HelpProfitMerchantForUser merchant = db.HelpProfitMerchantForUser.FirstOrDefault(m => m.MerchantId == MerchantId);
                 if(merchant != null)
                 {
@@ -72,7 +73,6 @@ namespace MySystem
                     // Name = Name.Replace("企业户", "");
                     // Name = Name.Replace("企业商户", "");
                     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                    Users puser = db.Users.FirstOrDefault(m => m.Id == user.ParentUserId) ?? new Users();
                     decimal money = TradeAmount * 0.0005M;
                     decimal money2 = TradeAmount * 0.00005M;
                     // UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId);
@@ -101,7 +101,7 @@ namespace MySystem
                     //     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, DateTime.Now.AddDays(-1), 1);
+                    AddProfitRecord(db, user, pos, mer, TradeAmount, money, Month, 1);
                     db.SaveChanges();
 
                     // account = db.UserAccount.FirstOrDefault(m => m.Id == user.ParentUserId);
@@ -130,8 +130,29 @@ namespace MySystem
                     //     AfterBalanceAmount = AfterBalanceAmount, //变更后余额
                     //     Remark = Name.Substring(0, 1) + "**:" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + "交易" + TradeAmount.ToString("f2"),
                     // }).Entity;
-                    AddProfitRecord(db, puser, pos, mer, TradeAmount, money, DateTime.Now.AddDays(-1), 112);
-                    db.SaveChanges();
+                    int ParentUserId = user.ParentUserId;
+                    while(ParentUserId > 0)
+                    {
+                        Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId);
+                        if(puser != null)
+                        {
+                            bool op = db.Orders.Any(m => m.Status > 0 && m.ProductId == 30);
+                            if(op)
+                            {
+                                AddProfitRecord(db, puser, pos, mer, TradeAmount, money, Month, 112);
+                                db.SaveChanges();
+                                ParentUserId = 0;
+                            }
+                            else
+                            {
+                                ParentUserId = puser.ParentUserId;
+                            }
+                        }
+                        else
+                        {
+                            ParentUserId = 0;
+                        }
+                    }
 
                     // string Month = Date.Substring(0, 6);
                     // HelpProfitRebateDetail selfStat = db.HelpProfitRebateDetail.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == Month && m.TradeDate == Date);
@@ -165,19 +186,20 @@ namespace MySystem
             db.Dispose();
         }
 
-        private void AddProfitRecord(WebCMSEntities db, Users puser, PosMachinesTwo pos, PosMerchantInfo merchant, decimal TradeAmount, decimal Prize, DateTime yesterday, int RewardType)
+        private void AddProfitRecord(WebCMSEntities db, Users puser, PosMachinesTwo pos, PosMerchantInfo merchant, decimal TradeAmount, decimal Prize, string TradeDate, int RewardType)
         {
             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 = yesterday.ToString("yyyyMM"), //交易月
-                TradeDate = yesterday, //达标日期
+                TradeMonth = TradeMonth, //交易月
+                SeoTitle = TradeDate,
                 UserId = puser.Id, //创客
                 BrandId = pos.BrandId, //品牌
                 ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
@@ -199,8 +221,8 @@ namespace MySystem
             {
                 CreateDate = DateTime.Now,
                 UpdateDate = DateTime.Now,
-                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                TradeDate = DateTime.Now, //达标日期
+                TradeMonth = TradeMonth, //交易月
+                SeoTitle = TradeDate,
                 UserId = puser.Id, //创客
                 BrandId = pos.BrandId, //品牌
                 RewardType = RewardType, //奖励类型