Przeglądaj źródła

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

# Conflicts:
#	Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs
DuGuYang 2 lat temu
rodzic
commit
c38091c70b

+ 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; }
+    }
+}

+ 260 - 182
Areas/Admin/Controllers/MainServer/StoreHouseController.cs

@@ -568,33 +568,54 @@ namespace MySystem.Areas.Admin.Controllers
                         if (UseAmount > 0)
                         {
                             var amount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sto.OpId) ?? new OpModels.UserAccount();
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord()
-                            {
-                                Version = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                CreateDate = DateTime.Now,
-                                UserId = sto.OpId,
-                                SeoDescription = "分仓押金变更",
-                                OperateType = OperateType,
-                                UseAmount = UseAmount,
-                                BeforeAmount = amount.ValidAmount,
-                                AfterAmount = amount.ValidAmount + UseAmount,
-                                AfterTotalAmt = amount.TotalAmt,
-                                AfterValidForGetAmount = amount.ValidForGetAmount,
-                                AfterValidAmount = amount.ValidAmount + UseAmount,
-                            }).Entity;
 
-                            var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                            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);
+
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
-                                AmountType = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                CreateDate = DateTime.Now,
-                                Title = "分仓押金变更",
-                                UserId = sto.OpId, //运营中心Id
-                                Operater = SysUserName + "-" + SysRealName,
-                                BeforeAmount = amount.ValidAmount,//使用前剩余额度
-                                AfterAmount = amount.ValidAmount + UseAmount,//使用后剩余额度
-                                ChangeAmount = UseAmount,//操作金额
-                                OperateType = OperateType,//操作类别
-                            }).Entity;
+                                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 关联分仓额度
+                            //     CreateDate = DateTime.Now,
+                            //     UserId = sto.OpId,
+                            //     SeoDescription = "分仓押金变更",
+                            //     OperateType = OperateType,
+                            //     UseAmount = UseAmount,
+                            //     BeforeAmount = amount.ValidAmount,
+                            //     AfterAmount = amount.ValidAmount + UseAmount,
+                            //     AfterTotalAmt = amount.TotalAmt,
+                            //     AfterValidForGetAmount = amount.ValidForGetAmount,
+                            //     AfterValidAmount = amount.ValidAmount + UseAmount,
+                            // }).Entity;
+
+                            // var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                            // {
+                            //     AmountType = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                            //     CreateDate = DateTime.Now,
+                            //     Title = "分仓押金变更",
+                            //     UserId = sto.OpId, //运营中心Id
+                            //     Operater = SysUserName + "-" + SysRealName,
+                            //     BeforeAmount = amount.ValidAmount,//使用前剩余额度
+                            //     AfterAmount = amount.ValidAmount + UseAmount,//使用后剩余额度
+                            //     ChangeAmount = UseAmount,//操作金额
+                            //     OperateType = OperateType,//操作类别
+                            // }).Entity;
 
                             amount.ValidAmount -= sto.Deposit;
                             amount.ValidAmount += data.Deposit;
@@ -652,33 +673,54 @@ namespace MySystem.Areas.Admin.Controllers
                     if (UseAmount > 0)
                     {
                         var amount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sto.OpId) ?? new OpModels.UserAccount();
-                        var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord()
-                        {
-                            Version = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                            CreateDate = DateTime.Now,
-                            UserId = sto.OpId,
-                            SeoDescription = "分仓押金变更",
-                            OperateType = OperateType,
-                            UseAmount = UseAmount,
-                            BeforeAmount = amount.ValidAmount,
-                            AfterAmount = amount.ValidAmount + UseAmount,
-                            AfterTotalAmt = amount.TotalAmt,
-                            AfterValidForGetAmount = amount.ValidForGetAmount,
-                            AfterValidAmount = amount.ValidAmount + UseAmount,
-                        }).Entity;
 
