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

Merge branch 'feature-dgy-收支明细区分未使用额度和可提现额度' into DuGuYang

# Conflicts:
#	Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs
DuGuYang 2 лет назад
Родитель
Сommit
9e2aa8dccf

+ 52 - 0
AppStart/Tables/OpAmountItem.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+/// <summary>
+/// 添加收支明细工具类
+/// </summary>
+namespace MySystem
+{
+    public class OpAmountItem
+    {
+        //创客Id
+        public int UserId { get; set; }
+
+
+        //操作类型(0 总和 1 增加 2 减少)
+        public int OperateType { get; set; }
+
+
+        //类别
+        public int ChangeType { get; set; }
+
+
+        //备注
+        public string Remark { get; set; }
+
+
+        //变更总额度
+        public decimal UseAmount { get; set; }
+
+
+        //变更可提现额度
+        public decimal UseValidForGetAmount { get; set; }
+
+
+        //变更未使用额度
+        public decimal UseTotalAmt { get; set; }
+
+
+        //变更关联分仓额度
+        public decimal UseValidAmount { get; set; }
+
+
+        //来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+        public int DataType { get; set; }
+
+
+        //来源Id,表的主键Id
+        public int DataId { get; set; }
+
+        //是否入账(0 是 1 否)
+        public int NoAccount { get; set; }
+    }
+}

+ 111 - 123
Areas/Admin/Controllers/MainServer/StoreHouseController.cs

@@ -553,41 +553,44 @@ namespace MySystem.Areas.Admin.Controllers
                     userAccountOld.TempAmountForBalance = 0;
                     userAccountOld.TempAmountForBalance = 0;
                     if (sto.OpId > 0)
                     if (sto.OpId > 0)
                     {
                     {
-                        var amount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sto.OpId) ?? new OpModels.UserAccount();
-                        if (newdeposit > olddeposit)
+                        var UseAmount = 0.00M;
+                        var OperateType = 0;
+                        if (newdeposit >= olddeposit)
                         {
                         {
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                            {
-                                CreateDate = DateTime.Now,
-                                UserId = sto.OpId,
-                                SeoDescription = "分仓押金变更",
-                                OperateType = 1,
-                                UseAmount = newdeposit - olddeposit,
-                                BeforeAmount = amount.ValidAmount,
-                                AfterAmount = amount.ValidAmount + newdeposit - olddeposit,
-                                AfterTotalAmt = amount.TotalAmt,
-                                AfterValidForGetAmount = amount.ValidForGetAmount,
-                                AfterValidAmount = amount.ValidAmount + newdeposit - olddeposit,
-                            }).Entity;
+                            UseAmount = newdeposit - olddeposit;
+                            OperateType = 1;
                         }
                         }
                         if (newdeposit < olddeposit)
                         if (newdeposit < olddeposit)
                         {
                         {
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            UseAmount = olddeposit - newdeposit;
+                            OperateType = 2;
+                        }
+                        if (UseAmount > 0)
+                        {
+                            var amount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sto.OpId) ?? new OpModels.UserAccount();
+                            var bValidAmount = amount.ValidAmount;
+                            var aValidAmount = amount.ValidAmount - sto.Deposit + data.Deposit;
+
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
                             {
-                                CreateDate = DateTime.Now,
-                                UserId = sto.OpId,
-                                SeoDescription = "分仓押金变更",
-                                OperateType = 2,
-                                UseAmount = olddeposit - newdeposit,
-                                BeforeAmount = amount.ValidAmount,
-                                AfterAmount = amount.ValidAmount + newdeposit - olddeposit,
-                                AfterTotalAmt = amount.TotalAmt,
-                                AfterValidForGetAmount = amount.ValidForGetAmount,
-                                AfterValidAmount = amount.ValidAmount + newdeposit - olddeposit
-                            }).Entity;
+                                UserId = sto.OpId,//创客Id
+                                OperateType = OperateType,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 3,//类别
+                                Remark = "分仓押金变更",//备注
+                                UseAmount = UseAmount,//变更总额度
+                                UseValidForGetAmount = 0,//变更可提现额度
+                                UseTotalAmt = 0,//变更未使用额度
+                                UseValidAmount = Math.Max(0, bValidAmount - aValidAmount),//变更关联分仓额度
+                                DataType = 7,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = sto.Id,//来源Id,表的主键Id
+                                NoAccount = 1//是否入账(0 是 1 否)
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                            amount.ValidAmount -= sto.Deposit;
+                            amount.ValidAmount += data.Deposit;
                         }
                         }
-                        amount.ValidAmount -= sto.Deposit;
-                        amount.ValidAmount += data.Deposit;
                     }
                     }
                     var oldUserInfo = db.Users.FirstOrDefault(m => m.Id == sto.UserId) ?? new Users();
                     var oldUserInfo = db.Users.FirstOrDefault(m => m.Id == sto.UserId) ?? new Users();
                     var newUserInfo = db.Users.FirstOrDefault(m => m.Id == user.UserId) ?? new Users();
                     var newUserInfo = db.Users.FirstOrDefault(m => m.Id == user.UserId) ?? new Users();
