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

修复金控重新绑定机具,商户归位问题

lcl 2 жил өмнө
parent
commit
9975d4140b

+ 29 - 8
AppStart/Helper/SycnSpServer/SycnSpMerchantService.cs

@@ -88,23 +88,44 @@ namespace MySystem
                                             IsFirst = 0;
                                         }
                                     }
-                                    pos.IsFirst = IsFirst;
                                     add = db.PosMerchantInfo.Add(new PxcModels.PosMerchantInfo()
                                     {
                                         CreateDate = Mer.CreateTime,
                                         KqMerNo = Mer.MerNo,
                                         MerchantNo = Mer.MerNo,
                                     }).Entity;
+                                    //查询商户备份表,如果有记录则继承之前的商户Id
+                                    if(Mer.ProductType == "1") //判断是否金控
+                                    {
+                                        function.WriteLog(DateTime.Now.ToString(), "监控金控换绑机具日志");
+                                        function.WriteLog("Mer.MerNo:" + Mer.MerNo, "监控金控换绑机具日志");
+                                        PxcModels.PosMerchantInfoBak MerBak = db.PosMerchantInfoBak.FirstOrDefault(m => m.KqMerNo == Mer.MerNo);
+                                        if(MerBak != null)
+                                        {
+                                            function.WriteLog("有备份商户-机具SN:" + MerBak.KqSnNo, "监控金控换绑机具日志");
+                                            PxcModels.PosMachinesTwo OldPos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == MerBak.KqSnNo);
+                                            if(OldPos != null)
+                                            {
+                                                function.WriteLog("首台机标记:新机具" + pos.IsFirst + ",老机具" + OldPos.IsFirst, "监控金控换绑机具日志");
+                                                pos.IsFirst = OldPos.IsFirst;
+                                            }
+                                            add.Id = MerBak.Id;
+                                            db.PosMerchantInfoBak.Remove(MerBak);
+                                        }
+                                        else
+                                        {
+                                            function.WriteLog("无备份商户", "监控金控换绑机具日志");
+                                            pos.IsFirst = IsFirst;
+                                        }
+                                        function.WriteLog("\n\n", "监控金控换绑机具日志");
+                                    }
+                                    else
+                                    {
+                                        pos.IsFirst = IsFirst;
+                                    }
                                     db.SaveChanges();
                                     function.WriteLog("MerNo:" + Mer.MerNo + ",PosSn:" + pos.PosSn + ",IsFirst:" + IsFirst + "\n\n", "监控机具是否互斥");
                                 }
-                                // else
-                                // {
-                                //     string SnNo = add.KqSnNo;
-                                //     PxcModels.MachineForMerNo oldPosFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == SnNo) ?? new PxcModels.MachineForMerNo();
-                                //     PxcModels.PosMachinesTwo oldPos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == oldPosFor.SnId) ?? new PxcModels.PosMachinesTwo();
-                                //     pos.IsFirst = oldPos.IsFirst;
-                                // }
                                 add.UpdateDate = Mer.UpdateTime;
                                 add.TopUserId = TopUserId;
                                 add.BrandId = BrandId;