Эх сурвалжийг харах

调整创客服务费逻辑

lichunlei 2 жил өмнө
parent
commit
a108423db6

+ 5 - 2
AppStart/Helper/AlipayPayBack2Service.cs

@@ -761,7 +761,10 @@ namespace MySystem
             decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
             decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
             account.BalanceAmount += Money;
-            account.TotalAmount += Money;
+            if(Money > 0)
+            {
+                account.TotalAmount += Money;
+            }
             decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
             decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
             decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
@@ -771,7 +774,7 @@ namespace MySystem
                 UpdateDate = DateTime.Now,
                 UserId = UserId, //创客
                 ChangeType = ChangeType, //变动类型
-                ChangeAmount = Money, //变更金额
+                ChangeAmount = Math.Abs(Money), //变更金额
                 BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
                 AfterTotalAmount = AfterTotalAmount, //变更后总金额
                 BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额

+ 222 - 8
AppStart/UserMonthFeeHelper.cs

@@ -32,7 +32,7 @@ public class UserMonthFeeHelper
                 if(!string.IsNullOrEmpty(content))
                 {
                     WebCMSEntities db = new WebCMSEntities();
-                    DoSomething(db);
+                    DoSomething(db, int.Parse(content));
                     db.Dispose();
                 }
             }
@@ -45,19 +45,233 @@ public class UserMonthFeeHelper
         }
     }
 