@@ -626,41 +629,45 @@ namespace MySystem.Areas.Admin.Controllers
                 userAccount.StoreDeposit = data.Deposit;
                 userAccount.StoreDeposit = data.Deposit;
                 if (sto.OpId > 0)
                 if (sto.OpId > 0)
                 {
                 {
-                    var amount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sto.OpId) ?? new OpModels.UserAccount();
-                    if (newdeposit > olddeposit)
+                    var UseAmount = 0.00M;
+                    var OperateType = 0;
+                    if (newdeposit >= olddeposit)
                     {
                     {
-                        var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                        {
-                            CreateDate = DateTime.Now,
-                            UserId = sto.OpId,
-                            SeoDescription = "分仓押金变更",
-                            OperateType = 1,
-                            UseAmount = newdeposit - olddeposit,
-                            BeforeAmount = amount.ValidAmount,
-                            AfterAmount = amount.ValidAmount + newdeposit - olddeposit,
-                            AfterTotalAmt = amount.TotalAmt,
-                            AfterValidForGetAmount = amount.ValidForGetAmount,
-                            AfterValidAmount = amount.ValidAmount + newdeposit - olddeposit
-                        }).Entity;
+                        UseAmount = newdeposit - olddeposit;
+                        OperateType = 1;
                     }
                     }
                     if (newdeposit < olddeposit)
                     if (newdeposit < olddeposit)
                     {
                     {
-                        var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                        UseAmount = olddeposit - newdeposit;
+                        OperateType = 2;
+                    }
+                    if (UseAmount > 0)
+                    {
+                        var amount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sto.OpId) ?? new OpModels.UserAccount();
+
+                        var bValidAmount = amount.ValidAmount;
+                        var aValidAmount = amount.ValidAmount - sto.Deposit + data.Deposit;
+
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
                         {
-                            CreateDate = DateTime.Now,
-                            UserId = sto.OpId,
-                            SeoDescription = "分仓押金变更",
-                            OperateType = 2,
-                            UseAmount = olddeposit - newdeposit,
-                            BeforeAmount = amount.ValidAmount,
-                            AfterAmount = amount.ValidAmount + newdeposit - olddeposit,
-                            AfterTotalAmt = amount.TotalAmt,
-                            AfterValidForGetAmount = amount.ValidForGetAmount,
-                            AfterValidAmount = amount.ValidAmount + newdeposit - olddeposit
-                        }).Entity;
+                            UserId = sto.OpId,//创客Id
+                            OperateType = OperateType,//操作类型(0 总和 1 增加 2 减少)
+                            ChangeType = 3,//类别
+                            Remark = "分仓押金变更",//备注
+                            UseAmount = UseAmount,//变更总额度
+                            UseValidForGetAmount = 0,//变更可提现额度
+                            UseTotalAmt = 0,//变更未使用额度
+                            UseValidAmount = Math.Max(0, bValidAmount - aValidAmount),//变更关联分仓额度
+                            DataType = 7,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                            DataId = sto.Id,//来源Id,表的主键Id
+                            NoAccount = 1//是否入账(0 是 1 否)
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                        amount.ValidAmount -= sto.Deposit;
+                        amount.ValidAmount += data.Deposit;
                     }
                     }