-                        var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                        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);
+
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
-                            AmountType = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                            CreateDate = DateTime.Now,
-                            Title = "分仓押金变更",
-                            UserId = sto.OpId, //运营中心Id
-                            Operater = SysUserName + "-" + SysRealName,
-                            BeforeAmount = amount.ValidAmount,//使用前剩余额度
-                            AfterAmount = amount.ValidAmount + UseAmount,//使用后剩余额度
-                            ChangeAmount = UseAmount,//操作金额
-                            OperateType = OperateType,//操作类别
-                        }).Entity;
+                            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 关联分仓额度
+                        //     CreateDate = DateTime.Now,
+                        //     UserId = sto.OpId,
+                        //     SeoDescription = "分仓押金变更",
+                        //     OperateType = OperateType,
+                        //     UseAmount = UseAmount,
+                        //     BeforeAmount = amount.ValidAmount,
+                        //     AfterAmount = amount.ValidAmount + UseAmount,
+                        //     AfterTotalAmt = amount.TotalAmt,
+                        //     AfterValidForGetAmount = amount.ValidForGetAmount,
+                        //     AfterValidAmount = amount.ValidAmount + UseAmount,
+                        // }).Entity;
+
+                        // var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                        // {
+                        //     AmountType = 3,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                        //     CreateDate = DateTime.Now,
+                        //     Title = "分仓押金变更",
+                        //     UserId = sto.OpId, //运营中心Id
+                        //     Operater = SysUserName + "-" + SysRealName,
+                        //     BeforeAmount = amount.ValidAmount,//使用前剩余额度
+                        //     AfterAmount = amount.ValidAmount + UseAmount,//使用后剩余额度
+                        //     ChangeAmount = UseAmount,//操作金额
+                        //     OperateType = OperateType,//操作类别
+                        // }).Entity;
 
                         amount.ValidAmount -= sto.Deposit;
                         amount.ValidAmount += data.Deposit;
@@ -2151,74 +2193,92 @@ namespace MySystem.Areas.Admin.Controllers
                         }
                         if (IsOk == "1")
                         {
-                            var OperateType = 0;
-                            var Amount = 0.00M;
-                            if (deposit >= tamount)
-                            {
-                                OperateType = 1;
-                                Amount = deposit - tamount;
-                            }
-                            if (deposit < tamount)
-                            {
-                                OperateType = 2;
-                                Amount = tamount - deposit;
-                            }
-                            if (Amount > 0)
-                            {
-                                var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UserId = sysAdmin.UserId,
-                                    SeoDescription = "关联分仓",
-                                    OperateType = OperateType,
-                                    UseAmount = Amount,
-                                    BeforeAmount = TotalAmount,
-                                    AfterAmount = TotalAmount + deposit - tamount,
-                                    AfterTotalAmt = userAmount.TotalAmt,
-                                    AfterValidForGetAmount = userAmount.ValidForGetAmount,
-                                    AfterValidAmount = userAmount.ValidAmount,
-                                }).Entity;
-                            }
+                            // 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);
 
