Explorar o código

返现逻辑问题

lcl hai 1 ano
pai
achega
1706749b9e
Modificáronse 1 ficheiros con 25 adicións e 20 borrados
  1. 25 20
      Util/HaoDa/ProfitHelper.cs

+ 25 - 20
Util/HaoDa/ProfitHelper.cs

@@ -155,6 +155,7 @@ namespace MySystem
                                                     MerchantAddInfo merchantAdd = db.MerchantAddInfo.FirstOrDefault(m => m.Id == suborder.MerchantId) ?? new MerchantAddInfo();
                                                     
                                                     //聚合支付退款
+                                                    bool BackStatus = false;
                                                     decimal RefundAmount = GetMoney * 100;
                                                     RefundAmount = Math.Round(RefundAmount, 2);
                                                     if(!orderids.Contains(suborder.Id))
@@ -162,7 +163,7 @@ namespace MySystem
                                                         function.WriteLog("请求退款接口", "返现逻辑日志");
                                                         string RefundNo = "HDTK" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
                                                         var info = HaoDaHelper.Instance.AggregatedPayRefund(merchantAdd.OutMchtNo, merchantAdd.StoreNo, RefundNo, suborder.OrderNo, RefundAmount.ToString("f0"));
-                                                        if(info.Contains("\"resultCode\":\"1\""))
+                                                        if(info.Contains("\"resultCode\":\"1\"") && info.Contains("\"tradeStatus\":\"2\""))
                                                         {
                                                             db.ConsumerProfit.Add(new ConsumerProfit()
                                                             {
@@ -178,33 +179,37 @@ namespace MySystem
                                                                 SeoDescription = RefundNo,
                                                             });
                                                             db.SaveChanges();
+                                                            BackStatus = true;
                                                         }
                                                         function.WriteLog("接口返回:" + info, "返现逻辑日志");
                                                         orderids.Add(suborder.Id);
                                                     }
 
-                                                    merchant.ActCurrentAmount += Math.Round(GetMoney, 2); //活动已返金额
-                                                    db.SaveChanges();
-                                                    function.WriteLog(suborder.CurDivi + ":" + suborder.MaxDivi, "返现逻辑日志");
-                                                    if (suborder.CurDivi < suborder.MaxDivi)
+                                                    if(BackStatus)
                                                     {
-                                                        function.WriteLog("返现未达最大值继续", "返现逻辑日志");
-                                                        // RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, suborder);
-                                                        RedisDbconn.Instance.SetList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, 0, suborder);
-                                                    }
-                                                    else
-                                                    {
-                                                        suborder.CurDivi = TmpCurDivi;
-                                                        function.WriteLog("返现达最大值,出局", "返现逻辑日志");
-                                                        RedisDbconn.Instance.DelFromList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, suborder);
-                                                        ConsumerOrders editOrder = db.ConsumerOrders.FirstOrDefault(m => m.Id == suborder.Id);
-                                                        if (editOrder != null)
+                                                        merchant.ActCurrentAmount += Math.Round(GetMoney, 2); //活动已返金额
+                                                        db.SaveChanges();
+                                                        function.WriteLog(suborder.CurDivi + ":" + suborder.MaxDivi, "返现逻辑日志");
+                                                        if (suborder.CurDivi < suborder.MaxDivi)
                                                         {
-                                                            editOrder.ReturnFlag = 0;
-                                                            editOrder.CurDivi = editOrder.MaxDivi;
-                                                            db.SaveChanges();
+                                                            function.WriteLog("返现未达最大值继续", "返现逻辑日志");
+                                                            // RedisDbconn.Instance.AddList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, suborder);
+                                                            RedisDbconn.Instance.SetList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, 0, suborder);
+                                                        }
+                                                        else
+                                                        {
+                                                            suborder.CurDivi = TmpCurDivi;
+                                                            function.WriteLog("返现达最大值,出局", "返现逻辑日志");
+                                                            RedisDbconn.Instance.DelFromList("ConsumerOrdersHd:Divi:" + PayMode + ":" + MerchantId, suborder);
+                                                            ConsumerOrders editOrder = db.ConsumerOrders.FirstOrDefault(m => m.Id == suborder.Id);
+                                                            if (editOrder != null)
+                                                            {
+                                                                editOrder.ReturnFlag = 0;
+                                                                editOrder.CurDivi = editOrder.MaxDivi;
+                                                                db.SaveChanges();
+                                                            }
+                                                            OutCount += 1;
                                                         }
-                                                        OutCount += 1;
                                                     }
                                                     Thread.Sleep(1000);