-                    amount.ValidAmount -= sto.Deposit;
-                    amount.ValidAmount += data.Deposit;
                 }
                 }
                 foreach (var item in store)
                 foreach (var item in store)
                 {
                 {
@@ -2028,6 +2035,9 @@ namespace MySystem.Areas.Admin.Controllers
                     userAmount.ValidAmount += deposit;
                     userAmount.ValidAmount += deposit;
                     opdb.SaveChanges();
                     opdb.SaveChanges();
                     decimal toAmount = userAmount.ValidAmount + userAmount.TotalAmt + userAmount.ValidForGetAmount;//新的总金额
                     decimal toAmount = userAmount.ValidAmount + userAmount.TotalAmt + userAmount.ValidForGetAmount;//新的总金额
+                    decimal ValidAmount = 0.00M;//关联分仓额度
+                    decimal TotalAmt = 0.00M; //未使用额度
+                    decimal ValidForGetAmount = 0.00M; //可提现额度
                     if (toAmount >= tamount)
                     if (toAmount >= tamount)
                     {
                     {
                         foreach (var item in idlist)
                         foreach (var item in idlist)
@@ -2057,6 +2067,7 @@ namespace MySystem.Areas.Admin.Controllers
                                         posInfo.OpId = sysAdmin.UserId;
                                         posInfo.OpId = sysAdmin.UserId;
                                         if (userAmount.ValidAmount - amount >= 0)
                                         if (userAmount.ValidAmount - amount >= 0)
                                         {
                                         {
+                                            ValidAmount += amount;
                                             userAmount.ValidAmount -= amount;
                                             userAmount.ValidAmount -= amount;
                                             posInfo.OpReserve3 += amount; //关联分仓额度
                                             posInfo.OpReserve3 += amount; //关联分仓额度
                                             posInfo.OpReserve1 = 0; //未使用额度
                                             posInfo.OpReserve1 = 0; //未使用额度
@@ -2067,6 +2078,7 @@ namespace MySystem.Areas.Admin.Controllers
                                         {
                                         {
                                             if (userAmount.TotalAmt - amount >= 0)
                                             if (userAmount.TotalAmt - amount >= 0)
                                             {
                                             {
+                                                TotalAmt += amount - userAmount.ValidAmount;
                                                 userAmount.TotalAmt -= amount - userAmount.ValidAmount;
                                                 userAmount.TotalAmt -= amount - userAmount.ValidAmount;
                                                 posInfo.OpReserve3 = userAmount.ValidAmount;
                                                 posInfo.OpReserve3 = userAmount.ValidAmount;
                                                 posInfo.OpReserve1 = amount - userAmount.ValidAmount;
                                                 posInfo.OpReserve1 = amount - userAmount.ValidAmount;
@@ -2077,6 +2089,7 @@ namespace MySystem.Areas.Admin.Controllers
                                             {
                                             {
                                                 if (userAmount.ValidForGetAmount - amount >= 0)
                                                 if (userAmount.ValidForGetAmount - amount >= 0)
                                                 {
                                                 {
+                                                    ValidForGetAmount += amount - userAmount.TotalAmt;
                                                     userAmount.ValidForGetAmount -= amount - userAmount.TotalAmt;
                                                     userAmount.ValidForGetAmount -= amount - userAmount.TotalAmt;
                                                     posInfo.OpReserve3 = 0;
                                                     posInfo.OpReserve3 = 0;
                                                     posInfo.OpReserve1 = userAmount.TotalAmt;
                                                     posInfo.OpReserve1 = userAmount.TotalAmt;
@@ -2125,38 +2138,25 @@ namespace MySystem.Areas.Admin.Controllers
                         }
                         }
                         if (IsOk == "1")
                         if (IsOk == "1")
                         {
                         {
-                            if (deposit > tamount)
-                            {
-                                var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UserId = sysAdmin.UserId,
-                                    SeoDescription = "关联分仓",
-                                    OperateType = 1,
-                                    UseAmount = deposit - tamount,
-                                    BeforeAmount = TotalAmount,
-                                    AfterAmount = TotalAmount + deposit - tamount,
-                                    AfterTotalAmt = userAmount.TotalAmt,
-                                    AfterValidForGetAmount = userAmount.ValidForGetAmount,
-                                    AfterValidAmount = userAmount.ValidAmount,
-                                }).Entity;
-                            }
-                            if (deposit < tamount)
+
+                            var aTotalAmount = TotalAmount + deposit - tamount;
+
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
                             {
-                                var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UserId = sysAdmin.UserId,
-                                    SeoDescription = "关联分仓",
-                                    OperateType = 2,
-                                    UseAmount = tamount - deposit,
-                                    BeforeAmount = TotalAmount,
-                                    AfterAmount = TotalAmount + deposit - tamount,
-                                    AfterTotalAmt = userAmount.TotalAmt,
-                                    AfterValidForGetAmount = userAmount.ValidForGetAmount,
-                                    AfterValidAmount = userAmount.ValidAmount,
-                                }).Entity;
-                            }
+                                UserId = sysAdmin.UserId,//创客Id
+                                OperateType = 0,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 2,//类别
+                                Remark = "关联分仓",//备注
+                                UseAmount = Math.Max(0, TotalAmount - aTotalAmount),//变更总额度
+                                UseValidForGetAmount = ValidForGetAmount,//变更可提现额度
+                                UseTotalAmt = TotalAmt,//变更未使用额度
+                                UseValidAmount = ValidAmount,//变更关联分仓额度
+                                DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = 0,//来源Id,表的主键Id
+                                NoAccount = 1//是否入账(0 是 1 否)
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                             opdb.SaveChanges();
                             opdb.SaveChanges();
                         }
                         }
                         sysAdmin.StoreCount += idlist.Count();//添加关联分仓数
                         sysAdmin.StoreCount += idlist.Count();//添加关联分仓数
@@ -2260,9 +2260,9 @@ namespace MySystem.Areas.Admin.Controllers
                     var amount = 0;
                     var amount = 0;
                     var tamount = 0;
                     var tamount = 0;
                     decimal deposit = 0;
                     decimal deposit = 0;
-                    decimal ValidAmount = 0;
-                    decimal TotalAmt = 0;
-                    decimal ValidForGetAmount = 0;
+                    decimal ValidAmount = 0.00M;//关联分仓额度
+                    decimal TotalAmt = 0.00M; //未使用额度
+                    decimal ValidForGetAmount = 0.00M; //可提现额度
                     var pCount = 0;
                     var pCount = 0;
                     var userIds = "";
                     var userIds = "";
                     string error = "";
                     string error = "";
@@ -2344,6 +2344,9 @@ namespace MySystem.Areas.Admin.Controllers
                                 opdb.SaveChanges();
                                 opdb.SaveChanges();
                             }
                             }
                         }
                         }
+                        var bValidAmount = userAmount.ValidAmount;
+                        var aValidAmount = userAmount.ValidAmount - deposit + ValidAmount;
+
                         userAmount.ValidAmount -= deposit;//扣减关联分仓押金
                         userAmount.ValidAmount -= deposit;//扣减关联分仓押金
                         userAmount.ValidAmount += ValidAmount;
                         userAmount.ValidAmount += ValidAmount;
                         userAmount.TotalAmt += TotalAmt;
                         userAmount.TotalAmt += TotalAmt;
@@ -2351,38 +2354,23 @@ namespace MySystem.Areas.Admin.Controllers
 
 
                         sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
                         sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
                         sysAdmin.TotalMachineCount -= pCount;//减少关联分仓机具数
                         sysAdmin.TotalMachineCount -= pCount;//减少关联分仓机具数
-                        if (deposit > tamount)
-                        {
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                            {
-                                CreateDate = DateTime.Now,
-                                UserId = sysAdmin.UserId,
-                                SeoDescription = "取消关联分仓",
-                                OperateType = 2,
-                                UseAmount = deposit - tamount,
-                                BeforeAmount = TotalAmount,
-                                AfterAmount = TotalAmount - deposit + tamount,
-                                AfterTotalAmt = userAmount.TotalAmt,
-                                AfterValidForGetAmount = userAmount.ValidForGetAmount,
-                                AfterValidAmount = userAmount.ValidAmount,
-                            }).Entity;
-                        }
-                        if (deposit < tamount)
+
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
                         {
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                            {
-                                CreateDate = DateTime.Now,
-                                UserId = sysAdmin.UserId,
-                                SeoDescription = "取消关联分仓",
-                                OperateType = 1,
-                                UseAmount = tamount - deposit,
-                                BeforeAmount = TotalAmount,
-                                AfterAmount = TotalAmount - deposit + tamount,
-                                AfterTotalAmt = userAmount.TotalAmt,
-                                AfterValidForGetAmount = userAmount.ValidForGetAmount,
-                                AfterValidAmount = userAmount.ValidAmount,
-                            }).Entity;
-                        }
+                            UserId = sysAdmin.UserId,//创客Id
+                            OperateType = 0,//操作类型(0 总和 1 增加 2 减少)
+                            ChangeType = 22,//类别
+                            Remark = "取消关联分仓",//备注
+                            UseAmount = Math.Max(0, bValidAmount - aValidAmount),//变更总额度
+                            UseValidForGetAmount = ValidForGetAmount,//变更可提现额度
+                            UseTotalAmt = TotalAmt,//变更未使用额度
+                            UseValidAmount = Math.Max(0, bValidAmount - aValidAmount),//变更关联分仓额度
+                            DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                            DataId = 0,//来源Id,表的主键Id
+                            NoAccount = 1//是否入账(0 是 1 否)
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                         opdb.SaveChanges();
                         opdb.SaveChanges();
                     }
                     }
                     else
                     else