-                            for (int i = 1; i <= 3; i++)
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
-                                var UseAmount = 0.00M;
-                                var BeforeAmount = 0.00M;
-                                var AfterAmount = 0.00M;
-                                if (i == 1)
-                                {
-                                    UseAmount = TotalAmt;
-                                    BeforeAmount = userAmount.TotalAmt + UseAmount;
-                                    AfterAmount = userAmount.TotalAmt;
-                                }
-                                if (i == 2)
-                                {
-                                    UseAmount = ValidForGetAmount;
-                                    BeforeAmount = userAmount.ValidForGetAmount + UseAmount;
-                                    AfterAmount = userAmount.ValidForGetAmount;
-                                }
-                                if (i == 3)
-                                {
-                                    UseAmount = ValidAmount;
-                                    BeforeAmount = userAmount.ValidAmount + UseAmount;
-                                    AfterAmount = userAmount.ValidAmount;
-                                }
-                                if (i > 0 && UseAmount > 0)
-                                {
-                                    var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                                    {
-                                        AmountType = i,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                        CreateDate = DateTime.Now,
-                                        Title = "关联分仓",
-                                        UserId = sysAdmin.UserId, //运营中心Id
-                                        Operater = SysUserName + "-" + SysRealName,
-                                        BeforeAmount = BeforeAmount,//使用前剩余额度
-                                        AfterAmount = AfterAmount,//使用后剩余额度
-                                        ChangeAmount = UseAmount,//操作金额
-                                        OperateType = OperateType,//操作类别
-                                    }).Entity;
-                                }
-                            }
+                                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;
+                            // if (deposit >= tamount)
+                            // {
+                            //     OperateType = 1;
+                            //     Amount = deposit - tamount;
+                            // }
+                            // if (deposit < tamount)
+                            // {
+                            //     OperateType = 2;
+                            //     Amount = tamount - deposit;
+                            // }
+                            // if (Amount > 0)
+                            // {
+                            //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            //     {
+                            //         CreateDate = DateTime.Now,
+                            //         UserId = sysAdmin.UserId,
+                            //         SeoDescription = "关联分仓",
+                            //         OperateType = OperateType,
+                            //         UseAmount = Amount,
+                            //         BeforeAmount = TotalAmount,
+                            //         AfterAmount = TotalAmount + deposit - tamount,
+                            //         AfterTotalAmt = userAmount.TotalAmt,
+                            //         AfterValidForGetAmount = userAmount.ValidForGetAmount,
+                            //         AfterValidAmount = userAmount.ValidAmount,
+                            //     }).Entity;
+                            // }
+
+                            // for (int i = 1; i <= 3; i++)
+                            // {
+                            //     var UseAmount = 0.00M;
+                            //     var BeforeAmount = 0.00M;
+                            //     var AfterAmount = 0.00M;
+                            //     if (i == 1)
+                            //     {
+                            //         UseAmount = TotalAmt;
+                            //         BeforeAmount = userAmount.TotalAmt + UseAmount;
+                            //         AfterAmount = userAmount.TotalAmt;
+                            //     }
+                            //     if (i == 2)
+                            //     {
+                            //         UseAmount = ValidForGetAmount;
+                            //         BeforeAmount = userAmount.ValidForGetAmount + UseAmount;
+                            //         AfterAmount = userAmount.ValidForGetAmount;
+                            //     }
+                            //     if (i == 3)
+                            //     {
+                            //         UseAmount = ValidAmount;
+                            //         BeforeAmount = userAmount.ValidAmount + UseAmount;
+                            //         AfterAmount = userAmount.ValidAmount;
+                            //     }
+                            //     if (i > 0 && UseAmount > 0)
+                            //     {
+                            //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                            //         {
+                            //             AmountType = i,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                            //             CreateDate = DateTime.Now,
+                            //             Title = "关联分仓",
+                            //             UserId = sysAdmin.UserId, //运营中心Id
+                            //             Operater = SysUserName + "-" + SysRealName,
+                            //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                            //             AfterAmount = AfterAmount,//使用后剩余额度
+                            //             ChangeAmount = UseAmount,//操作金额
+                            //             OperateType = OperateType,//操作类别
+                            //         }).Entity;
+                            //     }
+                            // }
                             opdb.SaveChanges();
                         }
                         sysAdmin.StoreCount += idlist.Count();//添加关联分仓数
@@ -2414,74 +2474,92 @@ namespace MySystem.Areas.Admin.Controllers
                         sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
                         sysAdmin.TotalMachineCount -= pCount;//减少关联分仓机具数
 
-                        var OperateType = 0;
-                        var Amount = 0.00M;
-                        if (deposit >= tamount)
-                        {
-                            OperateType = 1;
-                            Amount = deposit - tamount;
-                        }
-                        if (deposit < tamount)
-                        {
-                            OperateType = 2;
-                            Amount = tamount - deposit;
-                        }
-                        if (Amount > 0)
-                        {
-                            var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                            {
-                                CreateDate = DateTime.Now,
-                                UserId = sysAdmin.UserId,
-                                SeoDescription = "取消关联分仓",
-                                OperateType = OperateType,
-                                UseAmount = Amount,
-                                BeforeAmount = TotalAmount,
-                                AfterAmount = TotalAmount - deposit + tamount,
-                                AfterTotalAmt = userAmount.TotalAmt,
-                                AfterValidForGetAmount = userAmount.ValidForGetAmount,
-                                AfterValidAmount = userAmount.ValidAmount,
-                            }).Entity;
-                        }
+                        // 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);
 
