瀏覽代碼

调整助利宝商机券释放逻辑
修复盟主预设职级bug

lichunlei 2 年之前
父節點
當前提交
1cced1e378

+ 6 - 2
AppStart/Helper/AlipayPayBack2Service.cs

@@ -211,7 +211,7 @@ namespace MySystem
                             {
                                 OperateReserveBackFor(db, user.Id, order.TotalPrice);
                                 //预设大盟主职级
-                                if(user.UserLevel < 2) LeaderPreUserLevel(db, order.UserId, 2);
+                                LeaderPreUserLevel(db, order.UserId, 2);
                                 decimal Prize = decimal.Parse(function.CheckNum(PublicFunction.GetPublicParam(db, "BigLeaderPrize")));
                                 if(Prize > 0 && BeforeLeaderLevel < 2 && user.UserType == 0)
                                 {
@@ -225,7 +225,7 @@ namespace MySystem
                             Users user = db.Users.FirstOrDefault(m => m.Id == order.UserId) ?? new Users();
                             if (check) OperateReserveBackFor(db, user.Id, order.TotalPrice);
                             //预设小盟主职级
-                            if(user.UserLevel == 0) LeaderPreUserLevel(db, order.UserId, 1);
+                            LeaderPreUserLevel(db, order.UserId, 1);
                             decimal Prize = decimal.Parse(function.CheckNum(PublicFunction.GetPublicParam(db, "SmallLeaderPrize")));
                             if(Prize > 0 && BeforeLeaderLevel < 1 && user.UserType == 0)
                             {
@@ -1095,6 +1095,10 @@ namespace MySystem
                     check.Rank = Rank;
                     check.UpdateDate = DateTime.Now.AddMonths(Month);
                 }
+                else if(check.Rank == Rank && check.UpdateDate < DateTime.Now.AddMonths(Month))
+                {
+                    check.UpdateDate = DateTime.Now.AddMonths(Month);
+                }
             }
             db.SaveChanges();
         }

+ 26 - 8
AppStart/Helper/Profit/HelpProfitPreMerchantHelper.cs

@@ -16,6 +16,12 @@ namespace MySystem
         private HelpProfitPreMerchantHelper()
         {
         }
+
+        // A:前一天剩余数量
+        // B:第二天释放助利宝商户数量
+        // C(20):每次递减数量
+        // D(100):释放助利宝商户最大数量
+        // B = A - C < C ? D : A - C;
         
         public void Start()
         {
@@ -47,18 +53,30 @@ namespace MySystem
             string Month2 = start.AddMonths(-2).ToString("yyyyMM");
             string Month3 = start.AddMonths(-3).ToString("yyyyMM");
             OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            string GetCount = function.ReadInstance("/PublicParam/HelpProfitMerCount.txt");
-            string BrandId = function.ReadInstance("/PublicParam/HelpProfitMerBrandId.txt");
-            if(string.IsNullOrEmpty(GetCount))
+            HelpProfitRelease obj = new HelpProfitRelease();
+            string JsonParam = function.ReadInstance("/PublicParam/HelpProfitRelease.txt"); //json参数文件
+            if(string.IsNullOrEmpty(JsonParam))
             {
-                GetCount = "150";
-                function.WritePage("/PublicParam/", "HelpProfitMerCount.txt", GetCount);
+                obj.MerBrandId = "1";
+                obj.GetCount = 100;
+                obj.ExpandCount = 20;
+                obj.SourceCount = 100;
+                function.WritePage("/PublicParam/", "HelpProfitRelease.txt", Newtonsoft.Json.JsonConvert.SerializeObject(obj));
             }
-            if(string.IsNullOrEmpty(BrandId))
+            else
             {
-                BrandId = "1";
-                function.WritePage("/PublicParam/", "HelpProfitMerBrandId.txt", BrandId);
+                obj = Newtonsoft.Json.JsonConvert.DeserializeObject<HelpProfitRelease>(JsonParam);
             }
+            int ExpandCount = obj.ExpandCount; //膨胀数量
+            int SourceCount = obj.SourceCount; //原始数量
+            int GetCount = obj.GetCount; //当前实际发放数量
+            string BrandId = obj.MerBrandId; //允许释放的品牌
+            List<int> HelpProfitMerchantIds = RedisDbconn.Instance.GetList<int>("HelpProfitMerchantIds", 1, SourceCount);
+            int CurrentLastCount = HelpProfitMerchantIds.Count; //前一天剩余数量
+            //计算第二天释放助利宝商户数量
+            GetCount = CurrentLastCount - ExpandCount < ExpandCount ? SourceCount : CurrentLastCount - ExpandCount;
+            obj.GetCount = GetCount;
+            function.WritePage("/PublicParam/", "HelpProfitRelease.txt", Newtonsoft.Json.JsonConvert.SerializeObject(obj));
             RedisDbconn.Instance.Clear("HelpProfitMerchantIds");
             DataTable dt = OtherMySqlConn.dtable("SELECT MerchantId,sum FROM( SELECT MerchantId,SUM(TradeAmount) sum FROM PosMerchantTradeSummay WHERE Id>=3809083 and MerchantId not in (select MerchantId from HelpProfitMerIds) AND BrandId in (" + BrandId + ") AND TradeMonth in ('" + Month1 + "','" + Month2 + "','" + Month3 + "') GROUP BY MerchantId)a WHERE a.sum/3 >= 20000 and a.sum/3 <= 60000 limit " + GetCount);
             foreach(DataRow dr in dt.Rows)

+ 12 - 0
AppStart/Tables/HelpProfitRelease.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+namespace MySystem
+{
+    public class HelpProfitRelease
+    {
+        public int GetCount { get; set; }
+        public string MerBrandId { get; set; }
+        public int ExpandCount { get; set; }
+        public int SourceCount { get; set; }
+    }
+}

+ 41 - 41
Startup.cs

@@ -91,8 +91,8 @@ namespace MySystem
             // services.AddHostedService<SycnSpTimer>(); //同步SP数据
 
             // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
+            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
+            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
 
             //services.AddHttpContextAccessor();
 
@@ -188,47 +188,47 @@ namespace MySystem
             });
 
             //必须打开的