+ 80 - 65
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -1673,24 +1673,27 @@ namespace MySystem.Areas.Admin.Controllers
                     if (oldpos.ActivationState == 0)
                     if (oldpos.ActivationState == 0)
                     {
                     {
                         var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
                         var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
-                        decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+
                         opUserAccount.ValidAmount += oldpos.OpReserve3;
                         opUserAccount.ValidAmount += oldpos.OpReserve3;
                         opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                         opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                         opUserAccount.TotalAmt += oldpos.OpReserve1;
                         opUserAccount.TotalAmt += oldpos.OpReserve1;
 
 
-                        var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
                         {
-                            CreateDate = DateTime.Now,
-                            UserId = oldpos.OpId,
-                            SeoDescription = "机具换绑",
-                            OperateType = 1,
-                            UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                            BeforeAmount = TotalAmount,
-                            AfterAmount = TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                            AfterTotalAmt = opUserAccount.TotalAmt,
-                            AfterValidForGetAmount = opUserAccount.ValidForGetAmount,
-                            AfterValidAmount = opUserAccount.ValidAmount,
-                        }).Entity;
+                            UserId = oldpos.OpId,//创客Id
+                            OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                            ChangeType = 8,//类别
+                            Remark = "机具换绑",//备注
+                            UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,//变更总额度
+                            UseValidForGetAmount = oldpos.OpReserve2,//变更可提现额度
+                            UseTotalAmt = oldpos.OpReserve1,//变更未使用额度
+                            UseValidAmount = oldpos.OpReserve3,//变更关联分仓额度
+                            DataType = 2,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                            DataId = newpos.Id,//来源Id,表的主键Id
+                            NoAccount = 1//是否入账(0 是 1 否)
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
 
                         oldpos.OpReserve1 = 0;
                         oldpos.OpReserve1 = 0;
                         oldpos.OpReserve2 = 0;
                         oldpos.OpReserve2 = 0;
@@ -1701,24 +1704,27 @@ namespace MySystem.Areas.Admin.Controllers
                         if (newpos.OpId > 0)
                         if (newpos.OpId > 0)
                         {
                         {
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == newpos.OpId && m.UserId == newpos.OpId) ?? new OpModels.UserAccount();
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == newpos.OpId && m.UserId == newpos.OpId) ?? new OpModels.UserAccount();
-                            decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+
                             opUserAccount.ValidAmount += newpos.OpReserve3;
                             opUserAccount.ValidAmount += newpos.OpReserve3;
                             opUserAccount.ValidForGetAmount += newpos.OpReserve2;
                             opUserAccount.ValidForGetAmount += newpos.OpReserve2;
                             opUserAccount.TotalAmt += newpos.OpReserve1;
                             opUserAccount.TotalAmt += newpos.OpReserve1;
 
 
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
                             {
-                                CreateDate = DateTime.Now,
-                                UserId = newpos.OpId,
-                                SeoDescription = "机具换绑",
-                                OperateType = 1,
-                                UseAmount = newpos.OpReserve3 + newpos.OpReserve2 + newpos.OpReserve1,
-                                BeforeAmount = TotalAmount,
-                                AfterAmount = TotalAmount + newpos.OpReserve3 + newpos.OpReserve2 + newpos.OpReserve1,
-                                AfterTotalAmt = opUserAccount.TotalAmt,
-                                AfterValidForGetAmount = opUserAccount.ValidForGetAmount,
-                                AfterValidAmount = opUserAccount.ValidAmount,
-                            }).Entity;
+                                UserId = oldpos.OpId,//创客Id
+                                OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 8,//类别
+                                Remark = "机具换绑",//备注
+                                UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,//变更总额度
+                                UseValidForGetAmount = oldpos.OpReserve2,//变更可提现额度
+                                UseTotalAmt = oldpos.OpReserve1,//变更未使用额度
+                                UseValidAmount = oldpos.OpReserve3,//变更关联分仓额度
+                                DataType = 2,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = newpos.Id,//来源Id,表的主键Id
+                                NoAccount = 1//是否入账(0 是 1 否)
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
 
                             newpos.OpReserve1 = 0;
                             newpos.OpReserve1 = 0;
                             newpos.OpReserve2 = 0;
                             newpos.OpReserve2 = 0;