-                        for (int i = 1; i <= 3; i++)
+                        OpAmountItem opAmountItem = new OpAmountItem
                         {
-                            var UseAmount = 0.00M;
-                            var BeforeAmount = 0.00M;
-                            var AfterAmount = 0.00M;
-                            if (i == 1)
-                            {
-                                UseAmount = TotalAmt;
-                                BeforeAmount = userAmount.TotalAmt - UseAmount;
-                                AfterAmount = userAmount.TotalAmt;
-                            }
-                            if (i == 2)
-                            {
-                                UseAmount = ValidForGetAmount;
-                                BeforeAmount = userAmount.ValidForGetAmount - UseAmount;
-                                AfterAmount = userAmount.ValidForGetAmount;
-                            }
-                            if (i == 3)
-                            {
-                                UseAmount = ValidAmount;
-                                BeforeAmount = userAmount.ValidAmount - UseAmount;
-                                AfterAmount = userAmount.ValidAmount;
-                            }
-                            if (i > 0 && UseAmount > 0)
-                            {
-                                var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                                {
-                                    AmountType = i,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                    CreateDate = DateTime.Now,
-                                    Title = "取消关联分仓",
-                                    UserId = sysAdmin.UserId, //运营中心Id
-                                    Operater = SysUserName + "-" + SysRealName,
-                                    BeforeAmount = BeforeAmount,//使用前剩余额度
-                                    AfterAmount = AfterAmount,//使用后剩余额度
-                                    ChangeAmount = UseAmount,//操作金额
-                                    OperateType = OperateType,//操作类别
-                                }).Entity;
-                            }
-                        }
+                            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;
+                        // if (deposit >= tamount)
+                        // {
+                        //     OperateType = 1;
+                        //     Amount = deposit - tamount;
+                        // }
+                        // if (deposit < tamount)
+                        // {
+                        //     OperateType = 2;
+                        //     Amount = tamount - deposit;
+                        // }
+                        // if (Amount > 0)
+                        // {
+                        //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                        //     {
+                        //         CreateDate = DateTime.Now,
+                        //         UserId = sysAdmin.UserId,
+                        //         SeoDescription = "取消关联分仓",
+                        //         OperateType = OperateType,
+                        //         UseAmount = Amount,
+                        //         BeforeAmount = TotalAmount,
+                        //         AfterAmount = TotalAmount - deposit + tamount,
+                        //         AfterTotalAmt = userAmount.TotalAmt,
+                        //         AfterValidForGetAmount = userAmount.ValidForGetAmount,
+                        //         AfterValidAmount = userAmount.ValidAmount,
+                        //     }).Entity;
+                        // }
+
+                        // for (int i = 1; i <= 3; i++)
+                        // {
+                        //     var UseAmount = 0.00M;
+                        //     var BeforeAmount = 0.00M;
+                        //     var AfterAmount = 0.00M;
+                        //     if (i == 1)
+                        //     {
+                        //         UseAmount = TotalAmt;
+                        //         BeforeAmount = userAmount.TotalAmt - UseAmount;
+                        //         AfterAmount = userAmount.TotalAmt;
+                        //     }
+                        //     if (i == 2)
+                        //     {
+                        //         UseAmount = ValidForGetAmount;
+                        //         BeforeAmount = userAmount.ValidForGetAmount - UseAmount;
+                        //         AfterAmount = userAmount.ValidForGetAmount;
+                        //     }
+                        //     if (i == 3)
+                        //     {
+                        //         UseAmount = ValidAmount;
+                        //         BeforeAmount = userAmount.ValidAmount - UseAmount;
+                        //         AfterAmount = userAmount.ValidAmount;
+                        //     }
+                        //     if (i > 0 && UseAmount > 0)
+                        //     {
+                        //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                        //         {
+                        //             AmountType = i,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                        //             CreateDate = DateTime.Now,
+                        //             Title = "取消关联分仓",
+                        //             UserId = sysAdmin.UserId, //运营中心Id
+                        //             Operater = SysUserName + "-" + SysRealName,
+                        //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                        //             AfterAmount = AfterAmount,//使用后剩余额度
+                        //             ChangeAmount = UseAmount,//操作金额
+                        //             OperateType = OperateType,//操作类别
+                        //         }).Entity;
+                        //     }
+                        // }
                         opdb.SaveChanges();
                     }
                     else

