瀏覽代碼

Wifi预扣款激活处理,考虑锁定情况

lcl 6 月之前
父節點
當前提交
720c2048ef
共有 1 個文件被更改,包括 17 次插入12 次删除
  1. 17 12
      AppStart/Helper/WifiWithholdBackService.cs

+ 17 - 12
AppStart/Helper/WifiWithholdBackService.cs

@@ -39,22 +39,27 @@ namespace MySystem
                         WebCMSEntities db = new WebCMSEntities();
                         decimal ChargeAmount = 0;
                         bool doBack = true; //是否减少账户预扣总额
-                        ToChargeBackRecord back = db.ToChargeBackRecord.FirstOrDefault(m => m.UserId == UserId && m.Field1 == SnNo && (m.Remark == "WIFI超时未激活扣款" || m.Remark.Contains(SnNo)) && m.LockFlag == 0);
+                        ToChargeBackRecord back = db.ToChargeBackRecord.FirstOrDefault(m => m.UserId == UserId && m.Field1 == SnNo && (m.Remark == "WIFI超时未激活扣款" || m.Remark.Contains(SnNo)));
                         if(back != null)
                         {
-                            back.LockFlag = 1;
-                            db.SaveChanges();
-                            function.WriteLog("预扣款数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(back), "Wifi预扣款激活处理");
-                            ChargeAmount = back.ChargeAmount;
-                            function.WriteLog("预扣款是否已扣:" + back.Status, "Wifi预扣款激活处理");
-                            if(back.Status == 1)
+                            if(back.LockFlag == 0)
                             {
-                                Utils.Instance.OpAccount(back.UserId, ChargeAmount, 138, false);
-                                doBack = false;
+                                function.WriteLog("预扣款数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(back), "Wifi预扣款激活处理");
+                                ChargeAmount = back.ChargeAmount;
+                                function.WriteLog("预扣款是否已扣:" + back.Status, "Wifi预扣款激活处理");
+                                if(back.Status == 1)
+                                {
+                                    Utils.Instance.OpAccount(back.UserId, ChargeAmount, 138, false);
+                                    doBack = false;
+                                }
+                                db.ToChargeBackRecord.Remove(back);
+                                db.SaveChanges();
+                            }
+                            else
+                            {
+                                Thread.Sleep(5000);
+                                RedisDbconn.Instance.AddList("WifiWithholdBackQueue", content);
                             }
-                            db.ToChargeBackRecord.Remove(back);
-                            back.LockFlag = 0;
-                            db.SaveChanges();
                         }
                         db.Dispose();