@@ -1939,24 +1945,27 @@ namespace MySystem.Areas.Admin.Controllers
                         if (newpos.OpId > 0)
                         if (newpos.OpId > 0)
                         {
                         {
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
-                            decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+
                             opUserAccount.ValidAmount += oldpos.OpReserve3;
                             opUserAccount.ValidAmount += oldpos.OpReserve3;
                             opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                             opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                             opUserAccount.TotalAmt += oldpos.OpReserve1;
                             opUserAccount.TotalAmt += oldpos.OpReserve1;
 
 
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
                             {
-                                CreateDate = DateTime.Now,
-                                UserId = oldpos.OpId,
-                                SeoDescription = "坏机换新",
-                                OperateType = 1,
-                                UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                                BeforeAmount = TotalAmount,
-                                AfterAmount = TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                                AfterTotalAmt = opUserAccount.TotalAmt,
-                                AfterValidForGetAmount = opUserAccount.ValidForGetAmount,
-                                AfterValidAmount = opUserAccount.ValidAmount,
-                            }).Entity;
+                                UserId = oldpos.OpId,//创客Id
+                                OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 6,//类别
+                                Remark = "坏机换新",//备注
+                                UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,//变更总额度
+                                UseValidForGetAmount = oldpos.OpReserve2,//变更可提现额度
+                                UseTotalAmt = oldpos.OpReserve1,//变更未使用额度
+                                UseValidAmount = oldpos.OpReserve3,//变更关联分仓额度
+                                DataType = 2,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = newpos.Id,//来源Id,表的主键Id
+                                NoAccount = 1//是否入账(0 是 1 否)
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                         }
                         }
                         if (newpos.OpId == 0)
                         if (newpos.OpId == 0)
                         {
                         {
@@ -2201,24 +2210,27 @@ namespace MySystem.Areas.Admin.Controllers
                         if (newpos.OpId > 0)
                         if (newpos.OpId > 0)
                         {
                         {
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
-                            decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+
                             opUserAccount.ValidAmount += oldpos.OpReserve3;
                             opUserAccount.ValidAmount += oldpos.OpReserve3;
                             opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                             opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                             opUserAccount.TotalAmt += oldpos.OpReserve1;
                             opUserAccount.TotalAmt += oldpos.OpReserve1;
 
 
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
                             {
-                                CreateDate = DateTime.Now,
-                                UserId = oldpos.OpId,
-                                SeoDescription = "坏机换新",
-                                OperateType = 1,
-                                UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                                BeforeAmount = TotalAmount,
-                                AfterAmount = TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                                AfterTotalAmt = opUserAccount.TotalAmt,
-                                AfterValidForGetAmount = opUserAccount.ValidForGetAmount,
-                                AfterValidAmount = opUserAccount.ValidAmount,
-                            }).Entity;
+                                UserId = newpos.OpId,//创客Id
+                                OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 6,//类别
+                                Remark = "坏机换新",//备注
+                                UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,//变更总额度
+                                UseValidForGetAmount = oldpos.OpReserve2,//变更可提现额度
+                                UseTotalAmt = oldpos.OpReserve1,//变更未使用额度
+                                UseValidAmount = oldpos.OpReserve3,//变更关联分仓额度
+                                DataType = 2,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = newpos.Id,//来源Id,表的主键Id
+                                NoAccount = 1//是否入账(0 是 1 否)
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                         }
                         }
                         if (newpos.OpId == 0)
                         if (newpos.OpId == 0)
                         {
                         {
@@ -2453,24 +2465,27 @@ namespace MySystem.Areas.Admin.Controllers
                     if (newpos.OpId > 0)
                     if (newpos.OpId > 0)
                     {
                     {
                         var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
                         var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
-                        decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+
                         opUserAccount.ValidAmount += oldpos.OpReserve3;
                         opUserAccount.ValidAmount += oldpos.OpReserve3;
                         opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                         opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                         opUserAccount.TotalAmt += oldpos.OpReserve1;
                         opUserAccount.TotalAmt += oldpos.OpReserve1;
 
 
-                        var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
                         {
-                            CreateDate = DateTime.Now,
-                            UserId = oldpos.OpId,
-                            SeoDescription = "创客跨品牌换机",
-                            OperateType = 1,
-                            UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                            BeforeAmount = TotalAmount,
-                            AfterAmount = TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,
-                            AfterTotalAmt = opUserAccount.TotalAmt,
-                            AfterValidForGetAmount = opUserAccount.ValidForGetAmount,
-                            AfterValidAmount = opUserAccount.ValidAmount,
-                        }).Entity;
+                            UserId = oldpos.OpId,//创客Id
+                            OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                            ChangeType = 23,//类别
+                            Remark = "创客跨品牌换机",//备注
+                            UseAmount = oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1,//变更总额度
+                            UseValidForGetAmount = oldpos.OpReserve2,//变更可提现额度
+                            UseTotalAmt = oldpos.OpReserve1,//变更未使用额度
+                            UseValidAmount = oldpos.OpReserve3,//变更关联分仓额度
+                            DataType = 2,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                            DataId = newpos.Id,//来源Id,表的主键Id
+                            NoAccount = 1//是否入账(0 是 1 否)
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                     }
                     }
                     if (newpos.OpId == 0)
                     if (newpos.OpId == 0)
                     {
                     {

+ 16 - 15
Areas/Admin/Controllers/OperateServer/StoreMachineApplyOperateController.cs

@@ -395,21 +395,22 @@ namespace MySystem.Areas.Admin.Controllers
                 var users = opdb.UserAccount.FirstOrDefault(m => m.Status == 0 && m.UserId == query.UserId) ?? new UserAccount();
                 var users = opdb.UserAccount.FirstOrDefault(m => m.Status == 0 && m.UserId == query.UserId) ?? new UserAccount();
                 if (users.Id > 0)
                 if (users.Id > 0)
                 {
                 {
-                    var amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+                    OpAmountItem opAmountItem = new OpAmountItem
                     {
                     {
-                        CreateDate = DateTime.Now,
-                        CreateMan = SysUserName + "-" + SysRealName,
-                        SeoDescription = "机具申请驳回",
-                        OperateType = 1,//增加
-                        BeforeAmount = users.ValidAmount + users.TotalAmt + users.ValidForGetAmount,
-                        AfterAmount = users.ValidAmount + users.TotalAmt + users.ValidForGetAmount + query.UseAmount,
-                        AfterTotalAmt = users.TotalAmt + TotalAmt,
-                        AfterValidForGetAmount = users.ValidForGetAmount + ValidForGetAmount,
-                        AfterValidAmount = users.ValidAmount + ValidAmount,
-                        UseAmount = query.UseAmount,
-                        UserId = query.UserId,
-                        ApplyId = query.Id,
-                    }).Entity;
+                        UserId = query.UserId,//创客Id
+                        OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                        ChangeType = 11,//类别
+                        Remark = "机具申请驳回",//备注
+                        UseAmount = query.UseAmount,//变更总额度
+                        UseValidForGetAmount = ValidForGetAmount,//变更可提现额度
+                        UseTotalAmt = TotalAmt,//变更未使用额度
+                        UseValidAmount = ValidAmount,//变更关联分仓额度
+                        DataType = 3,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                        DataId = query.Id,//来源Id,表的主键Id
+                        NoAccount = 1//是否入账(0 是 1 否)
+                    };
+
+                    RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
 
                     users.ValidAmount += ValidAmount;
                     users.ValidAmount += ValidAmount;
                     users.TotalAmt += TotalAmt;
                     users.TotalAmt += TotalAmt;
@@ -636,7 +637,7 @@ namespace MySystem.Areas.Admin.Controllers
 
 
                 var kqProducts = db.KqProducts.FirstOrDefault(m => m.Id == BrandId) ?? new Models.KqProducts();
                 var kqProducts = db.KqProducts.FirstOrDefault(m => m.Id == BrandId) ?? new Models.KqProducts();
                 FromStoreId = kqProducts.MainStoreId;
                 FromStoreId = kqProducts.MainStoreId;
-                
+
                 CheckSendInfo items = checksendInfos.FirstOrDefault(m => m.BrandId == BrandId);
                 CheckSendInfo items = checksendInfos.FirstOrDefault(m => m.BrandId == BrandId);
                 if (items == null)
                 if (items == null)
                 {
                 {

+ 61 - 40
Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs

@@ -636,12 +636,15 @@ namespace MySystem.Areas.Admin.Controllers
             decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
             decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
 
 
             int OperateType = 0;
             int OperateType = 0;
+            int ChangeType = 0;
+            var bAmount = account.ValidForGetAmount;
             var description = "";
             var description = "";
             if (Kind == 1)
             if (Kind == 1)
             {
             {
                 account.TotalAmt -= decimal.Parse(OperationAmount);
                 account.TotalAmt -= decimal.Parse(OperationAmount);
                 OperateType = 2;//系统扣减
                 OperateType = 2;//系统扣减
-                description = "系统扣减";
+                description = "系统扣减未使用额度";
+                ChangeType = 13;
             }
             }
 
 
             //增加
             //增加
@@ -650,31 +653,40 @@ namespace MySystem.Areas.Admin.Controllers
                 // sysAdmin.ReturnAmount = decimal.Parse(OperationAmount);
                 // sysAdmin.ReturnAmount = decimal.Parse(OperationAmount);
                 account.TotalAmt += decimal.Parse(OperationAmount);
                 account.TotalAmt += decimal.Parse(OperationAmount);
                 OperateType = 1;//系统增加
                 OperateType = 1;//系统增加
-                description = "系统增加";
+                description = "系统增加未使用额度";
+                ChangeType = 12;
             }
             }
             decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更后总金额
             decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更后总金额
 
 
-            AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
-            {
-                CreateDate = DateTime.Now,
-                SeoKeyword = Note,
-                SeoDescription = description,
-                UserId = sysAdmin.UserId, //运营中心Id
-                CreateMan = SysUserName + "-" + SysRealName,
-                UseAmount = decimal.Parse(OperationAmount),//操作金额
-                BeforeAmount = BeforeAmount,//使用前剩余额度
-                AfterAmount = AfterAmount,//使用后剩余额度
-                AfterTotalAmt = account.TotalAmt,
-                AfterValidForGetAmount = account.ValidForGetAmount,
-                AfterValidAmount = account.ValidAmount,
-                OperateType = OperateType,//操作类别
-            }).Entity;
-            opdb.SaveChanges();
             AddSysLog(data.Id.ToString(), "SysAdmin", "EditAmt");
             AddSysLog(data.Id.ToString(), "SysAdmin", "EditAmt");
             opdb.SaveChanges();
             opdb.SaveChanges();
-            if (Kind == 2 && ReturnFlag == 1)
+
+            if (OperateType > 0 && decimal.Parse(OperationAmount) > 0)
             {
             {
-                RedisDbconn.Instance.AddList("OperateAddServiceQueue", sysAdmin.Id.ToString());
+
+                OpAmountItem opAmountItem = new OpAmountItem
+                {
+                    UserId = sysAdmin.UserId,//创客Id
+                    OperateType = OperateType,//操作类型(0 总和 1 增加 2 减少)
+                    ChangeType = ChangeType,//类别
+                    Remark = description,//备注
+                    UseAmount = decimal.Parse(OperationAmount),//变更总额度
+                    UseValidForGetAmount = 0,//变更可提现额度
+                    UseTotalAmt = decimal.Parse(OperationAmount),//变更未使用额度
+                    UseValidAmount = 0,//变更关联分仓额度
+                    DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                    DataId = 0,//来源Id,表的主键Id
+                    NoAccount = 1//是否入账(0 是 1 否)
+                };
+
+                RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+                AddSysLog(data.Id.ToString(), "SysAdmin", "EditAmt");
+                
+                if (Kind == 2 && ReturnFlag == 1)
+                {
+                    RedisDbconn.Instance.AddList("OperateAddServiceQueue", sysAdmin.Id.ToString());
+
+                }
             }
             }
             return "success";
             return "success";
         }
         }
@@ -708,12 +720,15 @@ namespace MySystem.Areas.Admin.Controllers
             }
             }
             decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
             decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
             int OperateType = 0;
             int OperateType = 0;
