DuGuYang 2 年 前
コミット
2aab2e97ef

+ 0 - 52
AppStart/PublicFunction.cs

@@ -514,58 +514,6 @@ namespace MySystem
 
         #endregion
 
-
-        #region 通用添加收支明细
-        /// <summary>
-        /// 通用添加收支明细
-        /// </summary>
-        /// <param name="UserId">运营中心Id</param>
-        /// <param name="ShowType">显示类型(11 单可提现额度增减 21 单合伙人额度增减 31 双额度显示)</param>
-        /// <param name="Remark">备注</param>
-        /// <param name="UseAmount">变动金额</param>
-        /// <param name="OperateType">变动类型(0 总和 1 增加 2 减少)</param>
-        /// <param name="AfterTotalAmt">使用后未使用额度</param>
-        /// <param name="AfterValidForGetAmount">使用后可提现额度</param>
-        /// <param name="AfterValidAmount">使用后关联分仓额度</param>
-        /// <param name="UseValidForGetAmount">使用可提现额度</param>
-        /// <param name="UseTotalAmt">使用未使用额度</param>
-        /// <param name="UseValidAmount">使用关联分仓额度</param>
-        /// <param name="ApplyId">申请机记录具Id</param>
-        /// <param name="DataId">数据来源Id</param>
-        /// <param name="DataType">数据来源表(1 PosMachinesTwo 2 StoreHouse 3 Orders 4 SysAdmin)</param>
-        /// <returns></returns>
-        public static string AddAmountRecordNew(int ChangeTypeId, string Remark, int ShowType, decimal AfterValidAmount, decimal AfterTotalAmt, decimal AfterValidForGetAmount, int OperateType, decimal AfterAmount, decimal BeforeAmount, decimal UseAmount, int ApplyId, int UserId, decimal UseValidAmount, decimal UseTotalAmt, decimal UseValidForGetAmount, int DataId, int DataType)
-        {
-            OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
-            opdb.AmountRecordNew.Add(new OpModels.AmountRecordNew()
-            {
-                CreateDate = DateTime.Now,
-                UpdateDate = DateTime.Now,
-                ChangeTypeId = ChangeTypeId,
-                Remark = Remark,
-                ShowType = ShowType,
-                AfterValidAmount = AfterValidAmount,
-                AfterTotalAmt = AfterTotalAmt,
-                AfterValidForGetAmount = AfterValidForGetAmount,
-                OperateType = OperateType,
-                AfterAmount = AfterAmount,
-                BeforeAmount = BeforeAmount,
-                UseAmount = UseAmount,
-                ApplyId = ApplyId,
-                UserId = UserId,
-                UseValidForGetAmount = UseValidForGetAmount,
-                UseTotalAmt = UseTotalAmt,
-                UseValidAmount = UseValidAmount,
-                DataId = DataId,
-                DataType = DataType
-            });
-            opdb.SaveChanges();
-
-            return "success";
-        }
-        #endregion
-
-
         #region 统计机具绑定数据
 
         public static void StatUserMachineData(int UserId, int BrandId, int Count)

+ 49 - 0
AppStart/Tables/OpAmountItem.cs

@@ -0,0 +1,49 @@
+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; }
+    }
+}

+ 67 - 3
Areas/Admin/Controllers/MainServer/StoreHouseController.cs

@@ -571,7 +571,23 @@ namespace MySystem.Areas.Admin.Controllers
 
                             var ValidAmount = amount.ValidAmount - sto.Deposit + data.Deposit;
 
