瀏覽代碼

修复每天重置交易额的问题

lcl 1 年之前
父節點
當前提交
f1c53ae9ec
共有 3 個文件被更改,包括 84 次插入78 次删除
  1. 8 5
      AppStart/Helper/RecommandKingHelper.cs
  2. 19 18
      AppStart/Helper/StatService.cs
  3. 57 55
      Startup.cs

+ 8 - 5
AppStart/Helper/RecommandKingHelper.cs

@@ -41,8 +41,8 @@ namespace MySystem
         {
             DateTime check = DateTime.Parse("2023-10-01 00:00:00");
             DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
-            string TradeMonth = DateTime.Now.ToString("yyyyMM");
-            string PreTradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
+            string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
+            string PreTradeMonth = DateTime.Now.AddMonths(-2).ToString("yyyyMM");
             List<int> ProductIds = new List<int>();
             ProductIds.Add(10);
             ProductIds.Add(11);
@@ -54,16 +54,17 @@ namespace MySystem
             ProductIds.Add(39);
             ProductIds.Add(40);
             WebCMSEntities db = new WebCMSEntities();
+            ReadModels.WebCMSEntities readdb = new ReadModels.WebCMSEntities();
             //统计当月下单名单
-            List<int> uids = db.Orders.Where(m => m.PayDate >= check && m.Status > 0 && m.Sort == 0 && ProductIds.Contains(m.ProductId)).ToList().Select(m => m.UserId).Distinct().ToList();
+            List<int> uids = readdb.Orders.Where(m => m.PayDate >= check && m.Status > 0 && m.Sort == 0 && ProductIds.Contains(m.ProductId)).ToList().Select(m => m.UserId).Distinct().ToList();
             foreach(int uid in uids)
             {
                 int ActCount = 0;
                 if(ActCount == 0)
                 {
-                    if(db.UserTradeMonthSummary.Any(m => m.UserId == uid && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId != 14))
+                    if(readdb.UserTradeMonthSummary.Any(m => m.UserId == uid && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId != 14))
                     {
-                        ActCount += db.UserTradeMonthSummary.Where(m => m.UserId == uid && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId != 14).Sum(m => m.ActiveBuddyMerStatus);
+                        ActCount += readdb.UserTradeMonthSummary.Where(m => m.UserId == uid && m.TradeMonth == TradeMonth && m.SeoTitle == "team" && m.BrandId != 14).Sum(m => m.ActiveBuddyMerStatus);
                     }
                 }
                 if(ActCount == 0)
@@ -87,6 +88,7 @@ namespace MySystem
                         if(!string.IsNullOrEmpty(ParentNav))
                         {
                             string[] ParentNavList = ParentNav.Replace(",,", ",").Trim(',').Split(',');
+                            Array.Reverse(ParentNavList);
                             foreach(string UserIdString in ParentNavList)
                             {
                                 int UserId = int.Parse(UserIdString);
@@ -127,6 +129,7 @@ namespace MySystem
                 }
             }
             db.Dispose();
+            readdb.Dispose();
         }
 
         public decimal GetTradeAmt(int UserId, string TradeMonth)

+ 19 - 18
AppStart/Helper/StatService.cs

@@ -1845,35 +1845,35 @@ namespace MySystem
             {
                 CustomerSqlConn.op("update Users set ThisMonthTrade=0 where ThisMonthTrade>0", MysqlConn.SqlConnStr);
             }
-            string sql = "";
+            Dictionary<string, decimal> dic = new Dictionary<string, decimal>();
             DataTable list = CustomerSqlConn.dtable("select UserId,sum(HelpNonDirectTradeAmt+HelpNonDirectDebitTradeAmt+NotHelpNonDirectTradeAmt+NotHelpNonDirectDebitTradeAmt+ProfitNonDirectTradeAmt+ProfitNonDirectDebitTradeAmt) from TradeDaySummary where Id>=15055757 and TradeMonth='" + TradeMonth + "' and SeoTitle='team' and UserId>0 group by UserId", MysqlConn.ReadSqlConnStr);
-            int index = 0;
             foreach (DataRow dr in list.Rows)
             {
-                index += 1;
                 string UserId = dr["UserId"].ToString();
                 string ThisMonthTrade = dr[1].ToString();
-                sql += "update Users set ThisMonthTrade=" + ThisMonthTrade + " where Id=" + UserId + ";";
-                if(index >= 200)
-                {
-                    CustomerSqlConn.op(sql, MysqlConn.SqlConnStr);
-                    sql = "";
-                    index = 0;
-                }
-            }
-            if(!string.IsNullOrEmpty(sql))
-            {
-                CustomerSqlConn.op(sql, MysqlConn.SqlConnStr);
+                dic.Add(UserId, decimal.Parse(function.CheckNum(ThisMonthTrade)));
             }
-            sql = "";
-            index = 0;
             list = CustomerSqlConn.dtable("select UserId,sum(ProfitTradeAmt+ProfitDebitTradeAmt) from TradeDaySummary2 where TradeMonth='" + TradeMonth + "' and SeoTitle='team' and UserId>0 group by UserId", MysqlConn.ReadSqlConnStr);
             foreach (DataRow dr in list.Rows)
             {
-                index += 1;
                 string UserId = dr["UserId"].ToString();
                 string ThisMonthTrade = dr[1].ToString();
-                sql += "update Users set ThisMonthTrade=ThisMonthTrade+" + ThisMonthTrade + " where Id=" + UserId + ";";
+                if(dic.ContainsKey(UserId))
+                {
+                    dic[UserId] += decimal.Parse(function.CheckNum(ThisMonthTrade));
+                }
+                else
+                {
+                    dic.Add(UserId, decimal.Parse(function.CheckNum(ThisMonthTrade)));
+                }
+            }
+
+            int index = 0;
+            string sql = "";
+            foreach(string UserId in dic.Keys)
+            {
+                index += 1;
+                sql += "update Users set ThisMonthTrade=ThisMonthTrade+" + dic[UserId] + " where Id=" + UserId + ";";
                 if(index >= 200)
                 {
                     CustomerSqlConn.op(sql, MysqlConn.SqlConnStr);
@@ -1885,6 +1885,7 @@ namespace MySystem
             {
                 CustomerSqlConn.op(sql, MysqlConn.SqlConnStr);
             }
+
             // Thread th = new Thread(StatTradeAmountEverDay);
             // th.IsBackground = true;
             // th.Start(date);

+ 57 - 55
Startup.cs

@@ -166,66 +166,68 @@ namespace MySystem
             }
             if(Library.ConfigurationManager.EnvironmentFlag == 2)
             {
-                SycnSpBindService.Instance.Start(); //同步SP绑定数据
-                SycnSpBindService.Instance.StartSim(); //同步SP广电卡绑定数据
-                SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-                SycnSpActiveService.Instance.Start(); //同步SP激活数据
-                SycnSpTradeService.Instance.Start(); //同步SP交易数据
-                SycnSpTradeService.Instance.StartTradeStatus(); //恢复原始交易没有统计上的数据
-                SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
-                SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
-                SycnSpMerchantRecordService.Instance.Start(); //同步SP商户记录数据
+                // SycnSpBindService.Instance.Start(); //同步SP绑定数据
+                // SycnSpBindService.Instance.StartSim(); //同步SP广电卡绑定数据
+                // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
+                // SycnSpActiveService.Instance.Start(); //同步SP激活数据
+                // SycnSpTradeService.Instance.Start(); //同步SP交易数据
+                // SycnSpTradeService.Instance.StartTradeStatus(); //恢复原始交易没有统计上的数据
+                // SycnSpChangeBindService.Instance.Start(); //同步SP换绑数据
+                // SycnSpUnBindService.Instance.Start(); //同步SP解绑数据
+                // SycnSpMerchantRecordService.Instance.Start(); //同步SP商户记录数据
 
-                StatService.Instance.StartActiveReward(); //实时处理激活奖励
-                StatService.Instance.StartActiveReward1(); //实时处理0押激活奖励
-                StatService.Instance.StartActiveReward2(); //实时处理盒易付0押激活奖励
-                StatService.Instance.StartActiveReward15(); //实时处理来客吧0押激活奖励
-                StatService.Instance.StartSimActive(); //实时广电卡激活奖励
-                StatService.Instance.StartOpenReward(); //实时获取开机奖励
-                LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
-                OperatePrizeService.Instance.Start(); //运营中心奖励发奖
-                ActRewardService.Instance.Start(); //发放激活奖励
-                HelpProfitPreMerchantHelper.Instance.Start(); //助利宝每天增加指定数量商机
-                AddActService.Instance.Start(); //划拨后检查机具激活状态,并自动补录
-                PrePosRingService.Instance.Start(); //预发未申请提醒
-                PrePosWithholdService.Instance.Start(); //预发机过期未申请提交到预扣款
-                PrePosWithholdService.Instance.StartPre(); //预发机申请成功,处理预扣款
-                SycnMerchantTradeService.Instance.Start(); //同步商户交易额
+                // StatService.Instance.StartActiveReward(); //实时处理激活奖励
+                // StatService.Instance.StartActiveReward1(); //实时处理0押激活奖励
+                // StatService.Instance.StartActiveReward2(); //实时处理盒易付0押激活奖励
+                // StatService.Instance.StartActiveReward15(); //实时处理来客吧0押激活奖励
+                // StatService.Instance.StartSimActive(); //实时广电卡激活奖励
+                // StatService.Instance.StartOpenReward(); //实时获取开机奖励
+                // LeaderPrizeService.Instance.Start(); //大盟主奖励发奖
+                // OperatePrizeService.Instance.Start(); //运营中心奖励发奖
+                // ActRewardService.Instance.Start(); //发放激活奖励
+                // HelpProfitPreMerchantHelper.Instance.Start(); //助利宝每天增加指定数量商机
+                // AddActService.Instance.Start(); //划拨后检查机具激活状态,并自动补录
+                // PrePosRingService.Instance.Start(); //预发未申请提醒
+                // PrePosWithholdService.Instance.Start(); //预发机过期未申请提交到预扣款
+                // PrePosWithholdService.Instance.StartPre(); //预发机申请成功,处理预扣款
+                // SycnMerchantTradeService.Instance.Start(); //同步商户交易额
 
-                MessageCenterService.Instance.Start(); // 消息队列
-                LeaderTimeoutSendMessageService.Instance.Start(); //盟主过期消息提醒
+                // MessageCenterService.Instance.Start(); // 消息队列
+                // LeaderTimeoutSendMessageService.Instance.Start(); //盟主过期消息提醒
 
-                AlipayPayBack2Service.Instance.Start(); //支付宝回调处理
-                PosCouponPrizeService.Instance.Start(); //购券奖励队列
-                OperateAddService.Instance.Start(); //购买运营中心队列
-                BalancePayBackService.Instance.Start(); //余额支付队列
-                ReservePayBackService.Instance.Start(); //储备金支付队列
-                OrderRefundService.Instance.Start(); //商城订单退款
+                // AlipayPayBack2Service.Instance.Start(); //支付宝回调处理
+                // PosCouponPrizeService.Instance.Start(); //购券奖励队列
+                // OperateAddService.Instance.Start(); //购买运营中心队列
+                // BalancePayBackService.Instance.Start(); //余额支付队列
+                // ReservePayBackService.Instance.Start(); //储备金支付队列
+                // OrderRefundService.Instance.Start(); //商城订单退款
 
-                StatService.Instance.Start(); //每日重置交易额
-                StoreApplyHelper.Instance.Start(); // 每月1号重置仓库额度
-                DepositReturnStatService.Instance.Start(); //每月1号统计达标商户(退押需要的)
-                DepositReturnStatService.Instance.StartEverTime(); //统计单个商户达标数据(退押需要的)
-                AutoOpOrderService.Instance.StartOrderCancel(); //自动取消超时订单(15分钟)
-                OperateStockService.Instance.Start(); //运营中心库存实时更新
-                ResetSmallStoreHelper.Instance.Start(); //每月重置小分仓额度
-                ResetSmallStoreHelper.Instance.Listen(); //监听每月1号重置小分仓额度
-                OperateService.Instance.Start(); //运营中心每天统计一次发货量、库存
-                TimeOutPosChargeService.Instance.StartDoChargeAmount(); //实时监听待扣款记录,并扣费
-                InstallmentDeductionService.Instance.Start(); //分期扣款(每月20号执行)
-                LeaderAmountMonthChangeQueue.Instance.Start(); //每月一号记录上月盟主储蓄金和可提现余额
-                LeaderCompPrizeHelper.Instance.Start(); //领导人达标奖
-                ResetPosFirstFlagAndIsExecuteService.Instance.Start(); //每月1号计算商户首台机具标记
+                // StatService.Instance.Start(); //每日重置交易额
+                // StoreApplyHelper.Instance.Start(); // 每月1号重置仓库额度
+                // DepositReturnStatService.Instance.Start(); //每月1号统计达标商户(退押需要的)
+                // DepositReturnStatService.Instance.StartEverTime(); //统计单个商户达标数据(退押需要的)
+                // AutoOpOrderService.Instance.StartOrderCancel(); //自动取消超时订单(15分钟)
+                // OperateStockService.Instance.Start(); //运营中心库存实时更新
+                // ResetSmallStoreHelper.Instance.Start(); //每月重置小分仓额度
+                // ResetSmallStoreHelper.Instance.Listen(); //监听每月1号重置小分仓额度
+                // OperateService.Instance.Start(); //运营中心每天统计一次发货量、库存
+                // TimeOutPosChargeService.Instance.StartDoChargeAmount(); //实时监听待扣款记录,并扣费
+                // InstallmentDeductionService.Instance.Start(); //分期扣款(每月20号执行)
+                // LeaderAmountMonthChangeQueue.Instance.Start(); //每月一号记录上月盟主储蓄金和可提现余额
+                // LeaderCompPrizeHelper.Instance.Start(); //领导人达标奖
+                // ResetPosFirstFlagAndIsExecuteService.Instance.Start(); //每月1号计算商户首台机具标记
 
-                ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-                RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
-                StoreApplyHelper.Instance.StartEverTime(); //分仓临时额度变更
-                PreStoreApplyHelper.Instance.StartEverTime(); //小分仓临时额度变更
-                OperateAmountService.Instance.Start(); //运营中心额度变更
-                LeaderApplyCouponsHelper.Instance.Start(); //盟主储蓄金申请机具券打标记
-                DepositReturnService.Instance.Start(); //退押金到支付宝余额
-                StoreApplyHelper.Instance.ResetStoreReserve(); //重置分仓额度
-                AddPosCouponPrizeHelper.Instance.Start(); //补机具券奖励
+                // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
+                // RecommendActStatService.Instance.Start(); //推荐王奖励数据统计
+                // StoreApplyHelper.Instance.StartEverTime(); //分仓临时额度变更
+                // PreStoreApplyHelper.Instance.StartEverTime(); //小分仓临时额度变更
+                // OperateAmountService.Instance.Start(); //运营中心额度变更
+                // LeaderApplyCouponsHelper.Instance.Start(); //盟主储蓄金申请机具券打标记
+                // DepositReturnService.Instance.Start(); //退押金到支付宝余额
+                // StoreApplyHelper.Instance.ResetStoreReserve(); //重置分仓额度
+                // AddPosCouponPrizeHelper.Instance.Start(); //补机具券奖励
+
+                RecommandKingHelper.Instance.Start();
 
                 // TestHelper.Instance.Start();
             }