Prechádzať zdrojové kódy

补贴规则修改,10月1号之前的机具按照老规则,之后按照新规则商户型创客得

lcl 1 rok pred
rodič
commit
d6c5c0deb7

+ 94 - 86
AppStart/Helper/Profit/ProfitHelper.cs

@@ -1938,113 +1938,121 @@ namespace MySystem
                         decimal Deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
                         decimal Deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
                         if (pos.BindingState == 1)
                         if (pos.BindingState == 1)
                         {
                         {
-                            function.WriteLog("BindingState:" + pos.BindingState, "老规则分润日志");
-                            int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString());
-                            decimal TradeAmt = decimal.Parse(dr[4].ToString());
-                            List<UserLevelSet> levels = dbnew.UserLevelSet.ToList();
-                            SubUser selfUser = ProfitHelperV2.Instance.GetUser(UserId, Month) ?? new SubUser();
-                            int Days = int.Parse(RedisDbconn.Instance.Get<string>("pobjrule:" + BrandId + ":HelpPolicy:Days")); //天数
-                            if (BankCardType == 0)
+                            bool op = true;
+                            if(pos.BindingTime > DateTime.Parse("2023-10-01 00:00:00") && pos.BuyUserId == pos.UserId)
                             {
                             {
+                                op = false;
                             }
                             }
-                            else
+                            if(op)
                             {
                             {
-                                int maxLevel = obj.MaxLevel; //最大等级
-                                decimal diffLevelProfit = 0;  //等级级差
-                                int curLevel = 0; //当前层级的会员等级
-                                string ParentNav = selfUser.ParentNav;
-                                if (string.IsNullOrEmpty(ParentNav) && pos.BuyUserId == 1 && pos.UserId == 1)
+                                function.WriteLog("BindingState:" + pos.BindingState, "老规则分润日志");
+                                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString());
+                                decimal TradeAmt = decimal.Parse(dr[4].ToString());
+                                List<UserLevelSet> levels = dbnew.UserLevelSet.ToList();
+                                SubUser selfUser = ProfitHelperV2.Instance.GetUser(UserId, Month) ?? new SubUser();
+                                int Days = int.Parse(RedisDbconn.Instance.Get<string>("pobjrule:" + BrandId + ":HelpPolicy:Days")); //天数
+                                if (BankCardType == 0)
                                 {
                                 {
-                                    ParentNav = ",0,";
                                 }
                                 }
-                                if (!string.IsNullOrEmpty(ParentNav))
+                                else
                                 {
                                 {
-                                    ParentNav += "," + UserId + ",";
-                                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                    Array.Reverse(ParentNavList); //反转顺序
-                                    int level = 0;
-                                    DateTime now = DateTime.Now;
-                                    DateTime ThisMonth = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
-                                    foreach (string UserIdString in ParentNavList)
+                                    int maxLevel = obj.MaxLevel; //最大等级
+                                    decimal diffLevelProfit = 0;  //等级级差
+                                    int curLevel = 0; //当前层级的会员等级
+                                    string ParentNav = selfUser.ParentNav;
+                                    if (string.IsNullOrEmpty(ParentNav) && pos.BuyUserId == 1 && pos.UserId == 1)
                                     {
                                     {
-                                        level += 1;
-                                        int uid = int.Parse(UserIdString);
-                                        SubUser user = ProfitHelperV2.Instance.GetUser(uid, Month) ?? new SubUser();
-                                        int UserLevel = user.PreUserLevel > user.UserLevel ? user.PreUserLevel : user.UserLevel; //当前会员等级
-                                        if (curLevel == maxLevel) //判断当前创客是否有直推的激活机具,并且在活动时间内
-                                        {
-                                            break;
-                                        }
-                                        if (UserLevel <= maxLevel && UserLevel > curLevel)
+                                        ParentNav = ",0,";
+                                    }
+                                    if (!string.IsNullOrEmpty(ParentNav))
+                                    {
+                                        ParentNav += "," + UserId + ",";
+                                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                        Array.Reverse(ParentNavList); //反转顺序
+                                        int level = 0;
+                                        DateTime now = DateTime.Now;
+                                        DateTime ThisMonth = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
+                                        foreach (string UserIdString in ParentNavList)
                                         {
                                         {
-                                            function.WriteLog("UserLevel:" + UserLevel, "老规则分润日志");
-                                            function.WriteLog("curLevel:" + curLevel, "老规则分润日志");
-                                            int LevelKindId = GetLevelKindId(BrandId, HelpTime, 1);
-                                            ProfitObjectLevels objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel); //获取当前等级参数
-                                            if (objlevel != null)
+                                            level += 1;
+                                            int uid = int.Parse(UserIdString);
+                                            SubUser user = ProfitHelperV2.Instance.GetUser(uid, Month) ?? new SubUser();
+                                            int UserLevel = user.PreUserLevel > user.UserLevel ? user.PreUserLevel : user.UserLevel; //当前会员等级
+                                            if (curLevel == maxLevel) //判断当前创客是否有直推的激活机具,并且在活动时间内
                                             {
                                             {
-                                                decimal getLevelProfit = 0;  //等级分润
-                                                if (objlevel.Percents > 0)
-                                                {
-                                                    //获取创客分润规则,注册日开始算起,3个自然月内算扶持期
-                                                    getLevelProfit += TradeAmt * objlevel.Percents;
-                                                }
-                                                if (objlevel.AddProfitVal > 0)
-                                                {
-                                                    getLevelProfit += objlevel.AddProfitVal;
-                                                }
-                                                decimal money = getLevelProfit;
-                                                getLevelProfit -= diffLevelProfit;
-                                                if (objlevel.LevelDiff == 1)  //判断是否有级差
+                                                break;
+                                            }
+                                            if (UserLevel <= maxLevel && UserLevel > curLevel)
+                                            {
+                                                function.WriteLog("UserLevel:" + UserLevel, "老规则分润日志");
+                                                function.WriteLog("curLevel:" + curLevel, "老规则分润日志");
+                                                int LevelKindId = GetLevelKindId(BrandId, HelpTime, 1);
+                                                ProfitObjectLevels objlevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + UserLevel); //获取当前等级参数
+                                                if (objlevel != null)
                                                 {
                                                 {
-                                                    diffLevelProfit = money;
-                                                }
+                                                    decimal getLevelProfit = 0;  //等级分润
+                                                    if (objlevel.Percents > 0)
+                                                    {
+                                                        //获取创客分润规则,注册日开始算起,3个自然月内算扶持期
+                                                        getLevelProfit += TradeAmt * objlevel.Percents;
+                                                    }
+                                                    if (objlevel.AddProfitVal > 0)
+                                                    {
+                                                        getLevelProfit += objlevel.AddProfitVal;
+                                                    }
+                                                    decimal money = getLevelProfit;
+                                                    getLevelProfit -= diffLevelProfit;
+                                                    if (objlevel.LevelDiff == 1)  //判断是否有级差
+                                                    {
+                                                        diffLevelProfit = money;
+                                                    }
 
 
-                                                // 分润补贴
-                                                if (HelpTime == 1 && level == 1)
-                                                {
-                                                    function.WriteLog("ok", "老规则分润日志");
-                                                    int SubsidyUserId = pos.BuyUserId;
-                                                    SubUser subuser = ProfitHelperV2.Instance.GetUser(SubsidyUserId, Month) ?? new SubUser();
-                                                    int subUserLevel = subuser.PreUserLevel > subuser.UserLevel ? subuser.PreUserLevel : subuser.UserLevel;
-                                                    function.WriteLog("subUserLevel:" + subUserLevel, "老规则分润日志");
-                                                    if(subUserLevel < 5)
+                                                    // 分润补贴
+                                                    if (HelpTime == 1 && level == 1)
                                                     {
                                                     {
-                                                        function.WriteLog("sub:ok:", "老规则分润日志");
-                                                        ProfitObjectLevels sublevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + subUserLevel); //获取当前等级参数
-                                                        if (sublevel != null)
+                                                        function.WriteLog("ok", "老规则分润日志");
+                                                        int SubsidyUserId = pos.BuyUserId;
+                                                        SubUser subuser = ProfitHelperV2.Instance.GetUser(SubsidyUserId, Month) ?? new SubUser();
+                                                        int subUserLevel = subuser.PreUserLevel > subuser.UserLevel ? subuser.PreUserLevel : subuser.UserLevel;
+                                                        function.WriteLog("subUserLevel:" + subUserLevel, "老规则分润日志");
+                                                        if(subUserLevel < 5)
                                                         {
                                                         {
-                                                            decimal otherPercent = 0.001M - sublevel.Percents;
-                                                            decimal otherMoney = TradeAmt * otherPercent;
-                                                            function.WriteLog("otherPercent:" + otherPercent, "老规则分润日志");
-                                                            function.WriteLog("otherMoney:" + otherMoney, "老规则分润日志");
-                                                            if (otherMoney >= obj.MinProfitVal)
+                                                            function.WriteLog("sub:ok:", "老规则分润日志");
+                                                            ProfitObjectLevels sublevel = RedisDbconn.Instance.Get<ProfitObjectLevels>("pobjlv" + LevelKindId + ":" + subUserLevel); //获取当前等级参数
+                                                            if (sublevel != null)
                                                             {
                                                             {
-                                                                function.WriteLog("finish:" + SnNo, "老规则分润日志");
-                                                                result.Add(new ProfitResult()
+                                                                decimal otherPercent = 0.001M - sublevel.Percents;
+                                                                decimal otherMoney = TradeAmt * otherPercent;
+                                                                function.WriteLog("otherPercent:" + otherPercent, "老规则分润日志");
+                                                                function.WriteLog("otherMoney:" + otherMoney, "老规则分润日志");
+                                                                if (otherMoney >= obj.MinProfitVal)
                                                                 {
                                                                 {
-                                                                    UserId = subuser.Id,
-                                                                    UserNav = subuser.ParentNav,
-                                                                    Money = PublicFunction.NumberFormat(otherMoney),
-                                                                    ProfitRate = otherPercent,
-                                                                    Message = "分润补贴",
-                                                                    BankCardType = BankCardType,
-                                                                    QrPayFlag = QrPayFlag,
-                                                                    DirectFlag = 1,
-                                                                    BrandId = pos.BrandId,
-                                                                    IsSubsidy = 1,
-                                                                    MerchantId = pos.BindMerchantId,
-                                                                    TradeAmount = TradeAmt,
-                                                                    HelpFlag = HelpTime,
-                                                                    PosSn = pos.PosSn,
-                                                                });
+                                                                    function.WriteLog("finish:" + SnNo, "老规则分润日志");
+                                                                    result.Add(new ProfitResult()
+                                                                    {
+                                                                        UserId = subuser.Id,
+                                                                        UserNav = subuser.ParentNav,
+                                                                        Money = PublicFunction.NumberFormat(otherMoney),
+                                                                        ProfitRate = otherPercent,
+                                                                        Message = "分润补贴",
+                                                                        BankCardType = BankCardType,
+                                                                        QrPayFlag = QrPayFlag,
+                                                                        DirectFlag = 1,
+                                                                        BrandId = pos.BrandId,
+                                                                        IsSubsidy = 1,
+                                                                        MerchantId = pos.BindMerchantId,
+                                                                        TradeAmount = TradeAmt,
+                                                                        HelpFlag = HelpTime,
+                                                                        PosSn = pos.PosSn,
+                                                                    });
+                                                                }
                                                             }
                                                             }
                                                         }
                                                         }
                                                     }
                                                     }
                                                 }
                                                 }
                                             }
                                             }
+                                            curLevel = UserLevel;
                                         }
                                         }
-                                        curLevel = UserLevel;
                                     }
                                     }
                                 }
                                 }
                             }
                             }