+            int ChangeType = 0;
+            var bAmount = account.ValidForGetAmount;
             var description = "";
             var description = "";
             if (Kind == 1 && decimal.Parse(OperationAmount) <= account.ValidForGetAmount)
             if (Kind == 1 && decimal.Parse(OperationAmount) <= account.ValidForGetAmount)
             {
             {
                 account.ValidForGetAmount -= decimal.Parse(OperationAmount);
                 account.ValidForGetAmount -= decimal.Parse(OperationAmount);
                 OperateType = 2;
                 OperateType = 2;
-                description = "系统扣减";
+                description = "系统扣减可提现额度";
+                ChangeType = 13;
             }
             }
             else if (Kind == 1 && decimal.Parse(OperationAmount) > account.ValidForGetAmount)
             else if (Kind == 1 && decimal.Parse(OperationAmount) > account.ValidForGetAmount)
             {
             {
@@ -723,34 +738,40 @@ namespace MySystem.Areas.Admin.Controllers
             {
             {
                 account.ValidForGetAmount += decimal.Parse(OperationAmount);
                 account.ValidForGetAmount += decimal.Parse(OperationAmount);
                 OperateType = 1;
                 OperateType = 1;
-                description = "系统增加";
+                description = "系统增加可提现额度";
+                ChangeType = 12;
             }
             }
             decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更后总金额
             decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更后总金额
-            AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+            if (OperateType > 0 && decimal.Parse(OperationAmount) > 0)
             {
             {
-                CreateDate = DateTime.Now,
-                SeoKeyword = Note,
-                SeoDescription = description,
-                UserId = sysAdmin.UserId, //运营中心Id
-                CreateMan = SysUserName + "-" + SysRealName,
-                UseAmount = decimal.Parse(OperationAmount),//操作金额
-                BeforeAmount = BeforeAmount,//使用前剩余额度
-                AfterAmount = AfterAmount,//使用后剩余额度
-                AfterTotalAmt = account.TotalAmt,
-                AfterValidForGetAmount = account.ValidForGetAmount,
-                AfterValidAmount = account.ValidAmount,
-                OperateType = OperateType,//操作类别
-            }).Entity;
-            opdb.SaveChanges();
-            AddSysLog(data.Id.ToString(), "SysAdmin", "EditBalance");
-            opdb.SaveChanges();
+
+                OpAmountItem opAmountItem = new OpAmountItem
+                {
+                    UserId = sysAdmin.UserId,//创客Id
+                    OperateType = OperateType,//操作类型(0 总和 1 增加 2 减少)
+                    ChangeType = ChangeType,//类别
+                    Remark = description,//备注
+                    UseAmount = decimal.Parse(OperationAmount),//变更总额度
+                    UseValidForGetAmount = 0,//变更可提现额度
+                    UseTotalAmt = decimal.Parse(OperationAmount),//变更未使用额度
+                    UseValidAmount = 0,//变更关联分仓额度
+                    DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                    DataId = 0,//来源Id,表的主键Id
+                    NoAccount = 1//是否入账(0 是 1 否)
+                };
+
+                RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                AddSysLog(data.Id.ToString(), "SysAdmin", "EditBalance");
+                opdb.SaveChanges();
+            }
             return "success";
             return "success";
         }
         }
 
 
         #endregion
         #endregion
 
 
 
 