-                            PublicFunction.AddAmountRecordNew(3, "分仓押金变更", 31, amount.ValidAmount, amount.TotalAmount, amount.ValidForGetAmount, OperateType, amount.ValidAmount + amount.TotalAmt + amount.ValidForGetAmount - sto.Deposit + data.Deposit, amount.ValidAmount + amount.TotalAmt + amount.ValidForGetAmount, UseAmount, 0, sto.OpId, ValidAmount, 0, 0, sto.Id, 2);
+                            // PublicFunction.AddAmountRecordNew(3, "分仓押金变更", 31, amount.ValidAmount, amount.TotalAmount, amount.ValidForGetAmount, OperateType, amount.ValidAmount + amount.TotalAmt + amount.ValidForGetAmount - sto.Deposit + data.Deposit, amount.ValidAmount + amount.TotalAmt + amount.ValidForGetAmount, UseAmount, 0, sto.OpId, ValidAmount, 0, 0, sto.Id, 2);
+
+                            OpAmountItem opAmountItem = new OpAmountItem
+                            {
+                                UserId = sto.OpId,//创客Id
+                                OperateType = OperateType,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 3,//类别
+                                Remark = "分仓押金变更",//备注
+                                UseAmount = UseAmount,//变更总额度
+                                UseValidForGetAmount = 0,//变更可提现额度
+                                UseTotalAmt = 0,//变更未使用额度
+                                UseValidAmount = ValidAmount,//变更关联分仓额度
+                                DataType = 7,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = sto.Id//来源Id,表的主键Id
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
                             // var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord()
                             // {
@@ -662,6 +678,22 @@ namespace MySystem.Areas.Admin.Controllers
 
                         PublicFunction.AddAmountRecordNew(3, "分仓押金变更", 31, amount.ValidAmount, amount.TotalAmount, amount.ValidForGetAmount, OperateType, amount.ValidAmount + amount.TotalAmt + amount.ValidForGetAmount - sto.Deposit + data.Deposit, amount.ValidAmount + amount.TotalAmt + amount.ValidForGetAmount, UseAmount, 0, sto.OpId, ValidAmount, 0, 0, sto.Id, 2);
 
+                        OpAmountItem opAmountItem = new OpAmountItem
+                        {
+                            UserId = sto.OpId,//创客Id
+                            OperateType = OperateType,//操作类型(0 总和 1 增加 2 减少)
+                            ChangeType = 3,//类别
+                            Remark = "分仓押金变更",//备注
+                            UseAmount = UseAmount,//变更总额度
+                            UseValidForGetAmount = 0,//变更可提现额度
+                            UseTotalAmt = 0,//变更未使用额度
+                            UseValidAmount = ValidAmount,//变更关联分仓额度
+                            DataType = 7,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                            DataId = sto.Id//来源Id,表的主键Id
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
                         // var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord()
                         // {
                         //     Version = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
@@ -2161,7 +2193,23 @@ namespace MySystem.Areas.Admin.Controllers
                         }
                         if (IsOk == "1")
                         {
-                            PublicFunction.AddAmountRecordNew(2, "关联分仓", 31, userAmount.ValidAmount, userAmount.TotalAmount, userAmount.ValidForGetAmount, 0, TotalAmount + deposit - tamount, TotalAmount, deposit + tamount, 0, sysAdmin.UserId, ValidAmount, TotalAmt, ValidForGetAmount, 0, 0);
+                            // PublicFunction.AddAmountRecordNew(2, "关联分仓", 31, userAmount.ValidAmount, userAmount.TotalAmount, userAmount.ValidForGetAmount, 0, TotalAmount + deposit - tamount, TotalAmount, deposit + tamount, 0, sysAdmin.UserId, ValidAmount, TotalAmt, ValidForGetAmount, 0, 0);
+
+                            OpAmountItem opAmountItem = new OpAmountItem
+                            {
+                                UserId = sysAdmin.UserId,//创客Id
+                                OperateType = 0,//操作类型(0 总和 1 增加 2 减少)
+                                ChangeType = 2,//类别
+                                Remark = "关联分仓",//备注
+                                UseAmount = TotalAmount + deposit - tamount,//变更总额度
+                                UseValidForGetAmount = ValidForGetAmount,//变更可提现额度
+                                UseTotalAmt = TotalAmt,//变更未使用额度
+                                UseValidAmount = ValidAmount,//变更关联分仓额度
+                                DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                                DataId = 0//来源Id,表的主键Id
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
                             // var OperateType = 0;
                             // var Amount = 0.00M;
@@ -2426,7 +2474,23 @@ namespace MySystem.Areas.Admin.Controllers
                         sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
                         sysAdmin.TotalMachineCount -= pCount;//减少关联分仓机具数
 
-                        PublicFunction.AddAmountRecordNew(2, "关联分仓", 31, userAmount.ValidAmount, userAmount.TotalAmount, userAmount.ValidForGetAmount, 0, TotalAmount + deposit - tamount, TotalAmount, deposit + tamount, 0, sysAdmin.UserId, ValidAmount, TotalAmt, ValidForGetAmount, 0, 0);
+                        // PublicFunction.AddAmountRecordNew(2, "取消关联分仓", 31, userAmount.ValidAmount, userAmount.TotalAmount, userAmount.ValidForGetAmount, 0, TotalAmount + deposit - tamount, TotalAmount, deposit + tamount, 0, sysAdmin.UserId, Math.Max(0, deposit - ValidAmount), TotalAmt, ValidForGetAmount, 0, 0);
+
+                        OpAmountItem opAmountItem = new OpAmountItem
+                        {
+                            UserId = sysAdmin.UserId,//创客Id
+                            OperateType = 0,//操作类型(0 总和 1 增加 2 减少)
+                            ChangeType = 22,//类别
+                            Remark = "取消关联分仓",//备注
+                            UseAmount = Math.Max(0, deposit - tamount),//变更总额度
+                            UseValidForGetAmount = ValidForGetAmount,//变更可提现额度
+                            UseTotalAmt = TotalAmt,//变更未使用额度
+                            UseValidAmount = Math.Max(0, deposit - ValidAmount),//变更关联分仓额度
+                            DataType = 0,//来源类型,区分表(1订单,2机具,3申请记录,4购买运营中心,5预扣款 6兑换大盟主 7仓库)
+                            DataId = 0//来源Id,表的主键Id
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
                         // var OperateType = 0;
                         // var Amount = 0.00M;

+ 261 - 169
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -1670,6 +1670,22 @@ namespace MySystem.Areas.Admin.Controllers
 
                         PublicFunction.AddAmountRecordNew(8, "机具换绑", 31, opUserAccount.ValidAmount, opUserAccount.TotalAmount, opUserAccount.ValidForGetAmount, 2, TotalAmount, TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1, oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1, 0, oldpos.OpId, oldpos.OpReserve3, oldpos.OpReserve2, oldpos.OpReserve1, newpos.Id, 1);
 
+                        OpAmountItem opAmountItem = new OpAmountItem
+                        {
+                            UserId = oldpos.OpId,//创客Id
+                            OperateType = 2,//操作类型(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
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
                         // if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
                         // {
                         //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
@@ -1741,7 +1757,23 @@ namespace MySystem.Areas.Admin.Controllers
                             opUserAccount.ValidForGetAmount += newpos.OpReserve2;
                             opUserAccount.TotalAmt += newpos.OpReserve1;
 
-                            PublicFunction.AddAmountRecordNew(8, "机具换绑", 31, opUserAccount.ValidAmount, opUserAccount.TotalAmount, opUserAccount.ValidForGetAmount, 2, TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1, TotalAmount, oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1, 0, newpos.OpId, oldpos.OpReserve3, oldpos.OpReserve2, oldpos.OpReserve1, newpos.Id, 1);
+                            // PublicFunction.AddAmountRecordNew(8, "机具换绑", 31, opUserAccount.ValidAmount, opUserAccount.TotalAmount, opUserAccount.ValidForGetAmount, 2, TotalAmount + oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1, TotalAmount, oldpos.OpReserve3 + oldpos.OpReserve2 + oldpos.OpReserve1, 0, newpos.OpId, oldpos.OpReserve3, oldpos.OpReserve2, oldpos.OpReserve1, newpos.Id, 1);
+
+                            OpAmountItem opAmountItem = new OpAmountItem
+                            {
+                                UserId = oldpos.OpId,//创客Id
+                                OperateType = 2,//操作类型(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
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
                             // if (newpos.OpReserve1 > 0 || newpos.OpReserve2 > 0 || newpos.OpReserve3 > 0)
                             // {
@@ -2019,67 +2051,87 @@ namespace MySystem.Areas.Admin.Controllers
                         {
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
 
-                            for (int a = 1; a <= 3; a++)
-                            {
-                                var UseAmount = 0.00M;
-                                var BeforeAmount = 0.00M;
-                                var AfterAmount = 0.00M;
-                                if (a == 1)
-                                {
-                                    UseAmount = oldpos.OpReserve1;
-                                    BeforeAmount = opUserAccount.TotalAmt;
-                                    AfterAmount = opUserAccount.TotalAmt + UseAmount;
-                                }
-                                if (a == 2)
-                                {
-                                    UseAmount = oldpos.OpReserve2;
-                                    BeforeAmount = opUserAccount.ValidForGetAmount;
-                                    AfterAmount = opUserAccount.ValidForGetAmount + UseAmount;
-                                }
-                                if (a == 3)
-                                {
-                                    UseAmount = oldpos.OpReserve1;
-                                    BeforeAmount = opUserAccount.ValidAmount;
-                                    AfterAmount = opUserAccount.ValidAmount + UseAmount;
-                                }
-                                if (a > 0 && UseAmount > 0)
-                                {
-                                    var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                                    {
-                                        AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                        CreateDate = DateTime.Now,
-                                        Title = "机具换绑",
-                                        UserId = newpos.OpId, //运营中心Id
-                                        Operater = SysUserName + "-" + SysRealName,
-                                        BeforeAmount = BeforeAmount,//使用前剩余额度
-                                        AfterAmount = AfterAmount,//使用后剩余额度
-                                        ChangeAmount = UseAmount,//操作金额
-                                        OperateType = 1,//操作类别
-                                    }).Entity;
-                                }
-                            }
-
-                            decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
                             opUserAccount.ValidAmount += oldpos.OpReserve3;
                             opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                             opUserAccount.TotalAmt += oldpos.OpReserve1;
 
-                            if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
-                                var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                                {
-                                    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
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                            // for (int a = 1; a <= 3; a++)
+                            // {
+                            //     var UseAmount = 0.00M;
+                            //     var BeforeAmount = 0.00M;
+                            //     var AfterAmount = 0.00M;
+                            //     if (a == 1)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve1;
+                            //         BeforeAmount = opUserAccount.TotalAmt;
+                            //         AfterAmount = opUserAccount.TotalAmt + UseAmount;
+                            //     }
+                            //     if (a == 2)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve2;
+                            //         BeforeAmount = opUserAccount.ValidForGetAmount;
+                            //         AfterAmount = opUserAccount.ValidForGetAmount + UseAmount;
+                            //     }
+                            //     if (a == 3)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve1;
+                            //         BeforeAmount = opUserAccount.ValidAmount;
+                            //         AfterAmount = opUserAccount.ValidAmount + UseAmount;
+                            //     }
+                            //     if (a > 0 && UseAmount > 0)
+                            //     {
+                            //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                            //         {
+                            //             AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                            //             CreateDate = DateTime.Now,
+                            //             Title = "机具换绑",
+                            //             UserId = newpos.OpId, //运营中心Id
+                            //             Operater = SysUserName + "-" + SysRealName,
+                            //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                            //             AfterAmount = AfterAmount,//使用后剩余额度
+                            //             ChangeAmount = UseAmount,//操作金额
+                            //             OperateType = 1,//操作类别
+                            //         }).Entity;
+                            //     }
+                            // }
+
+                            // decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+                            // opUserAccount.ValidAmount += oldpos.OpReserve3;
+                            // opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
+                            // opUserAccount.TotalAmt += oldpos.OpReserve1;
+
+                            // if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
+                            // {
+                            //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            //     {
+                            //         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;
+                            // }
                         }
                         if (newpos.OpId == 0)
                         {
@@ -2325,67 +2377,87 @@ namespace MySystem.Areas.Admin.Controllers
                         {
                             var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
 
-                            for (int a = 1; a <= 3; a++)
-                            {
-                                var UseAmount = 0.00M;
-                                var BeforeAmount = 0.00M;
-                                var AfterAmount = 0.00M;
-                                if (a == 1)
-                                {
-                                    UseAmount = oldpos.OpReserve1;
-                                    BeforeAmount = opUserAccount.TotalAmt;
-                                    AfterAmount = opUserAccount.TotalAmt + UseAmount;
-                                }
-                                if (a == 2)
-                                {
-                                    UseAmount = oldpos.OpReserve2;
-                                    BeforeAmount = opUserAccount.ValidForGetAmount;
-                                    AfterAmount = opUserAccount.ValidForGetAmount + UseAmount;
-                                }
-                                if (a == 3)
-                                {
-                                    UseAmount = oldpos.OpReserve1;
-                                    BeforeAmount = opUserAccount.ValidAmount;
-                                    AfterAmount = opUserAccount.ValidAmount + UseAmount;
-                                }
-                                if (a > 0 && UseAmount > 0)
-                                {
-                                    var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                                    {
-                                        AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                        CreateDate = DateTime.Now,
-                                        Title = "机具换绑",
-                                        UserId = newpos.OpId, //运营中心Id
-                                        Operater = SysUserName + "-" + SysRealName,
-                                        BeforeAmount = BeforeAmount,//使用前剩余额度
-                                        AfterAmount = AfterAmount,//使用后剩余额度
-                                        ChangeAmount = UseAmount,//操作金额
-                                        OperateType = 1,//操作类别
-                                    }).Entity;
-                                }
-                            }
-
-                            decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
                             opUserAccount.ValidAmount += oldpos.OpReserve3;
                             opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                             opUserAccount.TotalAmt += oldpos.OpReserve1;
 
-                            if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
-                                var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                                {
-                                    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
+                            };
+
+                            RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                            // for (int a = 1; a <= 3; a++)
+                            // {
+                            //     var UseAmount = 0.00M;
+                            //     var BeforeAmount = 0.00M;
+                            //     var AfterAmount = 0.00M;
+                            //     if (a == 1)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve1;
+                            //         BeforeAmount = opUserAccount.TotalAmt;
+                            //         AfterAmount = opUserAccount.TotalAmt + UseAmount;
+                            //     }
+                            //     if (a == 2)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve2;
+                            //         BeforeAmount = opUserAccount.ValidForGetAmount;
+                            //         AfterAmount = opUserAccount.ValidForGetAmount + UseAmount;
+                            //     }
+                            //     if (a == 3)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve1;
+                            //         BeforeAmount = opUserAccount.ValidAmount;
+                            //         AfterAmount = opUserAccount.ValidAmount + UseAmount;
+                            //     }
+                            //     if (a > 0 && UseAmount > 0)
+                            //     {
+                            //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                            //         {
+                            //             AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                            //             CreateDate = DateTime.Now,
+                            //             Title = "机具换绑",
+                            //             UserId = newpos.OpId, //运营中心Id
+                            //             Operater = SysUserName + "-" + SysRealName,
+                            //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                            //             AfterAmount = AfterAmount,//使用后剩余额度
+                            //             ChangeAmount = UseAmount,//操作金额
+                            //             OperateType = 1,//操作类别
+                            //         }).Entity;
+                            //     }
+                            // }
+
+                            // decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+                            // opUserAccount.ValidAmount += oldpos.OpReserve3;
+                            // opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
+                            // opUserAccount.TotalAmt += oldpos.OpReserve1;
+
+                            // if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
+                            // {
+                            //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            //     {
+                            //         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;
+                            // }
                         }
                         if (newpos.OpId == 0)
                         {
@@ -2620,67 +2692,87 @@ namespace MySystem.Areas.Admin.Controllers
                     {
                         var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Sort > 0 && m.Id == oldpos.OpId && m.UserId == oldpos.OpId) ?? new OpModels.UserAccount();
 
-                        for (int a = 1; a <= 3; a++)
-                        {
-                            var UseAmount = 0.00M;
-                            var BeforeAmount = 0.00M;
-                            var AfterAmount = 0.00M;
-                            if (a == 1)
-                            {
-                                UseAmount = oldpos.OpReserve1;
-                                BeforeAmount = opUserAccount.TotalAmt;
-                                AfterAmount = opUserAccount.TotalAmt + UseAmount;
-                            }
-                            if (a == 2)
-                            {
-                                UseAmount = oldpos.OpReserve2;
-                                BeforeAmount = opUserAccount.ValidForGetAmount;
-                                AfterAmount = opUserAccount.ValidForGetAmount + UseAmount;
-                            }
-                            if (a == 3)
-                            {
-                                UseAmount = oldpos.OpReserve1;
-                                BeforeAmount = opUserAccount.ValidAmount;
-                                AfterAmount = opUserAccount.ValidAmount + UseAmount;
-                            }
-                            if (a > 0 && UseAmount > 0)
-                            {
-                                var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                                {
-                                    AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                    CreateDate = DateTime.Now,
-                                    Title = "机具换绑",
-                                    UserId = newpos.OpId, //运营中心Id
-                                    Operater = SysUserName + "-" + SysRealName,
-                                    BeforeAmount = BeforeAmount,//使用前剩余额度
-                                    AfterAmount = AfterAmount,//使用后剩余额度
-                                    ChangeAmount = UseAmount,//操作金额
-                                    OperateType = 1,//操作类别
-                                }).Entity;
-                            }
-                        }
-
-                        decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
                         opUserAccount.ValidAmount += oldpos.OpReserve3;
                         opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
                         opUserAccount.TotalAmt += oldpos.OpReserve1;
 
-                        if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                            {
-                                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
+                        };
+
+                        RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                        // for (int a = 1; a <= 3; a++)
+                        // {
+                        //     var UseAmount = 0.00M;
+                        //     var BeforeAmount = 0.00M;
+                        //     var AfterAmount = 0.00M;
+                        //     if (a == 1)
+                        //     {
+                        //         UseAmount = oldpos.OpReserve1;
+                        //         BeforeAmount = opUserAccount.TotalAmt;
+                        //         AfterAmount = opUserAccount.TotalAmt + UseAmount;
+                        //     }
+                        //     if (a == 2)
+                        //     {
+                        //         UseAmount = oldpos.OpReserve2;
+                        //         BeforeAmount = opUserAccount.ValidForGetAmount;
+                        //         AfterAmount = opUserAccount.ValidForGetAmount + UseAmount;
+                        //     }
+                        //     if (a == 3)
+                        //     {
+                        //         UseAmount = oldpos.OpReserve1;
+                        //         BeforeAmount = opUserAccount.ValidAmount;
+                        //         AfterAmount = opUserAccount.ValidAmount + UseAmount;
+                        //     }
+                        //     if (a > 0 && UseAmount > 0)
+                        //     {
+                        //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                        //         {
+                        //             AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                        //             CreateDate = DateTime.Now,
+                        //             Title = "机具换绑",
+                        //             UserId = newpos.OpId, //运营中心Id
+                        //             Operater = SysUserName + "-" + SysRealName,
+                        //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                        //             AfterAmount = AfterAmount,//使用后剩余额度
+                        //             ChangeAmount = UseAmount,//操作金额
+                        //             OperateType = 1,//操作类别
+                        //         }).Entity;
+                        //     }
+                        // }
+
+                        // decimal TotalAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount;//旧的总金额
+                        // opUserAccount.ValidAmount += oldpos.OpReserve3;
+                        // opUserAccount.ValidForGetAmount += oldpos.OpReserve2;
+                        // opUserAccount.TotalAmt += oldpos.OpReserve1;
+
+                        // if (oldpos.OpReserve1 > 0 || oldpos.OpReserve2 > 0 || oldpos.OpReserve3 > 0)
+                        // {
+                        //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                        //     {
+                        //         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;
+                        // }
                     }
                     if (newpos.OpId == 0)
                     {

+ 70 - 54
Areas/Admin/Controllers/OperateServer/StoreMachineApplyOperateController.cs

@@ -395,61 +395,77 @@ namespace MySystem.Areas.Admin.Controllers
                 var users = opdb.UserAccount.FirstOrDefault(m => m.Status == 0 && m.UserId == query.UserId) ?? new UserAccount();
                 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;
-
-                    for (int a = 1; a <= 3; a++)
-                    {
-                        var UseAmount = 0.00M;
-                        var BeforeAmount = 0.00M;
-                        var AfterAmount = 0.00M;
-                        if (a == 1)
-                        {
-                            UseAmount = TotalAmt;
-                            BeforeAmount = users.TotalAmt + UseAmount;
-                            AfterAmount = users.TotalAmt;
-                        }
-                        if (a == 2)
-                        {
-                            UseAmount = ValidForGetAmount;
-                            BeforeAmount = users.ValidForGetAmount + UseAmount;
-                            AfterAmount = users.ValidForGetAmount;
-                        }
-                        if (a == 3)
-                        {
-                            UseAmount = ValidAmount;
-                            BeforeAmount = users.ValidAmount + UseAmount;
-                            AfterAmount = users.ValidAmount;
-                        }
-                        if (a > 0 && UseAmount > 0)
-                        {
-                            var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                            {
-                                AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                CreateDate = DateTime.Now,
-                                Title = "机具申请驳回",
-                                UserId = query.UserId, //运营中心Id
-                                Operater = SysUserName + "-" + SysRealName,
-                                BeforeAmount = BeforeAmount,//使用前剩余额度
-                                AfterAmount = AfterAmount,//使用后剩余额度
-                                ChangeAmount = UseAmount,//操作金额
-                                OperateType = 1,//操作类别
-                            }).Entity;
-                        }
-                    }
+                        UserId = query.UserId,//创客Id
+                        OperateType = 0,//操作类型(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
+                    };
+
+                    RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                    // var amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+                    // {
+                    //     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;
+
+                    // for (int a = 1; a <= 3; a++)
+                    // {
+                    //     var UseAmount = 0.00M;
+                    //     var BeforeAmount = 0.00M;
+                    //     var AfterAmount = 0.00M;
+                    //     if (a == 1)
+                    //     {
+                    //         UseAmount = TotalAmt;
+                    //         BeforeAmount = users.TotalAmt + UseAmount;
+                    //         AfterAmount = users.TotalAmt;
+                    //     }
+                    //     if (a == 2)
+                    //     {
+                    //         UseAmount = ValidForGetAmount;
+                    //         BeforeAmount = users.ValidForGetAmount + UseAmount;
+                    //         AfterAmount = users.ValidForGetAmount;
+                    //     }
+                    //     if (a == 3)
+                    //     {
+                    //         UseAmount = ValidAmount;
+                    //         BeforeAmount = users.ValidAmount + UseAmount;
+                    //         AfterAmount = users.ValidAmount;
+                    //     }
+                    //     if (a > 0 && UseAmount > 0)
+                    //     {
+                    //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                    //         {
+                    //             AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                    //             CreateDate = DateTime.Now,
+                    //             Title = "机具申请驳回",
+                    //             UserId = query.UserId, //运营中心Id
+                    //             Operater = SysUserName + "-" + SysRealName,
+                    //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                    //             AfterAmount = AfterAmount,//使用后剩余额度
+                    //             ChangeAmount = UseAmount,//操作金额
+                    //             OperateType = 1,//操作类别
+                    //         }).Entity;
+                    //     }
+                    // }
 
                     users.ValidAmount += ValidAmount;
                     users.TotalAmt += TotalAmt;

+ 102 - 63
Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs

@@ -595,13 +595,15 @@ namespace MySystem.Areas.Admin.Controllers
             decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
 
             int OperateType = 0;
+            int ChangeType = 0;
             var bAmount = account.ValidForGetAmount;
             var description = "";
             if (Kind == 1)
             {
                 account.TotalAmt -= decimal.Parse(OperationAmount);
                 OperateType = 2;//系统扣减
-                description = "系统扣减";
+                description = "系统扣减未使用额度";
+                ChangeType = 13; 
             }
 
             //增加
@@ -609,43 +611,60 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 account.TotalAmt += decimal.Parse(OperationAmount);
                 OperateType = 1;//系统增加
-                description = "系统增加";
+                description = "系统增加未使用额度";
+                ChangeType = 12; 
             }
             decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更后总金额
 
             if (OperateType > 0 && decimal.Parse(OperationAmount) > 0)
             {
-                AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+                OpAmountItem opAmountItem = new OpAmountItem
                 {
-                    Version = 1,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                    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;
-
-                AmountChangeRecord amountChangeRecord = opdb.AmountChangeRecord.Add(new AmountChangeRecord()
-                {
-                    AmountType = 1,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                    CreateDate = DateTime.Now,
-                    Title = description,
-                    Remark = Note,
-                    UserId = sysAdmin.UserId, //运营中心Id
-                    Operater = SysUserName + "-" + SysRealName,
-                    BeforeAmount = bAmount,//使用前剩余额度
-                    AfterAmount = account.TotalAmt,//使用后剩余额度
-                    ChangeAmount = decimal.Parse(OperationAmount),//操作金额
-                    OperateType = OperateType,//操作类别
-                }).Entity;
-                opdb.SaveChanges();
+                    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
+                };
+
+                RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                // AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+                // {
+                //     Version = 1,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                //     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;
+
+                // AmountChangeRecord amountChangeRecord = opdb.AmountChangeRecord.Add(new AmountChangeRecord()
+                // {
+                //     AmountType = 1,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                //     CreateDate = DateTime.Now,
+                //     Title = description,
+                //     Remark = Note,
+                //     UserId = sysAdmin.UserId, //运营中心Id
+                //     Operater = SysUserName + "-" + SysRealName,
+                //     BeforeAmount = bAmount,//使用前剩余额度
+                //     AfterAmount = account.TotalAmt,//使用后剩余额度
+                //     ChangeAmount = decimal.Parse(OperationAmount),//操作金额
+                //     OperateType = OperateType,//操作类别
+                // }).Entity;
+                // opdb.SaveChanges();
                 AddSysLog(data.Id.ToString(), "SysAdmin", "EditAmt");
             }
             return "success";
@@ -680,13 +699,15 @@ namespace MySystem.Areas.Admin.Controllers
             }
             decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
             int OperateType = 0;
+            int ChangeType = 0;
             var bAmount = account.ValidForGetAmount;
             var description = "";
             if (Kind == 1 && decimal.Parse(OperationAmount) <= account.ValidForGetAmount)
             {
                 account.ValidForGetAmount -= decimal.Parse(OperationAmount);
                 OperateType = 2;
-                description = "系统扣减";
+                description = "系统扣减可提现额度";
+                ChangeType = 13; 
             }
             else if (Kind == 1 && decimal.Parse(OperationAmount) > account.ValidForGetAmount)
             {
@@ -696,41 +717,59 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 account.ValidForGetAmount += decimal.Parse(OperationAmount);
                 OperateType = 1;
-                description = "系统增加";
+                description = "系统增加可提现额度";
+                ChangeType = 12; 
             }
             decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更后总金额
             if (OperateType > 0 && decimal.Parse(OperationAmount) > 0)
             {
-                AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
-                {
-                    Version = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                    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;
-
-                AmountChangeRecord amountChangeRecord = opdb.AmountChangeRecord.Add(new AmountChangeRecord()
+
+                OpAmountItem opAmountItem = new OpAmountItem
                 {
-                    AmountType = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                    CreateDate = DateTime.Now,
-                    Title = description,
-                    Remark = Note,
-                    UserId = sysAdmin.UserId, //运营中心Id
-                    Operater = SysUserName + "-" + SysRealName,
-                    BeforeAmount = bAmount,//使用前剩余额度
-                    AfterAmount = account.ValidForGetAmount,//使用后剩余额度
-                    ChangeAmount = decimal.Parse(OperationAmount),//操作金额
-                    OperateType = OperateType,//操作类别
-                }).Entity;
+                    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
+                };
+
+                RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+
+                // AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+                // {
+                //     Version = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                //     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;
+
+                // AmountChangeRecord amountChangeRecord = opdb.AmountChangeRecord.Add(new AmountChangeRecord()
+                // {
+                //     AmountType = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                //     CreateDate = DateTime.Now,
+                //     Title = description,
+                //     Remark = Note,
+                //     UserId = sysAdmin.UserId, //运营中心Id
+                //     Operater = SysUserName + "-" + SysRealName,
+                //     BeforeAmount = bAmount,//使用前剩余额度
+                //     AfterAmount = account.ValidForGetAmount,//使用后剩余额度
+                //     ChangeAmount = decimal.Parse(OperationAmount),//操作金额
+                //     OperateType = OperateType,//操作类别
+                // }).Entity;
                 AddSysLog(data.Id.ToString(), "SysAdmin", "EditBalance");
                 opdb.SaveChanges();
             }

+ 43 - 26
Areas/Admin/Controllers/OperateServer/UserCashRecordOperateController.cs

@@ -538,33 +538,50 @@ namespace MySystem.Areas.Admin.Controllers
                     decimal BeforeAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount; //变更前总金额
                     decimal AfterAmount = account.TotalAmt + account.ValidAmount + account.ValidForGetAmount + TradeAmount; //变更后总金额
                     account.ValidForGetAmount += TradeAmount;//返回可提现余额
-                    opdb.AmountRecord.Add(new AmountRecord()
-                    {
-                        CreateDate = DateTime.Now,
-                        UserId = edit.UserId, //创客
-                        SeoDescription = "提现驳回",
-                        UseAmount = TradeAmount, //变更金额
-                        BeforeAmount = BeforeAmount, //变更前总金额
-                        AfterAmount = AfterAmount, //变更后总金额
-                        AfterTotalAmt = account.TotalAmt,
-                        AfterValidForGetAmount = account.ValidForGetAmount,
-                        AfterValidAmount = account.ValidAmount,
-                        OperateType = 1,
-                    });
-
-                    var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+
+                    OpAmountItem opAmountItem = new OpAmountItem
                     {
-                        AmountType = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                        CreateDate = DateTime.Now,
-                        Title = "机具申请驳回",
-                        UserId = edit.UserId, //运营中心Id
-                        Operater = SysUserName + "-" + SysRealName,
-                        BeforeAmount = account.ValidForGetAmount - TradeAmount,//使用前剩余额度
-                        AfterAmount = account.ValidForGetAmount,//使用后剩余额度
-                        ChangeAmount = TradeAmount,//操作金额
-                        OperateType = 1,//操作类别
-                    }).Entity;
-                    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.AmountRecord.Add(new AmountRecord()
+                    // {
+                    //     CreateDate = DateTime.Now,
+                    //     UserId = edit.UserId, //创客
+                    //     SeoDescription = "提现驳回",
+                    //     UseAmount = TradeAmount, //变更金额
+                    //     BeforeAmount = BeforeAmount, //变更前总金额
+                    //     AfterAmount = AfterAmount, //变更后总金额
+                    //     AfterTotalAmt = account.TotalAmt,
+                    //     AfterValidForGetAmount = account.ValidForGetAmount,
+                    //     AfterValidAmount = account.ValidAmount,
+                    //     OperateType = 1,
+                    // });
+
+                    // var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                    // {
+                    //     AmountType = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                    //     CreateDate = DateTime.Now,
+                    //     Title = "机具申请驳回",
+                    //     UserId = edit.UserId, //运营中心Id
+                    //     Operater = SysUserName + "-" + SysRealName,
+                    //     BeforeAmount = account.ValidForGetAmount - TradeAmount,//使用前剩余额度
+                    //     AfterAmount = account.ValidForGetAmount,//使用后剩余额度
+                    //     ChangeAmount = TradeAmount,//操作金额
+                    //     OperateType = 1,//操作类别
+                    // }).Entity;
+                    // opdb.SaveChanges();
                 }
 
                 opdb.SaveChanges();

+ 43 - 25
Areas/Admin/Controllers/OperateServer/UserCashRecordOperatesController.cs

@@ -596,32 +596,50 @@ namespace MySystem.Areas.Admin.Controllers
                     decimal BeforeTotalAmount = account.ValidForGetAmount; //变更前总金额
                     account.ValidForGetAmount += TradeAmount;//返回可提现余额
                     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,
-                    });
-
-                    var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                    {
-                        AmountType = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                        CreateDate = DateTime.Now,
-                        Title = "机具申请驳回",
-                        UserId = edit.UserId, //运营中心Id
-                        Operater = SysUserName + "-" + SysRealName,
-                        BeforeAmount = account.ValidForGetAmount - TradeAmount,//使用前剩余额度
-                        AfterAmount = account.ValidForGetAmount,//使用后剩余额度
-                        ChangeAmount = TradeAmount,//操作金额
-                        OperateType = 1,//操作类别
-                    }).Entity;
-                    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.AmountRecord.Add(new AmountRecord()
+                    // {
+                    //     CreateDate = DateTime.Now,
+                    //     UserId = edit.UserId, //创客
+                    //     SeoDescription = "提现驳回",
+                    //     UseAmount = TradeAmount, //变更金额
+                    //     BeforeAmount = BeforeAmount, //变更前总金额
+                    //     AfterAmount = AfterAmount, //变更后总金额
+                    //     AfterTotalAmt = account.TotalAmt,
+                    //     AfterValidForGetAmount = account.ValidForGetAmount,
+                    //     AfterValidAmount = account.ValidAmount,
+                    //     OperateType = 1,
+                    // });
+
+                    // var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                    // {
+                    //     AmountType = 2,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                    //     CreateDate = DateTime.Now,
+                    //     Title = "机具申请驳回",
+                    //     UserId = edit.UserId, //运营中心Id
+                    //     Operater = SysUserName + "-" + SysRealName,
+                    //     BeforeAmount = account.ValidForGetAmount - TradeAmount,//使用前剩余额度
+                    //     AfterAmount = account.ValidForGetAmount,//使用后剩余额度
+                    //     ChangeAmount = TradeAmount,//操作金额
+                    //     OperateType = 1,//操作类别
+                    // }).Entity;
+                    // opdb.SaveChanges();
                 }
 
                 opdb.SaveChanges();