Просмотр исходного кода

Merge branch 'feature-常见问题' into develop

lcl 3 лет назад
Родитель
Сommit
893a47b815

+ 33 - 25
AppStart/ExcelHelper.cs

@@ -839,6 +839,7 @@ namespace MySystem
                                                         machine.IsPurchase = 0;
                                                         machine.LeaderUserId = 0;
                                                         machine.PreUserId = 0;
+                                                        PublicFunction.ClearPosHistory(db, SnNo); //清除机具历史记录
                                                         db.SaveChanges();
                                                         if (!storeData.ContainsKey(storefor.StoreId + "_" + BrandId))
                                                         {
@@ -1140,7 +1141,7 @@ namespace MySystem
                                                 {
                                                     UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == edit.UserId);
                                                     if (account != null)
-                                                    {
+                                                    {                                                        
                                                         account.QueryCount = 1;
                                                         decimal TradeAmount = edit.TradeAmount;
                                                         decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
@@ -1206,31 +1207,38 @@ namespace MySystem
                                                     if (account != null)
                                                     {
                                                         decimal TradeAmount = edit.TradeAmount;
-                                                        decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                        decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                        decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                        account.BalanceAmount += TradeAmount;
-                                                        account.FreezeAmount -= TradeAmount;
-                                                        decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                        decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                        decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        if(account.FreezeAmount < TradeAmount)
                                                         {
-                                                            CreateDate = DateTime.Now,
-                                                            UpdateDate = DateTime.Now,
-                                                            UserId = edit.UserId, //创客
-                                                            ChangeType = 6, //变动类型
-                                                            ProductType = 99, //产品类型
-                                                            ChangeAmount = TradeAmount, //变更金额
-                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                        });
-                                                        db.SaveChanges();
-                                                        RedisDbconn.Instance.Set("UserAccount:" + edit.UserId, account);
+                                                            RedisDbconn.Instance.AddList("ErrList" + checkKey, "提现记录单号为" + CashOrderNo + "的创客冻结金额异常");
+                                                        }
+                                                        else
+                                                        {
+                                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                                                            account.BalanceAmount += TradeAmount;
+                                                            account.FreezeAmount -= TradeAmount;
+                                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                                                            db.UserAccountRecord.Add(new UserAccountRecord()
+                                                            {
+                                                                CreateDate = DateTime.Now,
+                                                                UpdateDate = DateTime.Now,
+                                                                UserId = edit.UserId, //创客
+                                                                ChangeType = 6, //变动类型
+                                                                ProductType = 99, //产品类型
+                                                                ChangeAmount = TradeAmount, //变更金额
+                                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                            });
+                                                            db.SaveChanges();
+                                                            RedisDbconn.Instance.Set("UserAccount:" + edit.UserId, account);
+                                                        }
                                                     }
                                                 }
                                                 db.SaveChanges();

+ 32 - 24
AppStart/OpExcelHelper.cs

@@ -183,31 +183,39 @@ namespace MySystem
                                                     if (account != null)
                                                     {
                                                         decimal TradeAmount = edit.TradeAmount;
-                                                        decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                        decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                        decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                        account.BalanceAmount += TradeAmount;
-                                                        account.FreezeAmount -= TradeAmount;
-                                                        decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                        decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                        decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        if(account.FreezeAmount < TradeAmount)
                                                         {
-                                                            CreateDate = DateTime.Now,
-                                                            UpdateDate = DateTime.Now,
-                                                            UserId = edit.UserId, //创客
-                                                            ChangeType = 6, //变动类型
-                                                            ProductType = 99, //产品类型
-                                                            ChangeAmount = TradeAmount, //变更金额
-                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                        });
-                                                        db.SaveChanges();
-                                                        RedisDbconn.Instance.Set("OpUserAccount:" + edit.UserId, account);
+                                                            // TODO: 需要返回错误提示消息
+                                                            // RedisDbconn.Instance.AddList("ErrList" + checkKey, "提现记录单号为" + CashOrderNo + "的创客冻结金额异常");
+                                                        }
+                                                        else
+                                                        {
+                                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                                                            account.BalanceAmount += TradeAmount;
+                                                            account.FreezeAmount -= TradeAmount;
+                                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                                                            db.UserAccountRecord.Add(new UserAccountRecord()
+                                                            {
+                                                                CreateDate = DateTime.Now,
+                                                                UpdateDate = DateTime.Now,
+                                                                UserId = edit.UserId, //创客
+                                                                ChangeType = 6, //变动类型
+                                                                ProductType = 99, //产品类型
+                                                                ChangeAmount = TradeAmount, //变更金额
+                                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                            });
+                                                            db.SaveChanges();
+                                                            RedisDbconn.Instance.Set("OpUserAccount:" + edit.UserId, account);
+                                                        }
                                                     }
                                                 }
                                                 db.SaveChanges();

+ 21 - 0
AppStart/PublicFunction.cs

@@ -439,6 +439,27 @@ namespace MySystem
 
         #endregion
 