-         #region 新建运营中心添加历史运营中心缺少分仓
+        #region 新建运营中心添加历史运营中心缺少分仓
         /// <summary>
         /// <summary>
         /// 新建运营中心添加历史运营中心缺少分仓
         /// 新建运营中心添加历史运营中心缺少分仓
         /// </summary>
         /// </summary>

+ 15 - 13
Areas/Admin/Controllers/OperateServer/UserCashRecordOperateController.cs

@@ -538,20 +538,22 @@ namespace MySystem.Areas.Admin.Controllers
                     decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
                     decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
                     decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount + TradeAmount; //变更后总金额
                     decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount + TradeAmount; //变更后总金额
                     account.ValidForGetAmount += TradeAmount;//返回可提现余额
                     account.ValidForGetAmount += TradeAmount;//返回可提现余额
-                    opdb.AmountRecord.Add(new AmountRecord()
+
+                    OpAmountItem opAmountItem = new OpAmountItem
                     {
                     {
-                        CreateDate = DateTime.Now,
-                        UserId = edit.UserId, //创客
-                        SeoDescription = "提现驳回",
-                        UseAmount = TradeAmount, //变更金额
-                        BeforeAmount = BeforeAmount, //变更前总金额
-                        AfterAmount = AfterAmount, //变更后总金额
-                        AfterTotalAmt = account.TotalAmt,
-                        AfterValidForGetAmount = account.ValidForGetAmount,
-                        AfterValidAmount = account.ValidAmount,
-                        OperateType = 1,
-                    });
-                    opdb.SaveChanges();
+                        UserId = edit.UserId,//创客Id
+                        OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                        ChangeType = 7,//类别
+                        Remark = "提现驳回",//备注
+                        UseAmount = edit.TradeAmount,//变更总额度
+                        UseValidForGetAmount = edit.TradeAmount,//变更可提现额度
+                        UseTotalAmt = 0,//变更未使用额度
+                        UseValidAmount = 0,//变更关联分仓额度
+                        DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                        DataId = 0//来源Id,表的主键Id
+                    };
+
+                    RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                 }
                 }
 
 
                 opdb.SaveChanges();
                 opdb.SaveChanges();

+ 16 - 12
Areas/Admin/Controllers/OperateServer/UserCashRecordOperatesController.cs

@@ -596,19 +596,23 @@ namespace MySystem.Areas.Admin.Controllers
                     decimal BeforeTotalAmount = account.ValidForGetAmount; //变更前总金额
                     decimal BeforeTotalAmount = account.ValidForGetAmount; //变更前总金额
                     account.ValidForGetAmount += TradeAmount;//返回可提现余额
                     account.ValidForGetAmount += TradeAmount;//返回可提现余额
                     decimal AfterTotalAmount = account.ValidForGetAmount; //变更后总金额
                     decimal AfterTotalAmount = account.ValidForGetAmount; //变更后总金额
-                    opdb.AmountRecord.Add(new AmountRecord()
+
+                    OpAmountItem opAmountItem = new OpAmountItem
                     {
                     {
-                        CreateDate = DateTime.Now,
-                        SeoDescription = "提现驳回",
-                        UserId = edit.UserId, //创客
-                        UseAmount = TradeAmount, //变更金额
-                        BeforeAmount = BeforeTotalAmount, //变更前总金额
-                        AfterAmount = AfterTotalAmount, //变更后总金额
-                        AfterTotalAmt = account.TotalAmt,
-                        AfterValidForGetAmount = account.ValidForGetAmount,
-                        AfterValidAmount = account.ValidAmount,
-                    });
-                    opdb.SaveChanges();
+                        UserId = edit.UserId,//创客Id
+                        OperateType = 1,//操作类型(0 总和 1 增加 2 减少)
+                        ChangeType = 7,//类别
+                        Remark = "提现驳回",//备注
+                        UseAmount = edit.TradeAmount,//变更总额度
+                        UseValidForGetAmount = edit.TradeAmount,//变更可提现额度
+                        UseTotalAmt = 0,//变更未使用额度
+                        UseValidAmount = 0,//变更关联分仓额度
+                        DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                        DataId = 0,//来源Id,表的主键Id
+                        NoAccount = 1//是否入账(0 是 1 否)
+                    };
+
+                    RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
                 }
                 }
 
 
                 opdb.SaveChanges();
                 opdb.SaveChanges();