-            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            // SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
-            // SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
-            // RedPackageV2Helper.Instance.Start(); //每天生成红包
-            // RedPackageV2Helper.Instance.StartStatTop10(); //红包活动统计排行
-            // RedPackageV2Helper.Instance.StartSendPrize(); //红包活动发奖
-            // BalancePayBackService.Instance.Start(); //余额支付队列
-            // ReservePayBackService.Instance.Start(); //储备金支付队列
-            // LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
-            // OperatePrizeService.Instance.Start(); //运营中心奖励发奖
-            // MessageCenterService.Instance.Start(); // 消息队列
-            // RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
-            // StoreApplyHelper.Instance.Start(); // 每月1号重置仓库额度
-            // StoreApplyHelper.Instance.StartEverTime();
-            // StatService.Instance.StatUserLevel(); //升级
-            // ProfitHelperV2.Instance.StatProfit(); //创客分润
-            // StatService.Instance.StartOpenReward(); //实时获取开机奖励
-            // StatService.Instance.ListenFluxRecord(); //实时获取流量费分佣
+            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
+            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
+            SycnSpBindService.Instance.Start(); //同步SP绑定数据
+            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
+            SycnSpActiveService.Instance.Start(); //同步SP激活数据
+            SycnSpTradeService.Instance.Start(); //同步SP交易数据
+            SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
+            SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
+            RedPackageV2Helper.Instance.Start(); //每天生成红包
+            RedPackageV2Helper.Instance.StartStatTop10(); //红包活动统计排行
+            RedPackageV2Helper.Instance.StartSendPrize(); //红包活动发奖
+            BalancePayBackService.Instance.Start(); //余额支付队列
+            ReservePayBackService.Instance.Start(); //储备金支付队列
+            LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
+            OperatePrizeService.Instance.Start(); //运营中心奖励发奖
+            MessageCenterService.Instance.Start(); // 消息队列
+            RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
+            StoreApplyHelper.Instance.Start(); // 每月1号重置仓库额度
+            StoreApplyHelper.Instance.StartEverTime();
+            StatService.Instance.StatUserLevel(); //升级
+            ProfitHelperV2.Instance.StatProfit(); //创客分润
+            StatService.Instance.StartOpenReward(); //实时获取开机奖励
+            StatService.Instance.ListenFluxRecord(); //实时获取流量费分佣
             //必须打开的
 
-            // HelpProfitPreMerchantHelper.Instance.Start(); //助利宝每天增加指定数量商机
-            // SetDepositService.Instance.Start(); //调整费率(通知、标记)
-            // SetDepositPostService.Instance.Start(); //提交支付公司设置费率接口
-            // SetDepositPostService.Instance.StartKdb(); //监控开店宝费率设置结果
-            // SetFeeFlagService.Instance.Start(); //118天提前通知创客费率调升消息
-            // ResetSmallStoreHelper.Instance.Start(); //每月重置小分仓额度
-            // OperateService.Instance.Start(); //运营中心每天统计一次发货量、库存
-            // OperateAmountService.Instance.Start(); //运营中心额度变更
-            // OperateStockService.Instance.Start(); //运营中心库存实时更新
-            // StoreApplyHelper.Instance.ResetStoreReserve(); //重置分仓额度
-            // LeaderApplyCouponsHelper.Instance.Start(); //盟主储蓄金申请机具券打标记
-            // // UserMonthFeeHelper.Instance.Start(); //每月创客服务费
-            // // UserMonthFeeHelper.Instance.Start2(); //临时扣创客服务费
-            // DepositReturnService.Instance.Start(); //退押金到支付宝余额
-            // // PosExpiredHelper.Instance.Start(); //过期机具提醒
-            // PosExpiredHelper.Instance.StartPay(); //过期机具扣费
+            HelpProfitPreMerchantHelper.Instance.Start(); //助利宝每天增加指定数量商机
+            SetDepositService.Instance.Start(); //调整费率(通知、标记)
+            SetDepositPostService.Instance.Start(); //提交支付公司设置费率接口
+            SetDepositPostService.Instance.StartKdb(); //监控开店宝费率设置结果
+            SetFeeFlagService.Instance.Start(); //118天提前通知创客费率调升消息
+            ResetSmallStoreHelper.Instance.Start(); //每月重置小分仓额度
+            OperateService.Instance.Start(); //运营中心每天统计一次发货量、库存
+            OperateAmountService.Instance.Start(); //运营中心额度变更
+            OperateStockService.Instance.Start(); //运营中心库存实时更新
+            StoreApplyHelper.Instance.ResetStoreReserve(); //重置分仓额度
+            LeaderApplyCouponsHelper.Instance.Start(); //盟主储蓄金申请机具券打标记
+            // UserMonthFeeHelper.Instance.Start(); //每月创客服务费
+            // UserMonthFeeHelper.Instance.Start2(); //临时扣创客服务费
+            DepositReturnService.Instance.Start(); //退押金到支付宝余额
+            // PosExpiredHelper.Instance.Start(); //过期机具提醒
+            PosExpiredHelper.Instance.StartPay(); //过期机具扣费
 
             // StatService.Instance.StartPosActNum(); //实时统计激活数
             // StatService.Instance.StartNewUserNum(); //实时统计新增创客数