-    public void DoSomething(WebCMSEntities db)
+    public void DoSomething(WebCMSEntities db, int UserId)
     {
-        var Users = db.UserAccount.Select(m => new { m.Id, m.BalanceAmount }).Where(m => m.BalanceAmount > 0).ToList();
-        foreach(var User in Users)
+        DateTime Start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
+        DateTime WithoutStart = DateTime.Parse("2023-02-20 00:00:00"); //收支明细服务费记录开始时间
+        UserAccount User = db.UserAccount.FirstOrDefault(m => m.Id == UserId && m.BalanceAmount >= 10);
+        if(User != null)
+        {
+            bool check = db.UserAccountRecord.Any(m => m.UserId == User.Id && m.CreateDate >= Start && m.CreateDate >= WithoutStart && m.ChangeType == 125);
+            if(!check)
+            {
+                // if(User.BalanceAmount > 10)
+                // {
+                    AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -10, 125);
+                // }
+                // else
+                // {
+                //     AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -User.BalanceAmount, 125);
+                // }
+            }
+        }
+    }
+
+    public void Start2()
+    {
+        Thread th = new Thread(DoWorks2);
+        th.IsBackground = true;
+        th.Start();
+    }
+
+
+    private void DoWorks2()
+    {
+        while (true)
         {
-            if(User.BalanceAmount > 10)
+            try
             {
-                AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -10, 125);
+                if(DateTime.Now.Hour == 1 && DateTime.Now < DateTime.Parse("2023-02-20 00:00:00"))
+                {
+                    string check = function.ReadInstance("/UserMonthFee/" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
+                    if(string.IsNullOrEmpty(check))
+                    {
+                        function.WritePage("/UserMonthFee/", DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
+                        WebCMSEntities db = new WebCMSEntities();
+                        DoSomething2(db);
+                        db.Dispose();
+                    }
+                }
             }
-            else
+            catch (Exception ex)
             {
-                AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -User.BalanceAmount, 125);
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "创客每月月费扣款异常");
             }
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "创客每月月费扣款日志");
+            Thread.Sleep(60000);
+        }
+    }
+
+    public void DoSomething2(WebCMSEntities db)
+    {
+        DateTime Start = DateTime.Parse("2023-01-19 00:00:00"); //收支明细服务费记录开始时间
+        // DateTime ExpireDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00").AddDays(-90); //创客认证超过90天比对时间
+
+        // //超过90天创客ID集合
+        // List<int> UserIds = db.Users.Where(m => m.AuthFlag == 1 && m.AuthDate < ExpireDate).ToList().Select(m => m.Id).ToList();
+
+        List<int> UserIds = new List<int>();
+        UserIds.Add(311);
+        UserIds.Add(3057);
+        UserIds.Add(3061);
+        UserIds.Add(12122);
+        UserIds.Add(36591);
+        UserIds.Add(39115);
+        UserIds.Add(43435);
+        UserIds.Add(47763);
+        UserIds.Add(56954);
+        UserIds.Add(63674);
+        UserIds.Add(69804);
+        UserIds.Add(70203);
+        UserIds.Add(72356);
+        UserIds.Add(74571);
+        UserIds.Add(75261);
+        UserIds.Add(79265);
+        UserIds.Add(80363);
+        UserIds.Add(80579);
+        UserIds.Add(80639);
+        UserIds.Add(80856);
+        UserIds.Add(88455);
+        UserIds.Add(88494);
+        UserIds.Add(99635);
+        UserIds.Add(100934);
+        UserIds.Add(109518);
+        UserIds.Add(120692);
+        UserIds.Add(120896);
+        UserIds.Add(122704);
+        UserIds.Add(123101);
+        UserIds.Add(124776);
+        UserIds.Add(124822);
+        UserIds.Add(124875);
+        UserIds.Add(125094);
+        UserIds.Add(125720);
+        UserIds.Add(125969);
+        UserIds.Add(126346);
+        UserIds.Add(126781);
+        UserIds.Add(126897);
+        UserIds.Add(127469);
+        UserIds.Add(127515);
+        UserIds.Add(127645);
+        UserIds.Add(128851);
+        UserIds.Add(128969);
+        UserIds.Add(129039);
+        UserIds.Add(129061);
+        UserIds.Add(129153);
+        UserIds.Add(129220);
+        UserIds.Add(129277);
+        UserIds.Add(129307);
+        UserIds.Add(129405);
+        UserIds.Add(129434);
+        UserIds.Add(129436);
+        UserIds.Add(129443);
+        UserIds.Add(129519);
+        UserIds.Add(129659);
+        UserIds.Add(129762);
+        UserIds.Add(129914);
+        UserIds.Add(129949);
+        UserIds.Add(129980);
+        UserIds.Add(130182);
+        UserIds.Add(130307);
+        UserIds.Add(130342);
+        UserIds.Add(130546);
+        UserIds.Add(130778);
+        UserIds.Add(130837);
+        UserIds.Add(131077);
+        UserIds.Add(131879);
+        UserIds.Add(132140);
+        UserIds.Add(132567);
+        UserIds.Add(132572);
+        UserIds.Add(132936);
+        UserIds.Add(133205);
+        UserIds.Add(133216);
+        UserIds.Add(133522);
+        UserIds.Add(133649);
+        UserIds.Add(133798);
+        UserIds.Add(134112);
+        UserIds.Add(134150);
+        UserIds.Add(134307);
+        UserIds.Add(134310);
+        UserIds.Add(134318);
+        UserIds.Add(134321);
+        UserIds.Add(134522);
+        UserIds.Add(134571);
+        UserIds.Add(134840);
+        UserIds.Add(134863);
+        UserIds.Add(135039);
+        UserIds.Add(135327);
+        UserIds.Add(135434);
+        UserIds.Add(135459);
+        UserIds.Add(135475);
+        UserIds.Add(135498);
+        UserIds.Add(135590);
+        UserIds.Add(135606);
+        UserIds.Add(135719);
+        UserIds.Add(135835);
+        UserIds.Add(135877);
+        UserIds.Add(135906);
+        UserIds.Add(135924);
+        UserIds.Add(136122);
+        UserIds.Add(136346);
+        UserIds.Add(136458);
+        UserIds.Add(136581);
+        UserIds.Add(136587);
+        UserIds.Add(136700);
+        UserIds.Add(136707);
+        UserIds.Add(136980);
+        UserIds.Add(137055);
+        UserIds.Add(137123);
+        UserIds.Add(137228);
+        UserIds.Add(137313);
+        UserIds.Add(137459);
+        UserIds.Add(137468);
+        UserIds.Add(137532);
+        UserIds.Add(137617);
+        UserIds.Add(138055);
+        UserIds.Add(138074);
+        UserIds.Add(138183);
+        UserIds.Add(138275);
+        UserIds.Add(138288);
+        UserIds.Add(138359);
+        UserIds.Add(138362);
+        UserIds.Add(138440);
+        UserIds.Add(138460);
+        UserIds.Add(138581);
+        UserIds.Add(138682);
+        UserIds.Add(139109);
+        UserIds.Add(139118);
+        UserIds.Add(139172);
+        UserIds.Add(139455);
+        UserIds.Add(139517);
+        UserIds.Add(139530);
+        UserIds.Add(139890);
+        UserIds.Add(140120);
+        UserIds.Add(140274);
+        UserIds.Add(140381);
+        UserIds.Add(140397);
+        UserIds.Add(140406);
+        UserIds.Add(140522);
+        UserIds.Add(140539);
+        UserIds.Add(140540);
+        UserIds.Add(140749);
+        UserIds.Add(140753);
+        UserIds.Add(140764);
+        UserIds.Add(141057);
+        UserIds.Add(141109);
+        UserIds.Add(141406);
+        UserIds.Add(141494);
+        UserIds.Add(141892);
+        UserIds.Add(141918);
+        UserIds.Add(141951);
+        UserIds.Add(141980);
+
+        //已扣费创客ID集合  
+        List<int> UserAccountRecordIds = db.UserAccountRecord.Where(m => UserIds.Contains(m.UserId) && m.CreateDate >= Start && m.ChangeType == 125).ToList().Select(m => m.UserId).ToList();
+
+        //应该扣除而未扣的创客集合 
+        var Users = db.UserAccount.Select(m => new { m.Id, m.BalanceAmount }).Where(m => !UserAccountRecordIds.Contains(m.Id) && UserIds.Contains(m.Id) && m.BalanceAmount >= 10).ToList();
+        foreach(var User in Users)
+        {
+            AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -10, 125); //执行扣费
         }
     }
 }

+ 2 - 1
Startup.cs

@@ -221,7 +221,8 @@ namespace MySystem
             OperateStockService.Instance.Start(); //运营中心库存实时更新
             StoreApplyHelper.Instance.ResetStoreReserve(); //重置分仓额度
             // LeaderApplyCouponsHelper.Instance.Start(); //盟主储蓄金申请机具券打标记
-            UserMonthFeeHelper.Instance.Start(); //每月创客服务费
+            // UserMonthFeeHelper.Instance.Start(); //每月创客服务费
+            UserMonthFeeHelper.Instance.Start2(); //临时扣创客服务费
 
             // StatService.Instance.StartPosActNum(); //实时统计激活数
             // StatService.Instance.StartNewUserNum(); //实时统计新增创客数