+ 32 - 0
OpModels/AmountRecordNew.cs

@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class AmountRecordNew
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int ChangeTypeId { get; set; }
+        public string Remark { get; set; }
+        public int ShowType { get; set; }
+        public decimal AfterValidAmount { get; set; }
+        public decimal AfterTotalAmt { get; set; }
+        public decimal AfterValidForGetAmount { get; set; }
+        public int OperateType { get; set; }
+        public decimal AfterAmount { get; set; }
+        public decimal BeforeAmount { get; set; }
+        public decimal UseAmount { get; set; }
+        public int ApplyId { get; set; }
+        public int UserId { get; set; }
+        public decimal UseValidForGetAmount { get; set; }
+        public decimal UseTotalAmt { get; set; }
+        public decimal UseValidAmount { get; set; }
+        public int DataType { get; set; }
+        public int DataId { get; set; }
+    }
+}

+ 17 - 0
OpModels/ChangeTypeKind.cs

@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class ChangeTypeKind
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string Operator { get; set; }
+        public string Name { get; set; }
+    }
+}

+ 18 - 0
OpModels/ChangeTypes.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class ChangeTypes
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int TypeId { get; set; }
+        public int Kind { get; set; }
+        public string Name { get; set; }
+    }
+}

+ 182 - 1
OpModels/WebCMSEntities.cs

@@ -20,6 +20,9 @@ namespace MySystem.OpModels
         public virtual DbSet<Advertisment> Advertisment { get; set; }
         public virtual DbSet<Advertisment> Advertisment { get; set; }
         public virtual DbSet<AmountChangeRecord> AmountChangeRecord { get; set; }
         public virtual DbSet<AmountChangeRecord> AmountChangeRecord { get; set; }
         public virtual DbSet<AmountRecord> AmountRecord { get; set; }
         public virtual DbSet<AmountRecord> AmountRecord { get; set; }
+        public virtual DbSet<AmountRecordNew> AmountRecordNew { get; set; }
+        public virtual DbSet<ChangeTypeKind> ChangeTypeKind { get; set; }
+        public virtual DbSet<ChangeTypes> ChangeTypes { get; set; }
         public virtual DbSet<Col> Col { get; set; }
         public virtual DbSet<Col> Col { get; set; }
         public virtual DbSet<MachineApplyOpRecord> MachineApplyOpRecord { get; set; }
         public virtual DbSet<MachineApplyOpRecord> MachineApplyOpRecord { get; set; }
         public virtual DbSet<MenuRight> MenuRight { get; set; }
         public virtual DbSet<MenuRight> MenuRight { get; set; }
@@ -65,7 +68,8 @@ namespace MySystem.OpModels
         {
         {
             if (!optionsBuilder.IsConfigured)
             if (!optionsBuilder.IsConfigured)
             {
             {
-                optionsBuilder.UseMySql(Library.ConfigurationManager.AppSettings["OpSqlConnStr"].ToString(), x => x.ServerVersion("5.7.17-mysql"));
+#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
+                optionsBuilder.UseMySql("server=47.109.31.237;port=3306;user=KxsOpServer;password=r7jwZ8ydLoeswDR4;database=KxsOpServer;charset=utf8", x => x.ServerVersion("5.7.28-mysql"));
             }
             }
         }
         }
 
 
@@ -379,6 +383,183 @@ namespace MySystem.OpModels
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<AmountRecordNew>(entity =>
+            {
+                entity.HasComment("新合伙人额度变动记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.AfterAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用后剩余额度");
+
+                entity.Property(e => e.AfterTotalAmt)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用后未使用额度");
+
+                entity.Property(e => e.AfterValidAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用后关联分仓额度");
+
+                entity.Property(e => e.AfterValidForGetAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用后可提现额度");
+
+                entity.Property(e => e.ApplyId)
+                    .HasColumnType("int(11)")
+                    .HasComment("申请单");
+
+                entity.Property(e => e.BeforeAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用前剩余额度");
+
+                entity.Property(e => e.ChangeTypeId)
+                    .HasColumnType("int(11)")
+                    .HasComment("收支类别");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.DataId)
+                    .HasColumnType("int(11)")
+                    .HasComment("数据来源Id");
+
+                entity.Property(e => e.DataType)
+                    .HasColumnType("int(11)")
+                    .HasComment("数据来源表类型");
+
+                entity.Property(e => e.OperateType)
+                    .HasColumnType("int(11)")
+                    .HasComment("操作类别");
+
+                entity.Property(e => e.Remark)
+                    .HasColumnType("varchar(100)")
+                    .HasComment("备注")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ShowType)
+                    .HasColumnType("int(11)")
+                    .HasComment("显示类型");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.UseAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用额度");
+
+                entity.Property(e => e.UseTotalAmt)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用未使用额度");
+
+                entity.Property(e => e.UseValidAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用关联分仓额度");
+
+                entity.Property(e => e.UseValidForGetAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("使用可提现额度");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("运营中心");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
+            modelBuilder.Entity<ChangeTypeKind>(entity =>
+            {
+                entity.HasComment("收支明细分类");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.Name)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("分类名称")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Operator)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("操作人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
+            modelBuilder.Entity<ChangeTypes>(entity =>
+            {
+                entity.HasComment("收支明细");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("类型");
+
+                entity.Property(e => e.Name)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("名称")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.TypeId)
+                    .HasColumnType("int(11)")
+                    .HasComment("所属分类Id");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<Col>(entity =>
             modelBuilder.Entity<Col>(entity =>
             {
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");