+ 373 - 276
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -1667,62 +1667,81 @@ namespace MySystem.Areas.Admin.Controllers
                         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;
-                        }
 
-                        for (int a = 1; a <= 3; a++)
+                        // 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
                         {
-                            var UseAmount = 0.00M;
-                            var BeforeAmount = 0.00M;
-                            var AfterAmount = 0.00M;
-                            if (a == 1)
-                            {
-                                UseAmount = oldpos.OpReserve1;
-                                BeforeAmount = opUserAccount.TotalAmt - UseAmount;
-                                AfterAmount = opUserAccount.TotalAmt;
-                            }
-                            if (a == 2)
-                            {
-                                UseAmount = oldpos.OpReserve2;
-                                BeforeAmount = opUserAccount.ValidForGetAmount - UseAmount;
-                                AfterAmount = opUserAccount.ValidForGetAmount;
-                            }
-                            if (a == 3)
-                            {
-                                UseAmount = oldpos.OpReserve3;
-                                BeforeAmount = opUserAccount.ValidAmount - UseAmount;
-                                AfterAmount = opUserAccount.ValidAmount;
-                            }
-                            if (a > 0 && UseAmount > 0)
-                            {
-                                var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
-                                {
-                                    AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
-                                    CreateDate = DateTime.Now,
-                                    Title = "机具换绑",
-                                    UserId = oldpos.OpId, //运营中心Id
-                                    Operater = SysUserName + "-" + SysRealName,
-                                    BeforeAmount = BeforeAmount,//使用前剩余额度
-                                    AfterAmount = AfterAmount,//使用后剩余额度
-                                    ChangeAmount = UseAmount,//操作金额
-                                    OperateType = 1,//操作类别
-                                }).Entity;
-                            }
-                        }
+                            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
+                        //     {
+                        //         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;
+                        // }
+
+                        // 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 - UseAmount;
+                        //         AfterAmount = opUserAccount.TotalAmt;
+                        //     }
+                        //     if (a == 2)
+                        //     {
+                        //         UseAmount = oldpos.OpReserve2;
+                        //         BeforeAmount = opUserAccount.ValidForGetAmount - UseAmount;
+                        //         AfterAmount = opUserAccount.ValidForGetAmount;
+                        //     }
+                        //     if (a == 3)
+                        //     {
+                        //         UseAmount = oldpos.OpReserve3;
+                        //         BeforeAmount = opUserAccount.ValidAmount - UseAmount;
+                        //         AfterAmount = opUserAccount.ValidAmount;
+                        //     }
+                        //     if (a > 0 && UseAmount > 0)
+                        //     {
+                        //         var amountChangeRecord = opdb.AmountChangeRecord.Add(new OpModels.AmountChangeRecord()
+                        //         {
+                        //             AmountType = a,//1 未使用额度 2 可提现额度 3 关联分仓额度
+                        //             CreateDate = DateTime.Now,
+                        //             Title = "机具换绑",
+                        //             UserId = oldpos.OpId, //运营中心Id
+                        //             Operater = SysUserName + "-" + SysRealName,
+                        //             BeforeAmount = BeforeAmount,//使用前剩余额度
+                        //             AfterAmount = AfterAmount,//使用后剩余额度
+                        //             ChangeAmount = UseAmount,//操作金额
+                        //             OperateType = 1,//操作类别
+                        //         }).Entity;
+                        //     }
+                        // }
 
                         oldpos.OpReserve1 = 0;
                         oldpos.OpReserve2 = 0;
