Bläddra i källkod

好哒按照费率分润

lcl 3 månader sedan
förälder
incheckning
96bebe53c4

+ 1 - 0
Entity/ProfitResult.cs

@@ -23,6 +23,7 @@ namespace MySystem
         public decimal ProfitPercent { get; set; } //创客预设分润百分比
         public decimal AddOrSubRate { get; set; } //浮动空间
         public decimal ProfitRateBase { get; set; } //分润比例基数
+        public int Fee { get; set; }
     }
 
     public class ActiveCheckData

+ 6 - 4
Util/HaoDa/ProfitAfterHelper.cs

@@ -65,11 +65,12 @@ namespace MySystem
             function.WritePage("/ProfitFlag/", TradeMonth + "-after.txt", DateTime.Now.ToString());
             Models.KxsMain.WebCMSEntities kxsdb = new Models.KxsMain.WebCMSEntities();
             WebCMSEntities dbnew = new WebCMSEntities();
-            DataTable dt = CustomerSqlConn.dtable("select IsAct,UserId,sum(TotalAmount) from UserAmountSummaryAfter where TradeMonth='" + TradeMonth + "' and SeoTitle='self' group by IsAct,UserId", AppConfig.Base.SqlConnStr);
+            DataTable dt = CustomerSqlConn.dtable("select IsAct,UserId,sum(TotalAmount),Sort from UserAmountSummaryAfter where TradeMonth='" + TradeMonth + "' and SeoTitle='self' group by IsAct,UserId,Sort", AppConfig.Base.SqlConnStr);
             foreach (DataRow dr in dt.Rows)
             {
                 int UserId = int.Parse(dr["UserId"].ToString());
                 bool IsActive = dr["IsAct"].ToString() == "1";
+                int Sort = int.Parse(dr["Sort"].ToString());
                 decimal TotalAmount = decimal.Parse(dr[2].ToString());
                 List<ProfitUsers> users = new List<ProfitUsers>();
                 int TopUserId = 0; //顶级创客Id
@@ -113,7 +114,7 @@ namespace MySystem
                 Models.KxsMain.Users topUser = kxsdb.Users.FirstOrDefault(a => a.Id == TopUserId) ?? new Models.KxsMain.Users();
                 LogHelper.Instance.WriteLog("---UserId:" + UserId + ";TotalAmount:" + TotalAmount + ";", "来客吧分润日志");
                 List<ProfitResult> list = new List<ProfitResult>();
-                list = StartProft(TotalAmount, 1, users, IsActive);
+                list = StartProft(TotalAmount, 1, users, Sort, IsActive);
                 LogHelper.Instance.WriteLog("---list:" + list.Count + ";", "来客吧分润日志");
                 try
                 {
@@ -174,7 +175,7 @@ namespace MySystem
         #endregion
 
         #region 分润算法
-        public List<ProfitResult> StartProft(decimal TotalAmount, int LevelKindId, List<ProfitUsers> users, bool IsActive = true)
+        public List<ProfitResult> StartProft(decimal TotalAmount, int LevelKindId, List<ProfitUsers> users, int Sort, bool IsActive = true)
         {
             LogHelper.Instance.WriteLog("\n\nTotalAmount:" + TotalAmount + ";", "来客吧分润日志");
             string Month = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
@@ -212,7 +213,7 @@ namespace MySystem
                     }
                     if (UserLevel <= maxLevel && UserLevel >= curLevel)
                     {
-                        ProfitObjectLevels objlevel = db.ProfitObjectLevels.FirstOrDefault(m => m.Id == UserLevel); //获取当前等级参数
+                        ProfitObjectLevels objlevel = db.ProfitObjectLevels.FirstOrDefault(m => m.Id == UserLevel && m.Sort == Sort); //获取当前等级参数
                         if (objlevel != null)
                         {
                             decimal getLevelProfit = 0;  //等级分润
@@ -244,6 +245,7 @@ namespace MySystem
                                     ProfitPercent = profitSet.ProfitPercent,
                                     AddOrSubRate = profitSet.AddOrSubRate,
                                     ProfitRateBase = profitSet.ProfitRateBase,
+                                    Fee = Sort,
                                 });
                                 LogHelper.Instance.WriteLog("money:" + UserLevel + ":" + PublicFunction.NumberFormat(getLevelProfit) + ";", "来客吧分润日志");
                             }

+ 6 - 4
Util/HaoDa/ProfitBeforeHelper.cs

@@ -65,11 +65,12 @@ namespace MySystem
             function.WritePage("/ProfitFlag/", TradeMonth + "-before.txt", DateTime.Now.ToString());
             Models.KxsMain.WebCMSEntities kxsdb = new Models.KxsMain.WebCMSEntities();
             WebCMSEntities dbnew = new WebCMSEntities();
-            DataTable dt = CustomerSqlConn.dtable("select IsAct,UserId,sum(TotalAmount) from UserAmountSummaryBefore where TradeMonth='" + TradeMonth + "' and SeoTitle='self' group by IsAct,UserId", AppConfig.Base.SqlConnStr);
+            DataTable dt = CustomerSqlConn.dtable("select IsAct,UserId,sum(TotalAmount),Sort from UserAmountSummaryBefore where TradeMonth='" + TradeMonth + "' and SeoTitle='self' group by IsAct,UserId,Sort", AppConfig.Base.SqlConnStr);
             foreach (DataRow dr in dt.Rows)
             {
                 int UserId = int.Parse(dr["UserId"].ToString());
                 bool IsActive = dr["IsAct"].ToString() == "1";
+                int Sort = int.Parse(dr["Sort"].ToString());
                 decimal TotalAmount = decimal.Parse(dr[2].ToString());
                 List<ProfitUsers> users = new List<ProfitUsers>();
                 int TopUserId = 0; //顶级创客Id
@@ -113,7 +114,7 @@ namespace MySystem
                 Models.KxsMain.Users topUser = kxsdb.Users.FirstOrDefault(a => a.Id == TopUserId) ?? new Models.KxsMain.Users();
                 LogHelper.Instance.WriteLog("---UserId:" + UserId + ";TotalAmount:" + TotalAmount + ";", "来客吧分润日志");
                 List<ProfitResult> list = new List<ProfitResult>();
-                list = StartProft(TotalAmount, 1, users, IsActive);
+                list = StartProft(TotalAmount, 1, users, Sort, IsActive);
                 LogHelper.Instance.WriteLog("---list:" + list.Count + ";", "来客吧分润日志");
                 try
                 {
@@ -174,7 +175,7 @@ namespace MySystem
         #endregion
 
         #region 分润算法
-        public List<ProfitResult> StartProft(decimal TotalAmount, int LevelKindId, List<ProfitUsers> users, bool IsActive = true)
+        public List<ProfitResult> StartProft(decimal TotalAmount, int LevelKindId, List<ProfitUsers> users, int Sort, bool IsActive = true)
         {
             LogHelper.Instance.WriteLog("\n\nTotalAmount:" + TotalAmount + ";", "来客吧分润日志");
             string Month = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
@@ -212,7 +213,7 @@ namespace MySystem
                     }
                     if (UserLevel <= maxLevel && UserLevel >= curLevel)
                     {
-                        ProfitObjectLevels objlevel = db.ProfitObjectLevels.FirstOrDefault(m => m.Id == UserLevel); //获取当前等级参数
+                        ProfitObjectLevels objlevel = db.ProfitObjectLevels.FirstOrDefault(m => m.Id == UserLevel && m.Sort == Sort); //获取当前等级参数
                         if (objlevel != null)
                         {
                             decimal getLevelProfit = 0;  //等级分润
@@ -244,6 +245,7 @@ namespace MySystem
                                     ProfitPercent = profitSet.ProfitPercent,
                                     AddOrSubRate = profitSet.AddOrSubRate,
                                     ProfitRateBase = profitSet.ProfitRateBase,
+                                    Fee = Sort,
                                 });
                                 LogHelper.Instance.WriteLog("money:" + UserLevel + ":" + PublicFunction.NumberFormat(getLevelProfit) + ";", "来客吧分润日志");
                             }

+ 5 - 0
Util/HaoDa/WeChatPayBackService.cs

@@ -113,6 +113,11 @@ namespace MySystem
                     {
                         order.QueryCount = 1;
                     }
+                    if(addinfo.BrandId > 0)
+                    {
+                        decimal fee = decimal.Parse(function.CheckNum(addinfo.FeeRate)) * 100;
+                        order.Sort = (int)fee;
+                    }
                     db.SaveChanges();
                     LogHelper.Instance.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "检测商户订单数:" + order.QueryCount, "微信支付回调监控");