Преглед изворни кода

更新实时监听待扣款记录队列

lcl пре 1 година
родитељ
комит
05f7a9169d
1 измењених фајлова са 25 додато и 16 уклоњено
  1. 25 16
      AppStart/Helper/TimeOutPosChargeService.cs

+ 25 - 16
AppStart/Helper/TimeOutPosChargeService.cs

@@ -153,6 +153,7 @@ namespace MySystem
                 function.WriteLog(items.UserId.ToString(), "扣款监听日志");
                 var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new UserAccount();
                 var record = info.FirstOrDefault(m => m.Id == items.Id);
+                var check = false; //扣款成功标记
 
                 function.WriteLog("BalanceAmount:" + userAccount.BalanceAmount + ";ChargeAmount:" + record.ChargeAmount + ";", "扣款监听日志");
                 function.WriteLog("in", "扣款监听日志");
@@ -177,9 +178,9 @@ namespace MySystem
                 }
                 if (record.Kind < 2) //主库
                 {
-                    if (userAccount.BalanceAmount >= record.ChargeAmount)
+                    if (record.Kind == 0) //创客预扣款
                     {
-                        if (record.Kind == 0) //创客预扣款
+                        if (userAccount.BalanceAmount >= record.ChargeAmount)
                         {
                             var userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord
                             {
@@ -190,7 +191,6 @@ namespace MySystem
                                 ChangeAmount = record.ChargeAmount,
                                 ChangeType = ChangeType,
                                 Remark = Remark,
-
                             }).Entity;
 
                             function.WriteLog("ToChargeAmount:" + userAccount.ToChargeAmount + ";ChargeAmount:" + record.ChargeAmount + ";", "扣款监听日志");
@@ -200,8 +200,12 @@ namespace MySystem
                                 userAccount.ToChargeAmount -= record.ChargeAmount;//分期扣款
                             }
                             userAccount.BalanceAmount -= record.ChargeAmount;//扣减余额
+                            check = true;
                         }
-                        if (record.Kind == 1) //盟主预扣款
+                    }
+                    if (record.Kind == 1) //盟主预扣款
+                    {
+                        if (userAccount.BalanceAmount >= record.ChargeAmount)
                         {
                             //11:盟主储蓄金增减单(兑换机具券 机具券兑换 系统增加(盟主储蓄金) 系统扣减(盟主储蓄金) 储备金购买)
                             // 示例:+/-金额
@@ -234,15 +238,16 @@ namespace MySystem
                                 userAccount.LeaderToChargeAmount -= record.ChargeAmount;//扣减盟主预扣款
                             }
                             userAccount.LeaderBalanceAmount -= record.ChargeAmount;//扣减盟主可提现余额
+                            check = true;
                         }
                     }
                 }
                 else //运营中心
                 {
                     var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new MySystem.OpModels.UserAccount();
-                    if (opUserAccount.ValidForGetAmount >= record.ChargeAmount)
+                    if (record.Kind == 2) //运营中心预扣款
                     {
-                        if (record.Kind == 2) //运营中心预扣款
+                        if (opUserAccount.ValidForGetAmount >= record.ChargeAmount)
                         {
                             var amoutRecord = opdb.AmountRecord.Add(new MySystem.OpModels.AmountRecord
                             {
@@ -262,23 +267,27 @@ namespace MySystem
                                 userAccount.OperateToChargeAmount -= record.ChargeAmount;//扣减运营中心预扣款
                             }
                             opUserAccount.ValidForGetAmount -= record.ChargeAmount;//扣减运营中心可提现余额
+                            check = true;
                         }
                     }
                 }
-                record.Status = 1;
-                if (record.ChargeType == 2)
+                if (check)
                 {
-                    var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Id == record.Sort) ?? new ToChargeBackRecordSub();
-                    var toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == toChargeBackRecordSub.ParentId && m.TimeNumber > m.QueryCount) ?? new ToChargeByStage();
-                    toChargeBackRecordSub.Status = 1;
-                    toChargeByStage.QueryCount += 1;
-                    toChargeByStage.ChargeAmount += toChargeBackRecordSub.ChargeAmount;
-                    if (toChargeByStage.TimeNumber == toChargeByStage.QueryCount)
+                    record.Status = 1;
+                    record.UpdateDate = DateTime.Now;
+                    if (record.ChargeType == 2)
                     {
-                        toChargeByStage.Status = 1;
+                        var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Id == record.Sort) ?? new ToChargeBackRecordSub();
+                        var toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == toChargeBackRecordSub.ParentId && m.TimeNumber > m.QueryCount) ?? new ToChargeByStage();
+                        toChargeBackRecordSub.Status = 1;
+                        toChargeByStage.QueryCount += 1;
+                        toChargeByStage.ChargeAmount += toChargeBackRecordSub.ChargeAmount;
+                        if (toChargeByStage.TimeNumber == toChargeByStage.QueryCount)
+                        {
+                            toChargeByStage.Status = 1;
+                        }
                     }
                 }
-                record.UpdateDate = DateTime.Now;
                 function.WriteLog("\n\n", "扣款监听日志");
             }
             db.SaveChanges();