@@ -1738,62 +1757,80 @@ namespace MySystem.Areas.Admin.Controllers
                             opUserAccount.ValidForGetAmount += newpos.OpReserve2;
                             opUserAccount.TotalAmt += newpos.OpReserve1;
 
-                            if (newpos.OpReserve1 > 0 || newpos.OpReserve2 > 0 || newpos.OpReserve3 > 0)
-                            {
-                                var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
-                                {
-                                    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;
-                            }
+                            // 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);
 
-                            for (int a = 1; a <= 3; a++)
+                            OpAmountItem opAmountItem = new OpAmountItem
                             {
-                                var UseAmount = 0.00M;
-                                var BeforeAmount = 0.00M;
-                                var AfterAmount = 0.00M;
-                                if (a == 1)
-                                {
-                                    UseAmount = oldpos.OpReserve1;
-                                    BeforeAmount = opUserAccount.TotalAmt - UseAmount;
-                                    AfterAmount = opUserAccount.TotalAmt;
-                                }
-                                if (a == 2)
-                                {
-                                    UseAmount = oldpos.OpReserve2;
-                                    BeforeAmount = opUserAccount.ValidForGetAmount - UseAmount;
-                                    AfterAmount = opUserAccount.ValidForGetAmount;
-                                }
-                                if (a == 3)
-                                {
-                                    UseAmount = oldpos.OpReserve1;
-                                    BeforeAmount = opUserAccount.ValidAmount - UseAmount;
-                                    AfterAmount = opUserAccount.ValidAmount;
-                                }
-                                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;
-                                }
-                            }
+                                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)
+                            // {
+                            //     var amoutRecord = opdb.AmountRecord.Add(new OpModels.AmountRecord
+                            //     {
+                            //         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;
+                            // }
+
+                            // 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 - UseAmount;
+                            //         AfterAmount = opUserAccount.TotalAmt;
+                            //     }
+                            //     if (a == 2)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve2;
+                            //         BeforeAmount = opUserAccount.ValidForGetAmount - UseAmount;
+                            //         AfterAmount = opUserAccount.ValidForGetAmount;
+                            //     }
+                            //     if (a == 3)
+                            //     {
+                            //         UseAmount = oldpos.OpReserve1;
+                            //         BeforeAmount = opUserAccount.ValidAmount - UseAmount;
+                            //         AfterAmount = opUserAccount.ValidAmount;
+                            //     }
+                            //     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;
+                            //     }
+                            // }
 
                             newpos.OpReserve1 = 0;
                             newpos.OpReserve2 = 0;
@@ -2014,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)
                         {
@@ -2320,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)
                         {
@@ -2615,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;

+ 72 - 49
Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs

@@ -636,13 +636,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; 
             }
 
             //增加
@@ -651,27 +653,28 @@ namespace MySystem.Areas.Admin.Controllers
                 sysAdmin.ReturnAmount = decimal.Parse(OperationAmount);
                 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)
             {
-                // 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
-                // };
-
-                // RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
+                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
+                };
+
+                RedisDbconn.Instance.AddList("OperateAmountRecordServiceQueue", opAmountItem);
 
                 // AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
                 // {
@@ -703,7 +706,7 @@ namespace MySystem.Areas.Admin.Controllers
                 //     ChangeAmount = decimal.Parse(OperationAmount),//操作金额
                 //     OperateType = OperateType,//操作类别
                 // }).Entity;
-
+                // opdb.SaveChanges();
                 AddSysLog(data.Id.ToString(), "SysAdmin", "EditAmt");
                 opdb.SaveChanges();
                 if (Kind == 2 && ReturnFlag == 1)
@@ -742,13 +745,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)
             {
@@ -758,41 +763,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();

+ 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<AmountChangeRecord> AmountChangeRecord { 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<MachineApplyOpRecord> MachineApplyOpRecord { get; set; }
         public virtual DbSet<MenuRight> MenuRight { get; set; }
@@ -65,7 +68,8 @@ namespace MySystem.OpModels
         {
             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)");
             });
 
+            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 =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");