+        #region 退回仓库,清除历史记录
+
+        public static void ClearPosHistory(WebCMSEntities db, string PosSn)
+        {
+            PreSendStockDetail prepos = db.PreSendStockDetail.FirstOrDefault(m => m.SnNo == PosSn && m.Status == 1);
+            if(prepos != null)
+            {
+                prepos.Status = -1;
+                prepos.ApplyFlag = 0;
+                // db.SaveChanges();
+            }
+            MachineApply apply = db.MachineApply.FirstOrDefault(m => m.SwapSnExpand.Contains(PosSn));
+            if(apply != null)
+            {
+                apply.SwapSnExpand = apply.SwapSnExpand.Replace(PosSn, PosSn.Substring(0, 3) + "d" + PosSn.Substring(4));
+                // db.SaveChanges();
+            }
+        }
+
+        #endregion
+
 
 
         #region 测试创客Id

+ 2 - 0
Areas/Admin/Controllers/MainServer/StoreHouseController.cs

@@ -1012,6 +1012,7 @@ namespace MySystem.Areas.Admin.Controllers
                                 toStore.LaveNum += 1;
                                 fromStore.TotalNum -= 1;
                                 fromStore.LaveNum -= 1;
+                                PublicFunction.ClearPosHistory(db, posInfo.PosSn); //清除机具历史记录
                                 db.SaveChanges();
                             }
                             else
@@ -1098,6 +1099,7 @@ namespace MySystem.Areas.Admin.Controllers
                                 fuserMachineData.UnBindCount -= 1;
                                 toStore.LaveNum += 1;
                                 toStore.TotalNum += 1;
+                                PublicFunction.ClearPosHistory(db, posInfo.PosSn); //清除机具历史记录
                                 db.SaveChanges();
                             }
                             db.SaveChanges();

+ 7 - 1
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -1532,6 +1532,8 @@ namespace MySystem.Areas.Admin.Controllers
                     forMerNo.SnId = newpos.Id;
                 }
                 merchant.KqSnNo = NewSn;
+                merchant.ActiveStatus = newpos.ActivationState;
+                merchant.MerStandardDate = newpos.ActivationTime;
                 db.MachineChangeDetail.Add(new MachineChangeDetail()
                 {
                     CreateDate = DateTime.Now,
@@ -1754,6 +1756,7 @@ namespace MySystem.Areas.Admin.Controllers
                     oldpos.BuyUserId = 0;
                     oldpos.UserId = 0;
                     oldpos.Status = -1;
+                    PublicFunction.ClearPosHistory(db, oldpos.PosSn); //清除机具历史记录
                     db.SaveChanges();
 
                     PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == newpos.BindMerchantId);
@@ -1942,6 +1945,7 @@ namespace MySystem.Areas.Admin.Controllers
                     oldpos.BuyUserId = 0;
                     oldpos.UserId = 0;
                     oldpos.Status = -1;
+                    PublicFunction.ClearPosHistory(db, oldpos.PosSn); //清除机具历史记录
                     db.SaveChanges();
 
                     BrokenMachineChange add = db.BrokenMachineChange.Add(new BrokenMachineChange()
@@ -3038,7 +3042,7 @@ namespace MySystem.Areas.Admin.Controllers
             bool check = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
             if (check)
             {
-                return "开机奖励已发放,请勿重复操作";
+                return "流量费奖励已发放,请勿重复操作";
             }
             SpModels.TradeFluxRecord trade = spdb.TradeFluxRecord.FirstOrDefault(m => m.TradeSnNo == pos.PosSn);
             if (trade != null)
@@ -4124,6 +4128,7 @@ namespace MySystem.Areas.Admin.Controllers
                 oldpos.SourcePosSn = null;
                 oldpos.BuyUserId = 0;
                 oldpos.UserId = 0;
+                PublicFunction.ClearPosHistory(db, oldpos.PosSn); //清除机具历史记录
             }
             if (!string.IsNullOrEmpty(error))
             {
@@ -4427,6 +4432,7 @@ namespace MySystem.Areas.Admin.Controllers
                     pos.SourcePosSn = null;
                     pos.BuyUserId = 0;
                     pos.UserId = 0;
+                    PublicFunction.ClearPosHistory(db, pos.PosSn); //清除机具历史记录
                 }
                 else
                 {

+ 2 - 0
Areas/Admin/Controllers/OperateServer/StoreHouseOperateController.cs

@@ -798,6 +798,7 @@ namespace MySystem.Areas.Admin.Controllers
                                 toStore.LaveNum += 1;
                                 fromStore.TotalNum -= 1;
                                 fromStore.LaveNum -= 1;
+                                PublicFunction.ClearPosHistory(db, posInfo.PosSn); //清除机具历史记录
                                 db.SaveChanges();
                             }
                             else
@@ -883,6 +884,7 @@ namespace MySystem.Areas.Admin.Controllers
                                 fuserMachineData.UnBindCount -= 1;
                                 toStore.LaveNum += 1;
                                 toStore.TotalNum += 1;
+                                PublicFunction.ClearPosHistory(db, posInfo.PosSn); //清除机具历史记录
                                 db.SaveChanges();
                             }
                             db.SaveChanges();