+ 31 - 12
AppStart/Timer/TestHelper.cs

@@ -74,19 +74,38 @@ public class TestHelper
 
 
     private void setLdFee()
     private void setLdFee()
     {
     {
-        DataTable dt = CustomerSqlConn.dtable("select KqMerNo,BrandId from PosMerchantInfo where Id in (select BindMerchantId from PosMachinesTwo where BrandId in (10,11) and DownFeeFlag=1 and BindingTime<'2023-08-06 00:00:00')", "server=rm-2vcs4j67tla603c9d5o.mysql.cn-chengdu.rds.aliyuncs.com;port=3306;user=KxsProfitServer;password=FrW8ZfxlcaVdm1r0;database=KxsProfitServer;charset=utf8;");
-        foreach(DataRow dr in dt.Rows)
+        // DataTable dt = CustomerSqlConn.dtable("select KqMerNo,BrandId from PosMerchantInfo where Id in (select BindMerchantId from PosMachinesTwo where BrandId in (10,11) and DownFeeFlag=1 and BindingTime<'2023-08-06 00:00:00')", "server=rm-2vcs4j67tla603c9d5o.mysql.cn-chengdu.rds.aliyuncs.com;port=3306;user=KxsProfitServer;password=FrW8ZfxlcaVdm1r0;database=KxsProfitServer;charset=utf8;");
+        // foreach(DataRow dr in dt.Rows)
+        // {
+        //     function.WriteLog(dr["KqMerNo"].ToString(), "临时设置联动费率日志");
+        //     string result = SetDepositPostService.Instance.LDFeeRate(dr["KqMerNo"].ToString(), "0.0063", int.Parse(dr["BrandId"].ToString()), 0);
+        //     function.WriteLog(result + "\n\n", "临时设置联动费率日志");
+        // }
+        bool op = true;
+        while(op)
         {
         {
-            function.WriteLog(dr["KqMerNo"].ToString(), "临时设置联动费率日志");
-            string result = SetDepositPostService.Instance.LDFeeRate(dr["KqMerNo"].ToString(), "0.0063", int.Parse(dr["BrandId"].ToString()), 0);
-            function.WriteLog(result + "\n\n", "临时设置联动费率日志");
-        }
-        dt = CustomerSqlConn.dtable("select KqMerNo,BrandId from PosMerchantInfo where Id in (select BindMerchantId from PosMachinesTwo where BrandId in (10,11) and DownFeeFlag=0 and BindingTime<'2023-08-06 00:00:00')", "server=rm-2vcs4j67tla603c9d5o.mysql.cn-chengdu.rds.aliyuncs.com;port=3306;user=KxsProfitServer;password=FrW8ZfxlcaVdm1r0;database=KxsProfitServer;charset=utf8;");
-        foreach(DataRow dr in dt.Rows)
-        {
-            function.WriteLog(dr["KqMerNo"].ToString(), "临时设置联动费率日志");
-            string result = SetDepositPostService.Instance.LDFeeRate(dr["KqMerNo"].ToString(), "0.0063", int.Parse(dr["BrandId"].ToString()), 3);
-            function.WriteLog(result + "\n\n", "临时设置联动费率日志");
+            int page = int.Parse(function.CheckInt(function.ReadInstance("/TmpSetLdFee/page.txt")));
+            if(page < 1) page = 50;
+            int skip = (page - 1) * 100;
+            DataTable dt = CustomerSqlConn.dtable("select KqMerNo,BrandId from PosMerchantInfo where Id in (select BindMerchantId from PosMachinesTwo where BrandId in (10,11) and DownFeeFlag=0 and BindingTime<'2023-08-06 00:00:00') limit " + skip + ",100", "server=rm-2vcs4j67tla603c9d5o.mysql.cn-chengdu.rds.aliyuncs.com;port=3306;user=KxsProfitServer;password=FrW8ZfxlcaVdm1r0;database=KxsProfitServer;charset=utf8;");
+            if(dt.Rows.Count > 0)
+            {
+                foreach(DataRow dr in dt.Rows)
+                {
+                    function.WriteLog(dr["KqMerNo"].ToString(), "临时设置联动费率日志");
+                    string result = SetDepositPostService.Instance.LDFeeRate(dr["KqMerNo"].ToString(), "0.0063", int.Parse(dr["BrandId"].ToString()), 3);
+                    function.WriteLog(result + "\n\n", "临时设置联动费率日志");
+                }
+                page += 1;
+                function.WritePage("/TmpSetLdFee/", "page.txt", page.ToString());
+            }
+            else
+            {
+                op = false;
+                function.WriteLog("执行结束\n\n", "临时设置联动费率日志");
+            }
+            dt.Dispose();
+            dt.Clear();
         }
         }
     }
     }