Explorar el Código

Merge branch 'feature-dgy-后台测试' into release

lcl hace 2 años
padre
commit
48d8a1ad0e
Se han modificado 63 ficheros con 2529 adiciones y 157 borrados
  1. BIN
      AppStart/.DS_Store
  2. 3 0
      AppStart/ExcelHelper.cs
  3. 126 0
      AppStart/Helper/InstallmentDeductionService.cs
  4. 287 0
      AppStart/Helper/TimeOutPosChargeService.cs
  5. 26 2
      AppStart/PublicChangePosFee.cs
  6. 48 20
      AppStart/PublicFunction.cs
  7. 8 0
      AppStart/Redis/RedisDbconn.cs
  8. 1 1
      Areas/Admin/Controllers/BsServer/AdvertismentController.cs
  9. 37 0
      Areas/Admin/Controllers/HomeController.cs
  10. 118 0
      Areas/Admin/Controllers/MainServer/OrdersController.cs
  11. 61 0
      Areas/Admin/Controllers/MainServer/PreAmountRecordController.cs
  12. 159 0
      Areas/Admin/Controllers/MainServer/PreSendStockDetailController.cs
  13. 53 0
      Areas/Admin/Controllers/MainServer/StoreBalanceController.cs
  14. 62 0
      Areas/Admin/Controllers/MainServer/StoreHouseAmountRecordController.cs
  15. 46 16
      Areas/Admin/Controllers/MainServer/SysToolsController.cs
  16. 78 17
      Areas/Admin/Controllers/MainServer/ToChargeBackRecordController.cs
  17. 21 3
      Areas/Admin/Controllers/MainServer/ToChargeBackRecordSubController.cs
  18. 15 1
      Areas/Admin/Controllers/MainServer/ToChargeByStageController.cs
  19. 145 0
      Areas/Admin/Controllers/MainServer/UserAccountRecordController.cs
  20. 203 1
      Areas/Admin/Controllers/MainServer/UserCashRecordController.cs
  21. 14 3
      Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs
  22. 1 1
      Areas/Admin/Views/BsServer/Advertisment/Add.cshtml
  23. 1 0
      Areas/Admin/Views/MainServer/LeaderReserveRecord/Index.cshtml
  24. 2 2
      Areas/Admin/Views/MainServer/PreSendStockDetail/Index.cshtml
  25. 268 0
      Areas/Admin/Views/MainServer/SysTools/SeeUserLevel4Info.cshtml
  26. 11 10
      Areas/Admin/Views/MainServer/SysTools/Team1Info.cshtml
  27. 10 0
      Areas/Admin/Views/MainServer/ToChargeBackRecord/Add.cshtml
  28. 11 0
      Areas/Admin/Views/MainServer/ToChargeBackRecord/Edit.cshtml
  29. 12 1
      Areas/Admin/Views/MainServer/ToChargeBackRecord/Index.cshtml
  30. 1 1
      Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Add.cshtml
  31. 1 1
      Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Edit.cshtml
  32. 16 5
      Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Index.cshtml
  33. 10 0
      Areas/Admin/Views/MainServer/ToChargeByStage/Add.cshtml
  34. 11 0
      Areas/Admin/Views/MainServer/ToChargeByStage/Edit.cshtml
  35. 11 0
      Areas/Admin/Views/MainServer/ToChargeByStage/Index.cshtml
  36. 11 0
      Areas/Admin/Views/OperateServer/SysAdminOperate/Add.cshtml
  37. 19 4
      Areas/Admin/Views/OperateServer/SysAdminOperate/Edit.cshtml
  38. 23 0
      Models/LeaderRankWhite.cs
  39. 1 0
      Models/MachineChangeDetail.cs
  40. 1 0
      Models/MachineUnBind.cs
  41. 28 0
      Models/MerchantDepositRecord.cs
  42. 23 0
      Models/OperatorRankWhite.cs
  43. 1 0
      Models/PosMerchantInfo.cs
  44. 1 0
      Models/ToChargeBackRecord.cs
  45. 1 0
      Models/ToChargeBackRecordSub.cs
  46. 1 0
      Models/ToChargeByStage.cs
  47. 2 0
      Models/UserAccount.cs
  48. 269 3
      Models/WebCMSEntities.cs
  49. 34 9
      wwwroot/layuiadmin/modules_main/Orders_Admin.js
  50. 35 10
      wwwroot/layuiadmin/modules_main/PreCardAmountRecord_Admin.js
  51. 18 0
      wwwroot/layuiadmin/modules_main/PreSendStockDetail_Admin.js
  52. 34 9
      wwwroot/layuiadmin/modules_main/StoreBalance_Admin.js
  53. 35 10
      wwwroot/layuiadmin/modules_main/StoreHouseCardAmountRecord_Admin.js
  54. 6 0
      wwwroot/layuiadmin/modules_main/Team1Info_Admin.js
  55. 1 0
      wwwroot/layuiadmin/modules_main/ToChargeBackRecordSub_Admin.js
  56. 1 0
      wwwroot/layuiadmin/modules_main/ToChargeBackRecord_Admin.js
  57. 1 0
      wwwroot/layuiadmin/modules_main/ToChargeByStage_Admin.js
  58. 34 9
      wwwroot/layuiadmin/modules_main/UserAccountRecord_Admin.js
  59. 34 9
      wwwroot/layuiadmin/modules_main/UserCashLeaderRecord_Admin.js
  60. 34 9
      wwwroot/layuiadmin/modules_main/UserCashRecord_Admin.js
  61. 4 0
      wwwroot/layuiadmin/modules_operate/SysAdminOperate_Admin.js
  62. BIN
      wwwroot/users/机具费率调整模版.xlsx
  63. BIN
      wwwroot/users/预扣款模版.xlsx

BIN
AppStart/.DS_Store


+ 3 - 0
AppStart/ExcelHelper.cs

@@ -43,6 +43,7 @@ namespace MySystem
                     while (DoCount < list.Rows.Count)
                     {
                         WebCMSEntities db = new WebCMSEntities();
+                        //机具入库
                         if (_Kind == "1")
                         {
                             var tran = db.Database.BeginTransaction();
@@ -234,6 +235,7 @@ namespace MySystem
                             }
                             tran.Dispose();
                         }
+                        //仓库调拨
                         else if (_Kind == "2")
                         {
                             Dictionary<string, int> storeData = new Dictionary<string, int>();
@@ -506,6 +508,7 @@ namespace MySystem
                                 }
                             }
                         }
+                        //仓库发货至创客
                         else if (_Kind == "3")
                         {
                             Dictionary<string, int> storeData = new Dictionary<string, int>();

+ 126 - 0
AppStart/Helper/InstallmentDeductionService.cs

@@ -0,0 +1,126 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Threading;
+using MySystem.Models;
+using Library;
+
+namespace MySystem
+{
+    /// <summary>
+    /// 分期扣款(每月20号执行)
+    /// </summary>
+    public class InstallmentDeductionService
+    {
+        public readonly static InstallmentDeductionService Instance = new InstallmentDeductionService();
+        private InstallmentDeductionService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(doSomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void doSomething()
+        {
+            while (true)
+            {
+                if (DateTime.Now.Day == 20 && DateTime.Now.Hour > 2 && DateTime.Now.Hour < 19)
+                {
+                    try
+                    {
+                        string check = function.ReadInstance("/InstallmentDeduction/check" + DateTime.Now.ToString("yyyy-MM-20") + ".txt");
+                        if (string.IsNullOrEmpty(check))
+                        {
+                            function.WritePage("/InstallmentDeduction/", "check" + DateTime.Now.ToString("yyyy-MM-20") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
+                            WebCMSEntities db = new WebCMSEntities();
+                            var startdate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-20 00:00:00"));
+                            var enddate = startdate.AddDays(1);
+                            // var info = db.ToChargeBackRecordSub.Where(m => m.Status == 0 && m.StartDate >= startdate && m.StartDate < enddate).ToList();//分期扣款记录明细
+                            var info = db.ToChargeByStage.Where(m => m.Status == 0).ToList();//分期扣款记录
+                            foreach (var item in info)
+                            {
+                                var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Status == 0 && m.ParentId == item.Id && m.StartDate >= startdate && m.StartDate < enddate) ?? new ToChargeBackRecordSub();
+                                if (toChargeBackRecordSub.Id > 0)
+                                {
+                                    var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == item.UserId);
+                                    if (userAccount == null)
+                                    {
+                                        userAccount = db.UserAccount.Add(new UserAccount()
+                                        {
+                                            Id = item.UserId,
+                                            UserId = item.UserId,
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    toChargeBackRecordSub.Status = 2;
+                                    if (toChargeBackRecordSub.Kind == 0) userAccount.ToChargeAmount += toChargeBackRecordSub.ChargeAmount;//增加创客预扣款
+                                    if (toChargeBackRecordSub.Kind == 1) userAccount.LeaderToChargeAmount += toChargeBackRecordSub.ChargeAmount;//增加盟主预扣款
+                                    if (toChargeBackRecordSub.Kind == 2) userAccount.OperateToChargeAmount += toChargeBackRecordSub.ChargeAmount;//增加运营中心预扣款
+                                    var toChargeBackRecord = db.ToChargeBackRecord.Add(new ToChargeBackRecord
+                                    {
+                                        CreateDate = DateTime.Now,
+                                        Sort = toChargeBackRecordSub.Id,
+                                        UserId = item.UserId,
+                                        ChargeAmount = toChargeBackRecordSub.ChargeAmount,
+                                        ChargeType = 2,//分期预扣款
+                                        Remark = toChargeBackRecordSub.Remark,
+                                        Kind = toChargeBackRecordSub.Kind,
+
+                                    }).Entity;
+                                }
+
+                                // //只能存在一笔分期扣款记录(先前有的但是余额不够未扣除的则不添加新的)
+                                // var checks = db.ToChargeBackRecord.Any(m => m.Sort > 0 && (m.Status == 0 || m.Status == 3) && m.ChargeType == 2 && m.UserId == item.UserId);
+                                // if (!checks)
+                                // {
+                                //     string checkAdd = RedisDbconn.Instance.Get<string>("InstallmentDeductionAddRecord:" + item.UserId);
+                                //     if (string.IsNullOrEmpty(check))
+                                //     {
+                                //         var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Status == 0 && m.ParentId == item.Id && m.StartDate >= startdate && m.StartDate < enddate) ?? new ToChargeBackRecordSub();
+                                //         if (toChargeBackRecordSub.Id > 0)
+                                //         {
+                                //             var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == item.UserId);
+                                //             if (userAccount == null)
+                                //             {
+                                //                 userAccount = db.UserAccount.Add(new UserAccount()
+                                //                 {
+                                //                     Id = item.UserId,
+                                //                     UserId = item.UserId,
+                                //                 }).Entity;
+                                //                 db.SaveChanges();
+                                //             }
+                                //             userAccount.ToChargeAmount += toChargeBackRecordSub.ChargeAmount;//增加预扣款
+                                //             var toChargeBackRecord = db.ToChargeBackRecord.Add(new ToChargeBackRecord
+                                //             {
+                                //                 CreateDate = DateTime.Now,
+                                //                 Sort = toChargeBackRecordSub.Id,
+                                //                 UserId = item.UserId,
+                                //                 ChargeAmount = toChargeBackRecordSub.ChargeAmount,
+                                //                 ChargeType = 2,//分期预扣款
+                                //                 Remark = "分期预扣款",
+
+                                //             }).Entity;
+                                //         }
+                                //     }
+                                //     RedisDbconn.Instance.Set("InstallmentDeductionAddRecord:" + item.UserId, "wait");
+                                //     RedisDbconn.Instance.SetExpire("InstallmentDeductionAddRecord:" + item.UserId, 300);
+                                // }
+                            }
+                            db.SaveChanges();
+
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "执行分期扣费异常");
+                    }
+                }
+                Thread.Sleep(10000);
+            }
+        }
+    }
+}

+ 287 - 0
AppStart/Helper/TimeOutPosChargeService.cs

@@ -0,0 +1,287 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Threading;
+using MySystem.Models;
+using Library;
+
+namespace MySystem
+{
+    /// <summary>
+    /// 过期机具执行扣费
+    /// </summary>
+    public class TimeOutPosChargeService
+    {
+        public readonly static TimeOutPosChargeService Instance = new TimeOutPosChargeService();
+        private TimeOutPosChargeService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(doSomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void doSomething()
+        {
+            while (true)
+            {
+                if (DateTime.Now.Hour < 9)
+                {
+                    try
+                    {
+                        string check = function.ReadInstance("/TimeOutPosCharge/check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
+                        if (string.IsNullOrEmpty(check))
+                        {
+                            function.WritePage("/TimeOutPosCharge/", "check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
+                            WebCMSEntities db = new WebCMSEntities();
+                            var date = DateTime.Now.AddDays(-60).ToString("yyyy-MM-dd 00:00:00");//过期限制时间
+                            var time = DateTime.Parse(date);//过期限制时间
+
+                            DataTable dt = CustomerSqlConn.dtable("SELECT BuyUserId FROM PosMachinesTwo WHERE `Status`>-1 AND BuyUserId>0 AND BindingState=0 AND ActivationState=0 AND ScanQrTrade=0 AND RecycEndDate <'" + date + "' GROUP BY BuyUserId", MysqlConn.SqlConnStr);//扣费创客
+                            var query = db.PosMachinesTwo.Where(m => m.Status > -1 && m.BuyUserId > 0 && m.BindingState == 0 && m.ActivationState == 0 && m.ScanQrTrade == 0 && m.RecycEndDate < time).ToList();//循环过期超过15天机具
+                            var brandInfo = db.KqProducts.ToList();
+                            foreach (DataRow item in dt.Rows)
+                            {
+                                int BuyUserId = int.Parse(item["BuyUserId"].ToString());
+                                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == BuyUserId);
+                                if (userAccount == null)
+                                {
+                                    userAccount = db.UserAccount.Add(new UserAccount()
+                                    {
+                                        Id = BuyUserId,
+                                        UserId = BuyUserId,
+                                    }).Entity;
+                                    db.SaveChanges();
+                                }
+                                var posInfo = query.Where(m => m.BuyUserId == BuyUserId);
+                                var amount = 0;
+                                foreach (var pos in posInfo)
+                                {
+                                    var poss = db.PosMachinesTwo.FirstOrDefault(m => m.Id == pos.Id) ?? new PosMachinesTwo();
+                                    poss.ScanQrTrade = 999;
+                                    var Brand = brandInfo.FirstOrDefault(m => m.Id == pos.BrandId);
+                                    if (Brand.Name.Contains("电签"))
+                                    {
+                                        amount = 200;
+                                    }
+                                    if (Brand.Name.Contains("大POS"))
+                                    {
+                                        amount = 300;
+                                    }
+                                    userAccount.ToChargeAmount += amount;//增加预扣款
+                                    var toChargeBackRecord = db.ToChargeBackRecord.Add(new ToChargeBackRecord
+                                    {
+                                        CreateDate = DateTime.Now,
+                                        UserId = BuyUserId,
+                                        ChargeAmount = amount,
+                                        ChargeType = 124,//过期机具货款扣费
+                                        Remark = pos.PosSn,
+
+                                    }).Entity;
+                                }
+                            }
+                            db.SaveChanges();
+
+                            DoChargeAmount(db);
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "过期机具执行扣费异常");
+                    }
+                }
+                Thread.Sleep(1000);
+            }
+        }
+
+
+
+        public void StartDoChargeAmount()
+        {
+            Thread th = new Thread(StartDoChargeAmountReady);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void StartDoChargeAmountReady()
+        {
+            while (true)
+            {
+                WebCMSEntities db = new WebCMSEntities();
+                DoChargeAmount(db);
+                db.Dispose();
+                Thread.Sleep(600000);
+            }
+        }
+
+        public void ListenChargeAmount()
+        {
+            Thread th = new Thread(ListenChargeAmountReady);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void ListenChargeAmountReady()
+        {
+            while (true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("DoChargeAmountQueue");
+                if (!string.IsNullOrEmpty(content))
+                {
+                    WebCMSEntities db = new WebCMSEntities();
+                    DoChargeAmount(db, int.Parse(function.CheckInt(content)));
+                    db.Dispose();
+                }
+            }
+        }
+
+        public void DoChargeAmount(WebCMSEntities db, int UserId = 0)
+        {
+            IQueryable<ToChargeBackRecord> list = db.ToChargeBackRecord.Where(m => m.Status == 0);//过期机具扣费记录
+            if (UserId > 0)
+            {
+                list = list.Where(m => m.UserId == UserId);
+            }
+            var info = list.ToList();
+            foreach (var items in info)
+            {
+                function.WriteLog(DateTime.Now.ToString(), "扣款监听日志");
+                function.WriteLog(items.UserId.ToString(), "扣款监听日志");
+                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new UserAccount();
+                var record = info.FirstOrDefault(m => m.Id == items.Id);
+
+                function.WriteLog("BalanceAmount:" + userAccount.BalanceAmount + ";ChargeAmount:" + record.ChargeAmount + ";", "扣款监听日志");
+                function.WriteLog("in", "扣款监听日志");
+                var ChangeType = 0;
+                var Remark = "";
+                if (record.ChargeType == 124)//过期机具货款扣费
+                {
+                    ChangeType = 124;
+                    Remark = "扣机具货款";
+                }
+                if (record.ChargeType == 1)//普通预扣款
+                {
+                    ChangeType = 202;
+                    // Remark = "普通扣款";
+                    Remark = items.Remark;
+                }
+                if (record.ChargeType == 2)//分期预扣款
+                {
+                    ChangeType = 201;
+                    // Remark = "分期扣款";
+                    Remark = items.Remark;
+                }
+                if (record.Kind < 2) //主库
+                {
+                    if (userAccount.BalanceAmount >= record.ChargeAmount)
+                    {
+                        if (record.Kind == 0) //创客预扣款
+                        {
+                            var userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord
+                            {
+                                CreateDate = DateTime.Now,
+                                UserId = items.UserId,
+                                BeforeBalanceAmount = userAccount.BalanceAmount,
+                                AfterBalanceAmount = userAccount.BalanceAmount - record.ChargeAmount,
+                                ChangeAmount = record.ChargeAmount,
+                                ChangeType = ChangeType,
+                                Remark = Remark,
+
+                            }).Entity;
+
+                            function.WriteLog("ToChargeAmount:" + userAccount.ToChargeAmount + ";ChargeAmount:" + record.ChargeAmount + ";", "扣款监听日志");
+                            if (userAccount.ToChargeAmount >= record.ChargeAmount)
+                            {
+                                function.WriteLog("ok", "扣款监听日志");
+                                userAccount.ToChargeAmount -= record.ChargeAmount;//分期扣款
+                            }
+                            userAccount.BalanceAmount -= record.ChargeAmount;//扣减余额
+                        }
+                        if (record.Kind == 1) //盟主预扣款
+                        {
+                            //11:盟主储蓄金增减单(兑换机具券 机具券兑换 系统增加(盟主储蓄金) 系统扣减(盟主储蓄金) 储备金购买)
+                            // 示例:+/-金额
+                            // 	盟主储蓄金:剩余盟主储蓄金
+                            // 12:可提现余额增减单(系统增加(可提现余额) 系统扣减(可提现余额))
+                            // 示例:+/-金额
+                            // 	可提现余额:剩余可提现余额
+                            // 13:盟主储蓄金减少可提现余额增加(推荐大/小盟主 商城购机 购机奖励)
+                            // 示例:-金额
+                            // 	盟主储蓄金:剩余盟主储蓄金
+                            // 	可提现余额:+金额
+                            var leaderReserveRecord = db.LeaderReserveRecord.Add(new LeaderReserveRecord()
+                            {
+                                CreateDate = DateTime.Now, //创建时间
+                                Sort = 12,
+                                UserId = UserId, //创客
+                                Remark = "盟主预扣款",
+                                ChangeType = 2,//变动类型(1 增加 2 减少)
+                                BeforeAmt = userAccount.LeaderBalanceAmount,
+                                AfterAmt = userAccount.LeaderBalanceAmount - record.ChargeAmount,
+                                ChangeAmt = record.ChargeAmount,
+                                TradeDate = DateTime.Now.ToString("yyyyMMdd"),
+                                TradeMonth = DateTime.Now.ToString("yyyyMM"),
+                            }).Entity;
+
+                            function.WriteLog("LeaderToChargeAmount:" + userAccount.LeaderToChargeAmount + ";ChargeAmount:" + record.ChargeAmount + ";", "扣款监听日志");
+                            if (userAccount.LeaderToChargeAmount >= record.ChargeAmount)
+                            {
+                                function.WriteLog("ok", "扣款监听日志");
+                                userAccount.LeaderToChargeAmount -= record.ChargeAmount;//扣减盟主预扣款
+                            }
+                            userAccount.LeaderBalanceAmount -= record.ChargeAmount;//扣减盟主可提现余额
+                        }
+                    }
+                }
+                else //运营中心
+                {
+                    MySystem.OpModels.WebCMSEntities opdb = new MySystem.OpModels.WebCMSEntities();
+                    var opUserAccount = opdb.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new MySystem.OpModels.UserAccount();
+                    if (opUserAccount.ValidForGetAmount >= record.ChargeAmount)
+                    {
+                        if (record.Kind == 2) //运营中心预扣款
+                        {
+                            var amoutRecord = opdb.AmountRecord.Add(new MySystem.OpModels.AmountRecord
+                            {
+                                CreateDate = DateTime.Now,
+                                UserId = UserId,
+                                SeoDescription = "运营中心预扣款",
+                                UseAmount = record.ChargeAmount,
+                                OperateType = 2,
+                                BeforeAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount,
+                                AfterAmount = opUserAccount.ValidAmount + opUserAccount.TotalAmt + opUserAccount.ValidForGetAmount - record.ChargeAmount,
+                            }).Entity;
+
+                            function.WriteLog("OperateToChargeAmount:" + userAccount.OperateToChargeAmount + ";ChargeAmount:" + record.ChargeAmount + ";", "扣款监听日志");
+                            if (userAccount.OperateToChargeAmount >= record.ChargeAmount)
+                            {
+                                function.WriteLog("ok", "扣款监听日志");
+                                userAccount.OperateToChargeAmount -= record.ChargeAmount;//扣减运营中心预扣款
+                            }
+                            opUserAccount.ValidForGetAmount -= record.ChargeAmount;//扣减运营中心可提现余额
+                        }
+                    }
+                }
+                record.Status = 1;
+                if (record.ChargeType == 2)
+                {
+                    var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Id == record.Sort) ?? new ToChargeBackRecordSub();
+                    var toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == toChargeBackRecordSub.ParentId && m.TimeNumber > m.QueryCount) ?? new ToChargeByStage();
+                    toChargeBackRecordSub.Status = 1;
+                    toChargeByStage.QueryCount += 1;
+                    toChargeByStage.ChargeAmount += toChargeBackRecordSub.ChargeAmount;
+                    if (toChargeByStage.TimeNumber == toChargeByStage.QueryCount)
+                    {
+                        toChargeByStage.Status = 1;
+                    }
+                }
+                record.UpdateDate = DateTime.Now;
+                function.WriteLog("\n\n", "扣款监听日志");
+            }
+            db.SaveChanges();
+        }
+    }
+}

+ 26 - 2
AppStart/PublicChangePosFee.cs

@@ -73,6 +73,9 @@ namespace MySystem
                 decimal amount = decimal.Parse(DepositId);
                 pos.PrizeParams = amount.ToString("f0");
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }
@@ -121,6 +124,9 @@ namespace MySystem
                 decimal amount = decimal.Parse(PublicImportDataService.Instance.GetDepositAmount(DepositId));
                 pos.PrizeParams = amount.ToString("f0");
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }
@@ -198,6 +204,9 @@ namespace MySystem
                 }
                 pos.PrizeParams = amount.ToString("f0");
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }
@@ -253,6 +262,9 @@ namespace MySystem
                 }
                 pos.PrizeParams = DepositId;
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }
@@ -263,7 +275,7 @@ namespace MySystem
         #region 盛付通-设置押金
         public static string SetSFTDeposit(string SnIds,string DepositId)
         {
-            // string DepositId = "2021POS299";
+            // string DepositId = "2024POS299";
             string check = RedisDbconn.Instance.Get<string>("SetSFTPosDepositWait:" + SnIds);
             if (!string.IsNullOrEmpty(check))
             {
@@ -298,8 +310,11 @@ namespace MySystem
                 {
                     BeforeDeposit = int.Parse(pos.PrizeParams);
                 }
-                pos.PrizeParams = DepositId.Replace("2021POS", "");
+                pos.PrizeParams = DepositId.Replace("2024POS", "");
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }
@@ -378,6 +393,9 @@ namespace MySystem
                 pos.PrizeParams = amount.ToString("f0");
                 db.SaveChanges();
 
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
+
             }
             return "设置成功";
         }
@@ -426,6 +444,9 @@ namespace MySystem
                 decimal amount = decimal.Parse(DepositId);
                 pos.PrizeParams = amount.ToString("f0");
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }
@@ -478,6 +499,9 @@ namespace MySystem
                 decimal amount = decimal.Parse(DepositId);
                 pos.PrizeParams = amount.ToString("f0");
                 db.SaveChanges();
+
+                //设置押金添加记录
+                PublicFunction.MerchantDepositSet(pos.BrandId, 0, SnIdNum, pos.PosSn, BeforeDeposit, decimal.Parse(pos.PrizeParams), content);
             }
             return "设置成功";
         }

+ 48 - 20
AppStart/PublicFunction.cs

@@ -45,7 +45,7 @@ namespace MySystem
                                     result += rightString;
                                 }
                                 else
-                                { 
+                                {
                                     result += "{title: '基本权限', id: '" + sub3.Id + "_base'}";
                                 }
                                 result += "]},";
@@ -136,7 +136,7 @@ namespace MySystem
                                     result += rightString;
                                 }
                                 else
-                                { 
+                                {
                                     result += "{title: '基本权限', id: '" + sub3.Id + "_base'}";
                                 }
                                 result += "]},";
@@ -356,7 +356,7 @@ namespace MySystem
         private static double EARTH_RADIUS = 6378.137;
 
         #endregion
-    
+
         #region 短信条数
 
         public int SMSCount()
@@ -370,7 +370,7 @@ namespace MySystem
         #region 短信消耗
 
         public void UseSMS()
-        { 
+        {
             SystemSet check = db.SystemSet.FirstOrDefault();
             if (check != null)
             {
@@ -383,7 +383,7 @@ namespace MySystem
 
         #region 获取OSS开关
         public string GetOssStatus()
-        { 
+        {
             SystemSet set = db.SystemSet.FirstOrDefault() ?? new SystemSet();
             return set.UploadOss == 1 ? "-oss" : "";
         }
@@ -395,7 +395,7 @@ namespace MySystem
             string tag = function.MD5_16(buttonId);
             string param = RedisDbconn.Instance.Get<string>("btn:" + tag);
             if (!string.IsNullOrEmpty(param))
-            { 
+            {
                 return param;
             }
             SystemSet set = db.SystemSet.FirstOrDefault() ?? new SystemSet();
@@ -409,7 +409,7 @@ namespace MySystem
             string tag = function.MD5_16(buttonId);
             string param = RedisDbconn.Instance.Get<string>("btn:" + tag);
             if (string.IsNullOrEmpty(param))
-            { 
+            {
                 SystemSet set = db.SystemSet.FirstOrDefault() ?? new SystemSet();
                 param = "{width:" + set.UploadAutoZoomWidth + ",height:" + set.UploadAutoZoomHeight + ",quality:" + set.UploadAutoZoomQuality + "},{max_file_size:" + set.UploadMaxSize + "}";
             }
@@ -419,12 +419,12 @@ namespace MySystem
             int max_file_size = int.Parse(size["max_file_size"]) / 1024;
             string unit = "KB";
             if (max_file_size / 1024 > 0)
-            { 
+            {
                 max_file_size = max_file_size / 1024;
                 unit = "MB";
             }
             if (max_file_size / 1024 > 0)
-            { 
+            {
                 max_file_size = max_file_size / 1024;
                 unit = "GB";
             }
@@ -498,7 +498,7 @@ namespace MySystem
                 }
             }
             catch (Exception ex)
-            { 
+            {
                 function.WriteLog(DateTime.Now.ToString() + "\r\n" + ex.ToString(), "获取Excel文件内容异常");
             }
             return dtTable;
@@ -530,7 +530,7 @@ namespace MySystem
                     }).Entity;
                     db.SaveChanges();
                 }
-                if(Count < 0)
+                if (Count < 0)
                 {
                     MachineData.TotalMachineCount -= Math.Abs(Count);
                     MachineData.UnBindCount -= Math.Abs(Count);
@@ -551,24 +551,24 @@ namespace MySystem
         public static void ClearPosHistory(WebCMSEntities db, string PosSn)
         {
             PreSendStockDetail prepos = db.PreSendStockDetail.FirstOrDefault(m => m.SnNo == PosSn && m.Status == 1);
-            if(prepos != null)
+            if (prepos != null)
             {
                 prepos.Status = -1;
                 prepos.ApplyFlag = 0;
                 SmallStoreHouse sstore = db.SmallStoreHouse.FirstOrDefault(m => m.UserId == prepos.ToUserId);
-                if(sstore != null)
+                if (sstore != null)
                 {
                     sstore.LaveNum += 1;
                     sstore.TotalNum -= 1;
                 }
                 StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.UserId == prepos.FromStoreId);
-                if(store != null)
+                if (store != null)
                 {
                     store.LaveNum += 1;
                 }
             }
             MachineApply apply = db.MachineApply.FirstOrDefault(m => m.SwapSnExpand.Contains(PosSn));
-            if(apply != null)
+            if (apply != null)
             {
                 apply.SwapSnExpand = apply.SwapSnExpand.Replace(PosSn, PosSn.Substring(0, 3) + "d" + PosSn.Substring(4));
             }
@@ -594,13 +594,13 @@ namespace MySystem
         public static Dictionary<string, Dictionary<string, string>> OpTables = new Dictionary<string, Dictionary<string, string>>();//运营中心数据模型
 
         #endregion
-    
-    
+
+
         #region 发送分表数据
 
         public static void SplitTradeRecord(TradeRecord obj, string TradeMonth = "")
         {
-            if(string.IsNullOrEmpty(TradeMonth))
+            if (string.IsNullOrEmpty(TradeMonth))
             {
                 TradeMonth = DateTime.Now.ToString("yyyyMM");
             }
@@ -609,7 +609,7 @@ namespace MySystem
 
         public static void SplitUserAccountRecord(UserAccountRecord obj, string TradeMonth = "")
         {
-            if(string.IsNullOrEmpty(TradeMonth))
+            if (string.IsNullOrEmpty(TradeMonth))
             {
                 TradeMonth = DateTime.Now.ToString("yyyyMM");
             }
@@ -617,6 +617,34 @@ namespace MySystem
         }
 
         #endregion
-    
+
+
+        #region 设置押金添加记录公共方法
+        public static void MerchantDepositSet(int BrandId, int UserId, int SnId, string SnNo, int BeforeDeposit, decimal DepositAmount, string ReturnNote)
+        {
+            try
+            {
+                WebCMSEntities maindb = new WebCMSEntities();
+                MerchantDepositSet query = maindb.MerchantDepositSet.Add(new MerchantDepositSet()
+                {
+                    CreateDate = DateTime.Now, //创建时间
+                    Sort = BrandId,//品牌
+                    SeoTitle = BeforeDeposit.ToString(),//变更前押金
+                    DepositAmount = DepositAmount,//押金
+                    ReturnNote = ReturnNote,//返回信息
+                    SnNo = SnNo,//机具Sn
+                    UserId = UserId,//创客Id
+                }).Entity;
+                maindb.SaveChanges();
+
+            }
+            catch (Exception ex)
+            {
+
+                function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":" + ex.ToString(), "设置押金队列异常");
+            }
+        }
+        #endregion
+
     }
 }

+ 8 - 0
AppStart/Redis/RedisDbconn.cs

@@ -143,6 +143,14 @@ namespace MySystem
         }
         #endregion
 
+        #region 删除列表对象
+        public long DelFromList(string key, object value)
+        {
+            return csredis.LRem(key, 0, value);
+            // return false;
+        }
+        #endregion
+
         #region 获取列表
         public List<T> GetList<T>(string key, int pageNum = 1, int pageSize = 10)
         {

+ 1 - 1
Areas/Admin/Controllers/BsServer/AdvertismentController.cs

@@ -332,4 +332,4 @@ namespace MySystem.Areas.Admin.Controllers
 
         #endregion
     }
-}
+}

+ 37 - 0
Areas/Admin/Controllers/HomeController.cs

@@ -343,5 +343,42 @@ namespace MySystem.Areas.Admin.Controllers
             OtherMySqlConn.connstr = "";
             return "ok";
         }
+
+
+        #region 通过用户Id修改登录密码
+        /// <summary>
+        /// 通过用户Id修改登录密码
+        /// </summary>
+        /// <returns></returns>
+        public AppResultJson ChangeLoginPassworByIdDo(string value)
+        {
+            JsonData data = JsonMapper.ToObject(value);
+            string SysId = data["SysId"].ToString();
+            string NewPassword = data["NewPassword"].ToString();
+            string Operator = data["Operator"].ToString();
+            if (string.IsNullOrEmpty(SysId))
+            {
+                return new AppResultJson() { Status = "-1", Info = "请输入旧密码" };
+            }
+            if (string.IsNullOrEmpty(NewPassword))
+            {
+                return new AppResultJson() { Status = "-1", Info = "请输入新密码" };
+            }
+            if (string.IsNullOrEmpty(Operator))
+            {
+                return new AppResultJson() { Status = "-1", Info = "请输入操作人信息" };
+            }
+            var Id = int.Parse(SysId);
+            BsModels.SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.Id == Id);
+            if (sys != null)
+            {
+                sys.Password = function.MD5_32(NewPassword);
+                sys.UpdateMan = Operator;
+                db.SaveChanges();
+                return new AppResultJson() { Status = "1", Info = "成功,新密码为:" + NewPassword };
+            }
+            return new AppResultJson() { Status = "-1", Info = "修改失败,未找到相关账号信息" };
+        }
+        #endregion
     }
 }

+ 118 - 0
Areas/Admin/Controllers/MainServer/OrdersController.cs

@@ -1323,6 +1323,124 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
 
+        #region 快捷导出Excel
+        public IActionResult QuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string QuickExportExcelDo(string OrderNo, string UserIdMakerCode, string UserIdRealName, string PayModeSelect, string StoreIdStoreNo, string StoreIdStoreName, string RefundStatusSelect, string DeliveryTypeSelect, string SendStatusSelect, string ProductIdSelect, string StoreTypeSelect, string StoreUserIdMakerCode, string StoreUserIdRealName, string PayStatusSelect, string CreateDateData, string SendDateData, string PayDateData)
+        {
+
+            string SqlString = " where 1=1 and a.Status>=-1 and a.Sort=0";
+            //订单号
+            if (!string.IsNullOrEmpty(OrderNo))
+            {
+                SqlString += " and a.OrderNo='" + OrderNo + "'";
+            }
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                SqlString += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //创客真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                SqlString += " and a.UserId in (select UserId from UserForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //支付方式
+            if (!string.IsNullOrEmpty(PayModeSelect))
+            {
+                SqlString += " and a.PayMode=" + PayModeSelect;
+            }
+            //仓库编号
+            if (!string.IsNullOrEmpty(StoreIdStoreNo))
+            {
+                SqlString += " and a.StoreId in (select StoreId from StoreForCode where StoreNo='" + StoreIdStoreNo + "')";
+            }
+            //仓库名称
+            if (!string.IsNullOrEmpty(StoreIdStoreName))
+            {
+                SqlString += " and a.StoreId in (select Id from StoreHouse where StoreName='" + StoreIdStoreName + "')";
+            }
+            //退款状态
+            if (!string.IsNullOrEmpty(RefundStatusSelect))
+            {
+                SqlString += " and a.RefundStatus=" + RefundStatusSelect;
+            }
+            //提货类型
+            if (!string.IsNullOrEmpty(DeliveryTypeSelect))
+            {
+                SqlString += " and a.DeliveryType=" + DeliveryTypeSelect;
+            }
+            //发货状态
+            if (!string.IsNullOrEmpty(SendStatusSelect))
+            {
+                SqlString += " and a.SendStatus=" + SendStatusSelect;
+            }
+            //商品名称
+            if (!string.IsNullOrEmpty(ProductIdSelect))
+            {
+                // SqlString += " and a.ProductId=" + ProductIdSelect;
+                SqlString += " and a.Id in (select OrderId from OrderProduct where ProductId=" + ProductIdSelect + ")";
+            }
+            //仓库类型
+            if (!string.IsNullOrEmpty(StoreTypeSelect))
+            {
+                SqlString += " and a.StoreType=" + StoreTypeSelect;
+            }
+            //仓库归属创客编号
+            if (!string.IsNullOrEmpty(StoreUserIdMakerCode))
+            {
+                SqlString += " and a.StoreUserId in (select StoreUserId from UserForMakerCode where MakerCode='" + StoreUserIdMakerCode + "')";
+            }
+            //仓库归属创客真实姓名
+            if (!string.IsNullOrEmpty(StoreUserIdRealName))
+            {
+                SqlString += " and a.StoreUserId in (select StoreUserId from UserForRealName where RealName='" + StoreUserIdRealName + "')";
+            }
+            //支付状态
+            if (!string.IsNullOrEmpty(PayStatusSelect))
+            {
+                SqlString += " and a.PayStatus=" + PayStatusSelect;
+            }
+            //支付时间
+            if (!string.IsNullOrEmpty(PayDateData))
+            {
+                string[] datelist = PayDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                SqlString += " and a.PayDate>='" + start + " 00:00:00' and a.PayDate<='" + end + " 23:59:59'";
+            }
+            //下单时间
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                SqlString += " and a.CreateDate>='" + start + " 00:00:00' and a.CreateDate<='" + end + " 23:59:59'";
+            }
+            //发货时间
+            if (!string.IsNullOrEmpty(SendDateData))
+            {
+                string[] datelist = SendDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                SqlString += " and a.SendDate>='" + start + " 00:00:00' and a.SendDate<='" + end + " 23:59:59'";
+            }
+            var Sql = "SELECT b.MakerCode '创客编号',b.RealName '创客真实姓名',a.OrderNo '订单号',a.Mobile '手机号',a.RealName '姓名',a.TotalPrice '总价',a.Areas '所在地区',a.Address '详细地址',a.ErpName '物流名称',a.ErpCode '运单号',DATE_FORMAT(a.SendDate,'%Y-%m-%d %H:%i:%s') '发货时间',(CASE WHEN a.PayMode=1 THEN '支付宝' WHEN a.PayMode=2 THEN '微信' WHEN a.PayMode=3 THEN '账户余额' ELSE '' end) '支付方式',DATE_FORMAT(a.PayDate,'%Y-%m-%d %H:%i:%s') '支付时间',a.TradeNo '支付交易号',c.StoreNo '仓库编号',c.StoreName '仓库名称',(CASE WHEN a.RefundStatus=0 THEN '未退款' WHEN a.RefundStatus=1 THEN '已退款' end) '退款状态',(CASE WHEN a.DeliveryType=1 THEN '邮寄到付' WHEN a.DeliveryType=2 THEN '上门自提' ELSE '' end) '提货类型',(CASE WHEN a.SendStatus=0 THEN '未发货' WHEN a.SendStatus=1 THEN '已发货' WHEN a.SendStatus=2 THEN '已退货' ELSE '' end) '发货状态',d.ProductName '商品名称',a.BuyCount '下单数量',d.TotalPrice '商品单价',d.NormDetail '商品规格',a.StoreContact '仓库联系人',(CASE WHEN a.StoreType=0 THEN '总仓' WHEN a.StoreType=1 THEN '分仓' ELSE '' end) '仓库类型',e.MakerCode '仓库归属创客编号',e.RealName '仓库归属创客姓名',(CASE WHEN a.PayStatus=0 THEN '未支付' WHEN a.PayStatus=1 THEN '支付成功' WHEN a.PayStatus=2 THEN '支付失败' WHEN a.PayStatus=3 THEN '支付锁定中' WHEN a.PayStatus=4 THEN '支付处理中' ELSE '' end) '支付状态',a.Remark '订单备注' FROM Orders a LEFT JOIN Users b ON a.UserId=b.Id LEFT JOIN StoreHouse c ON a.StoreId=c.Id LEFT JOIN OrderProduct d ON a.Id=d.OrderId LEFT JOIN Users e ON a.StoreUserId=e.Id" + SqlString + "";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "商城订单记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            return "success";
+        }
+        #endregion
+
+
         #region 查询直推奖励100
 
         public Dictionary<string, string> Prize100(int Id)

+ 61 - 0
Areas/Admin/Controllers/MainServer/PreAmountRecordController.cs

@@ -319,6 +319,67 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
 
+        #region 快捷导出Excel
+        public IActionResult QuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string QuickExportExcelDo(string UserIdRealName, string UserIdMakerCode, string CreateDateData, string StatusSelect)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            string condition = " where 1=1 and a.PayMode=1 and a.Sort=3";
+            //创客真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and a.UserId in (select UserId from Users where RealName='" + UserIdRealName + "')";
+            }
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and a.CreateDate>='" + start + " 00:00:00' and a.CreateDate<='" + end + " 23:59:59'";
+            }
+            //状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and a.Status=" + StatusSelect;
+            }
+
+            var Ids = "";
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("PreAmountRecord", Fields, "Id desc", "0", 1, 20000000, condition, "", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //记录Id
+                int Id = int.Parse(function.CheckInt(dic["Id"].ToString()));
+                Ids += Id + ",";
+            }
+            Ids = Ids.TrimEnd(',');
+
+            var Sql = "SELECT a.Id '记录ID',DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%s') '提现申请时间',(CASE WHEN a.Status=0 THEN '待处理' WHEN a.Status=2 THEN '处理中' WHEN a.Status=1 THEN '成功' WHEN a.Status=-1 THEN '失败' ELSE '' end) '提现结果',b.RealName '创客真实姓名',b.MakerCode '创客编号',a.UseAmount '申请提现临额',b.CertId '身份证号',b.SettleBankCardNo '银行卡号',b.SettleBankName '银行名称',b.Mobile '手机号',(CASE WHEN a.AmountType=1 THEN '临额提现' ELSE '' end) '交易类型' FROM PreAmountRecord a LEFT JOIN Users b ON a.UserId=b.Id" + condition + "";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "小分仓临额提现提现记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            OtherMySqlConn.op("UPDATE PreAmountRecord SET `Status`=2 WHERE Id IN(" + Ids + ") AND `Status`=0");
+            AddSysLog(Ids, "PreAmountRecord", "ExportExcel");
+            return "success";
+        }
+        #endregion
+
+
 
         #region 小分仓银行卡临额提现记录结果导入Excel
         /// <summary>

+ 159 - 0
Areas/Admin/Controllers/MainServer/PreSendStockDetailController.cs

@@ -192,6 +192,10 @@ namespace MySystem.Areas.Admin.Controllers
                 int AuthFlag = int.Parse(function.CheckInt(dic["AuthFlag"].ToString()));
                 if (AuthFlag == 0) dic["PayMode"] = "否";
                 if (AuthFlag == 1) dic["PayMode"] = "是";
+                //是否预扣标记
+                int WithholdFlag = int.Parse(function.CheckInt(dic["WithholdFlag"].ToString()));
+                if (WithholdFlag == 0) dic["WithholdFlagName"] = "否";
+                if (WithholdFlag == 1) dic["WithholdFlagName"] = "是";
 
             }
             return Json(obj);
@@ -585,6 +589,161 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
 
+        #region 预发机撤回
+
+        /// <summary>
+        /// 预发机撤回
+        /// </summary>
+        /// <returns></returns>
+        public string Cancle(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PreSendStockDetail", "cancle");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", -1);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("PreSendStockDetail", Fields, id);
+
+                string check = RedisDbconn.Instance.Get<string>("HTSmallStoreCancel:" + id);
+                if (!string.IsNullOrEmpty(check))
+                {
+                    return "请勿频繁操作,稍后再试";
+                }
+                RedisDbconn.Instance.Set("HTSmallStoreCancel:" + id, "wait");
+                RedisDbconn.Instance.SetExpire("HTSmallStoreCancel:" + id, 3);
+                var query = db.PreSendStockDetail.FirstOrDefault(m => m.Id == id);
+                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == query.FromUserId) ?? new UserAccount();
+                var tuserAccount = db.UserAccount.FirstOrDefault(m => m.Id == query.ToUserId) ?? new UserAccount();
+                KqProducts kqProducts = db.KqProducts.FirstOrDefault(m => m.Id == query.BrandId);
+                var date = DateTime.Now.AddDays(-30);
+                var amount = 0;
+                if (query != null)
+                {
+                    PosMachinesTwo posMachinesTwo = db.PosMachinesTwo.FirstOrDefault(m => m.Id == query.SnId) ?? new PosMachinesTwo();
+                    StoreHouse storeHouse = db.StoreHouse.FirstOrDefault(m => m.Id == query.FromStoreId) ?? new StoreHouse();
+                    PosMachinesTwo pm = db.PosMachinesTwo.FirstOrDefault(m => m.Id == query.SnId);
+                    var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == posMachinesTwo.BrandId);
+                    if (brandInfo.Name.Contains("电签"))
+                    {
+                        amount = 200;
+                    }
+                    if (brandInfo.Name.Contains("大POS"))
+                    {
+                        amount = 300;
+                    }
+                    if (pm != null)
+                    {
+                        // if (pm.BindingState == 1)
+                        // {
+                        //     return "机具已绑定,不可撤回!请创客申请机具后补录!";
+                        // }
+                        SmallStoreHouse smallStoreHouse = db.SmallStoreHouse.FirstOrDefault(m => m.UserId == query.ToUserId);
+                        posMachinesTwo.PreUserId = 0;
+                        query.UpdateDate = DateTime.Now;
+                        query.Status = -1;
+                        query.CancelFlag = 1;
+                        storeHouse.LaveNum += 1;
+                        smallStoreHouse.UpdateDate = DateTime.Now;
+                        smallStoreHouse.LaveNum += 1;
+                        smallStoreHouse.TotalNum -= 1;
+                        if (query.CreateDate <= date)
+                        {
+                            //撤回占用小分仓额度的增加接收创客的小分仓可用额度
+                            if (query.AuthFlag == 1 && tuserAccount.SmallStoreDeposit >= amount)
+                            {
+                                userAccount.ValidAmount -= amount;//扣减分仓可用额度
+                                tuserAccount.SmallStoreDeposit -= amount;
+                                tuserAccount.ValidPreAmount += amount;//增加小分仓可用额度
+                                var add = db.UserAccountRecord.Add(new UserAccountRecord()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    Remark = "小分仓押金退还",
+                                    ChangeType = 66,
+                                    BeforeBalanceAmount = tuserAccount.SmallStoreDeposit + amount, //变更前小分仓押金
+                                    AfterBalanceAmount = tuserAccount.SmallStoreDeposit, //变更后小分仓押金
+                                    ChangeAmount = amount,//变动金额
+                                    UserId = tuserAccount.Id,
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                        }
+                        else
+                        {
+                            //撤回占用小分仓额度的增加接收创客的小分仓可用额度
+                            if (query.AuthFlag == 1)
+                            {
+                                tuserAccount.ValidPreAmount += amount;//增加小分仓可用额度
+                                userAccount.ValidAmount -= amount;//扣减分仓可用额度
+                            }
+                        }
+                        
+                        RedisDbconn.Instance.AddList("PreWithholdQueue", "{\"UserId\":\"" + query.ToUserId + "\",\"SnNo\":\"" + query.SnNo + "\"}");
+
+                        string text = string.Format("创客-首页-仓库管理-小分仓-撤回,UserId: '" + query.FromUserId + "',ToUserId: '" + smallStoreHouse.UserId + "',LaveNum:'" + smallStoreHouse.LaveNum + "',TotalNum:'" + smallStoreHouse.TotalNum + "',ChangeCount:'" + 1 + "',Time'" + DateTime.Now + "'");
+                        function.WriteLog(text, "smallstorehouse");//小分仓记录日志
+                        if (smallStoreHouse.LaveNum > 10 || smallStoreHouse.TotalNum < 0)
+                        {
+                            return "*库存已重置,不可撤回!";
+                        }
+                        db.SaveChanges();
+                        RedisDbconn.Instance.AddList("MsgPersonalQueue", Newtonsoft.Json.JsonConvert.SerializeObject(new MsgPersonal()
+                        {
+                            UserId = query.ToUserId, //收货创客
+                            Title = "预发机撤回通知", //标题
+                            Content = "<div class='f16'>您的预发机 SN:<br/>" + query.SnNo + "<br/>已被" + storeHouse.StoreName + " 撤回!</div>", //内容
+                            Summary = "您的预发机: " + kqProducts.Name + "  sn:" + query.SnNo + "已被 " + storeHouse.StoreName + " 撤回!",
+                            CreateDate = DateTime.Now,
+
+                        }));
+
+                        var toUser = db.Users.FirstOrDefault(m => m.Id == query.ToUserId);
+                        RedisDbconn.Instance.AddList("MsgPersonalQueue", Newtonsoft.Json.JsonConvert.SerializeObject(new MsgPersonal()
+                        {
+                            UserId = query.FromUserId, //收货创客
+                            Title = "预发机撤回通知", //标题
+                            Content = "<div class='f16'>已撤回创客:" + toUser.MakerCode + " " + toUser.RealName + " 的预发机 SN:<br/>" + query.SnNo + "</div>", //内容
+                            Summary = "已撤回创客:" + toUser.MakerCode + " " + toUser.RealName + " 的预发机 SN:" + query.SnNo + "",
+                            CreateDate = DateTime.Now,
+
+                        }));
+
+                        //删除预发机过期提醒
+                        List<Dictionary<string, string>> result = RedisDbconn.Instance.GetList<Dictionary<string, string>>("PrePosRing:" + DateTime.Now.ToString("yyyyMMdd") + ":" + query.ToUserId);
+                        if (result.Count > 0)
+                        {
+                            foreach (Dictionary<string, string> item in result)
+                            {
+                                if (item["SnNo"] == pm.PosSn)
+                                {
+                                    RedisDbconn.Instance.DelFromList("PrePosRing:" + DateTime.Now.ToString("yyyyMMdd") + ":" + query.ToUserId, item);
+                                }
+                            }
+                        }
+                        result = RedisDbconn.Instance.GetList<Dictionary<string, string>>("PrePosRingForExpired:" + DateTime.Now.ToString("yyyyMMdd") + ":" + query.ToUserId);
+                        if (result.Count > 0)
+                        {
+                            foreach (Dictionary<string, string> item in result)
+                            {
+                                if (item["SnNo"] == pm.PosSn)
+                                {
+                                    RedisDbconn.Instance.DelFromList("PrePosRingForExpired:" + DateTime.Now.ToString("yyyyMMdd") + ":" + query.ToUserId, item);
+                                }
+                            }
+                        }
+                    }
+                }
+                RedisDbconn.Instance.SetExpire("HTSmallStoreCancel:" + id, 1);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+
         #region 预发货库存明细列表(占额度超过30天未兑换)
 
         /// <summary>

+ 53 - 0
Areas/Admin/Controllers/MainServer/StoreBalanceController.cs

@@ -430,5 +430,58 @@ namespace MySystem.Areas.Admin.Controllers
 
         #endregion
 
+
+
+        #region 快捷导出Excel
+        public IActionResult QuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string QuickExportExcelDo(string StoreIdStoreNo, string StoreIdStoreName, string TransTypeSelect, string CreateDateData, string BrandIdSelect, string TransRecordNo)
+        {
+
+            string condition = " WhERE 1=1 and a.Status>-1";
+            //仓库编号
+            if (!string.IsNullOrEmpty(StoreIdStoreNo))
+            {
+                condition += " and a.StoreId in (select StoreId from StoreForCode where Code='" + StoreIdStoreNo + "')";
+            }
+            //仓库名称
+            if (!string.IsNullOrEmpty(StoreIdStoreName))
+            {
+                condition += " and a.StoreId in (select StoreId from StoreForStoreName where Name='" + StoreIdStoreName + "')";
+            }
+            //操作时间
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and a.CreateDate>='" + start + " 00:00:00' and a.CreateDate<='" + end + " 23:59:59'";
+            }
+            //交易类型
+            if (!string.IsNullOrEmpty(TransTypeSelect))
+            {
+                condition += " and a.TransType=" + TransTypeSelect;
+            }
+            //产品类型
+            if (!string.IsNullOrEmpty(BrandIdSelect))
+            {
+                condition += " and a.BrandId=" + BrandIdSelect;
+            }
+            var Sql = "SELECT b.StoreNo '仓库编号',b.StoreName '仓库名称',a.TransRecordNo '交易流水编号',(CASE WHEN a.TransType=0 THEN '入库' WHEN a.TransType=1 THEN '调拨' WHEN a.TransType=2 THEN '出货' ELSE '' end) '交易类型',c.`Name` '产品类型',a.OpStoreNum '操作库存数',a.OpSymbol '操作符',a.BeforeTotalNum '操作前总库存数',a.AfterTotalNum '操作后总库存数',a.BeforeLaveNum '操作前剩余库存数',a.AfterLaveNum '操作后剩余库存数',a.BeforeOutNum '操作前出库数',a.AfterOutNum '操作后出库数' FROM StoreBalance a LEFT JOIN StoreHouse b ON a.StoreId=b.Id LEFT JOIN KqProducts c ON a.BrandId=c.Id" + condition + "";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "仓库库存变动记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            return "success";
+        }
+        #endregion
+
     }
 }

+ 62 - 0
Areas/Admin/Controllers/MainServer/StoreHouseAmountRecordController.cs

@@ -641,6 +641,68 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
 
+
+         #region 快捷导出Excel
+        public IActionResult QuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string QuickExportExcelDo(string UserIdRealName, string UserIdMakerCode, string CreateDateData, string StatusSelect)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            string condition = " where 1=1 and a.PayMode=1 and a.Sort=3";
+            //创客真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and a.UserId in (select UserId from Users where RealName='" + UserIdRealName + "')";
+            }
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and a.CreateDate>='" + start + " 00:00:00' and a.CreateDate<='" + end + " 23:59:59'";
+            }
+            //状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and a.Status=" + StatusSelect;
+            }
+
+            var Ids = "";
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("StoreHouseAmountRecord", Fields, "Id desc", "0", 1, 20000000, condition, "", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //记录Id
+                int Id = int.Parse(function.CheckInt(dic["Id"].ToString()));
+                Ids += Id + ",";
+            }
+            Ids = Ids.TrimEnd(',');
+
+            var Sql = "SELECT a.Id '记录ID',DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%s') '提现申请时间',(CASE WHEN a.Status=0 THEN '待处理' WHEN a.Status=2 THEN '处理中' WHEN a.Status=1 THEN '成功' WHEN a.Status=-1 THEN '失败' ELSE '' end) '提现结果',b.RealName '创客真实姓名',b.MakerCode '创客编号',a.UseAmount '申请提现临额',b.CertId '身份证号',b.SettleBankCardNo '银行卡号',b.SettleBankName '银行名称',b.Mobile '手机号',(CASE WHEN a.AmountType=1 THEN '临额提现' ELSE '' end) '交易类型' FROM StoreHouseAmountRecord a LEFT JOIN Users b ON a.UserId=b.Id" + condition + "";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "分仓临额提现记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            OtherMySqlConn.op("UPDATE StoreHouseAmountRecord SET `Status`=2 WHERE Id IN(" + Ids + ") AND `Status`=0");
+            AddSysLog(Ids, "StoreHouseAmountRecord", "QuickExportExcel");
+            return "success";
+        }
+        #endregion
+
+
         #region 
 
         /// <summary>

+ 46 - 16
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -209,7 +209,7 @@ namespace MySystem.Areas.Admin.Controllers
                 if (pos.BindingTime != null && pos.ActivationTime != null)
                 {
                     TimeSpan ts = pos.ActivationTime.Value - pos.BindingTime.Value;
-                    if (ts.TotalDays <= 30 || SysUserName == "admin")
+                    if (ts.TotalDays <= 30 || SysUserName == "admin" || pos.BrandId == 6)
                     {
                         AddAct(pos.Id);
                     }
@@ -229,7 +229,7 @@ namespace MySystem.Areas.Admin.Controllers
                 if (pos.BindingTime != null && pos.ActivationTime != null)
                 {
                     TimeSpan ts = pos.ActivationTime.Value - pos.BindingTime.Value;
-                    if (ts.TotalDays > 30 && SysUserName != "admin")
+                    if (ts.TotalDays > 30 && SysUserName != "admin" && pos.BrandId != 6)
                     {
                         return "机具划拨后已超过30天";
                     }
@@ -943,9 +943,15 @@ namespace MySystem.Areas.Admin.Controllers
                         {
                             prizes.Add(50);
                         }
+                        //9月1日-9月30日立刷机具刷5000激活时额外奖励30元立刷活动奖
+                        if (pos.BrandId == 6 && pos.CreditTrade >= 5000M && pos.ActivationTime >= DateTime.Parse("2023-08-31 00:00:00") && pos.ActivationTime < DateTime.Parse("2023-10-01 00:00:00"))
+                        {
+                            prizes.Add(30);
+                        }
                         foreach (decimal prize in prizes)
                         {
                             int ChangeType = prize == 40 ? 12 : 0;
+                            if (prize == 30) ChangeType = 133;
                             bool check = db.ActiveReward.Any(m => m.KqSnNo == pos.PosSn && m.RewardAmount == prize);
                             if (!check)
                             {
@@ -5541,16 +5547,8 @@ namespace MySystem.Areas.Admin.Controllers
             for (int a = 0; a < SnNo.Length; a++)
             {
                 string start = SnNo[a];
-                for (int i = 0; i <= 9999; i++)
-                {
-                    string num = i.ToString();
-                    for (int j = 0; j < 4 - i.ToString().Length; j++)
-                    {
-                        num = "0" + num;
-                    }
-                    sn = dbconn.Encrypt3DES(start + num + function.get_Random(8), "l2k0b2#3");
-                    sn = sn.Substring(0, sn.Length - 1);
-                }
+                sn = dbconn.Encrypt3DES(start + function.get_Random(8), "l2k0b2#3");
+                sn = sn.Substring(0, sn.Length - 1);
                 code += System.Web.HttpUtility.UrlEncode(sn) + "<br />\n";
             }
             return "success" + "|" + code;
@@ -5559,7 +5557,6 @@ namespace MySystem.Areas.Admin.Controllers
 
 
         #region 码牌解密
-
         public IActionResult QrCodeDescryption(string right)
         {
             ViewBag.RightInfo = RightInfo;
@@ -5567,7 +5564,6 @@ namespace MySystem.Areas.Admin.Controllers
 
             return View();
         }
-
         [HttpPost]
         public string QrCodeDescryptionDo(string SnNos)
         {
@@ -5594,6 +5590,34 @@ namespace MySystem.Areas.Admin.Controllers
         }
         #endregion
 
+        #region 查询指定创客下四级信息
+
+        public IActionResult SeeUserLevel4Info(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+        public string SeeUserLevel4InfoDo(string MakerCode, string MakerCodes)
+        {
+            var user = db.Users.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new Users();
+            string[] SnNo = MakerCodes.Replace("\r", "").Replace("\n", ",").Split(',');
+            string code = "";
+            for (int i = 0; i < SnNo.Length; i++)
+            {
+                code += "'" + SnNo[i] + "',";
+            }
+            code = code.TrimEnd(',');
+            var Sql = "SELECT a.MakerCode '查询创客编号',a.RealName '查询创客姓名',b.MakerCode '输入顶级创客编号',b.RealName '输入顶级创客姓名',c.MakerCode '次顶级创客编号',c.RealName '次顶级创客姓名',d.MakerCode '次次顶级创客编号',d.RealName '次次顶级创客姓名',e.MakerCode '次次次顶级创客编号',e.RealName '次次次顶级创客姓名',f.MakerCode '次次次次顶级创客编号',f.RealName '次次次次顶级创客姓名'  FROM(SELECT MakerCode,RealName,ParentNav,SUBSTRING_INDEX(SUBSTRING_INDEX(ParentNav,',',8),',',-1) TopId,SUBSTRING_INDEX(SUBSTRING_INDEX(ParentNav,',',10),',',-1) TopId1 ,SUBSTRING_INDEX(SUBSTRING_INDEX(ParentNav,',',12),',',-1) TopId2 ,SUBSTRING_INDEX(SUBSTRING_INDEX(ParentNav,',',14),',',-1) TopId3 ,SUBSTRING_INDEX(SUBSTRING_INDEX(ParentNav,',',16),',',-1) TopId4  FROM Users WHERE MakerCode IN(" + code + ") AND ParentNav like '%," + user.Id + ",%')a LEFT JOIN Users b ON a.TopId = b.Id LEFT JOIN Users c ON a.TopId1 = c.Id LEFT JOIN Users d ON a.TopId2 = d.Id LEFT JOIN Users e ON a.TopId3 = e.Id LEFT JOIN Users f ON a.TopId4 = f.Id";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "查询指定创客下四级信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            return "success";
+        }
+        #endregion
+
 
         #region 直营团队数据
 
@@ -5652,16 +5676,22 @@ namespace MySystem.Areas.Admin.Controllers
                 condition += " and tb.BrandId=" + BrandId;
             }
 
-            DataTable dt = CustomerSqlConn.dtable("select wname,k.`Name`,PosSnType,PosSn,(CASE WHEN tb.SeoKeyword IS NULL AND tb.PrizeParams=0 THEN 0 ELSE tb.SeoKeyword END) SeoKeyword,TransferTime,BindingTime,ActivationTime,PrizeParams from (select (select Name from BusinessPartner where Id=(select PartnerId from BusinessPartnerPos where PosId=pos.Id and `Status`>-1 limit 1)) wname,BrandId,PosSnType,PosSn,(CASE WHEN BrandId not in(2,7,10,11) THEN ROUND(CAST(SeoKeyword AS DECIMAL)/100, 2) ELSE SeoKeyword end) SeoKeyword,TransferTime,BindingTime,ActivationTime,PrizeParams from PosMachinesTwo pos where BindingState=1 and `Status`>=-1 and BuyUserId=" + UserId + "  and Id in (select PosId from BusinessPartnerPos)) tb left join KqProducts k on tb.BrandId=k.Id" + condition, conn);
+            DataTable dt = CustomerSqlConn.dtable("SELECT wname,k.`Name`,PosSn, merchantname,(CASE WHEN tb.SeoKeyword IS NULL AND tb.PrizeParams=0 THEN 0 ELSE tb.SeoKeyword END) SeoKeyword,DATE_FORMAT(BindingTime,'%Y-%m-%d %H:%i:%s') BindingTime,DATE_FORMAT(ActivationTime,'%Y-%m-%d %H:%i:%s') ActivationTime,amount,maxdate, CreditRewardAmount, opdate, info from (select (select MerchantName from PosMerchantInfo where Id=pos.BindMerchantId limit 1) merchantname,(select SUM(RewardAmount) from ActiveReward where KqSnNo=pos.PosSn limit 1) amount,(select MAX(CreateDate) from ActiveReward where KqSnNo=pos.PosSn limit 1) maxdate,(SELECT CreditRewardAmount FROM OpenRewardDetail WHERE SnNo=pos.PosSn AND CreditRewardAmount=20 limit 1) CreditRewardAmount,(select CreateDate FROM OpenRewardDetail WHERE SnNo=pos.PosSn AND CreditRewardAmount=20 limit 1) opdate,(select CONCAT(MakerCode,'_',RealName ) from Users where Id=(SELECT UserId FROM OpenRewardDetail WHERE SnNo=pos.PosSn AND CreditRewardAmount=20 limit 1)) info,(select Name from BusinessPartner where Id=(select PartnerId from BusinessPartnerPos where PosId=pos.Id and `Status`>-1 limit 1)) wname,BrandId,PosSnType,PosSn,(CASE WHEN (select SingleDepositApi from KqProducts where Id=pos.BrandId limit 1)=0 THEN ROUND(CAST(SeoKeyword AS DECIMAL)/100, 2) ELSE SeoKeyword end) SeoKeyword,TransferTime,BindingTime,ActivationTime,PrizeParams from PosMachinesTwo pos where BindingState=1 and `Status`>=-1 and BuyUserId=" + UserId + "  and Id in (select PosId from BusinessPartnerPos)) tb left join KqProducts k on tb.BrandId=k.Id" + condition, conn);
             foreach (DataRow item in dt.Rows)
             {
                 Dictionary<string, object> curData = new Dictionary<string, object>();
                 curData.Add("wname", item["wname"].ToString()); //伙伴名称
                 curData.Add("Name", item["Name"].ToString()); //机具品牌
                 curData.Add("PosSn", item["PosSn"].ToString()); //机具Sn
+                curData.Add("merchantname", item["merchantname"].ToString()); //商户姓名
                 curData.Add("SeoKeyword", item["SeoKeyword"].ToString()); //服务费
                 curData.Add("BindingTime", string.IsNullOrEmpty(item["BindingTime"].ToString()) ? "" : Convert.ToDateTime(item["BindingTime"]).ToString("yyyy-MM-dd HH:mm:ss")); //绑定时间
                 curData.Add("ActivationTime", string.IsNullOrEmpty(item["ActivationTime"].ToString()) ? "" : Convert.ToDateTime(item["ActivationTime"]).ToString("yyyy-MM-dd HH:mm:ss")); //激活时间
+                curData.Add("amount", item["amount"].ToString()); //返现金额
+                curData.Add("maxdate", string.IsNullOrEmpty(item["maxdate"].ToString()) ? "" : Convert.ToDateTime(item["maxdate"]).ToString("yyyy-MM-dd HH:mm:ss")); //返现时间
+                curData.Add("CreditRewardAmount", item["CreditRewardAmount"].ToString()); //开机奖
+                curData.Add("opdate", string.IsNullOrEmpty(item["opdate"].ToString()) ? "" : Convert.ToDateTime(item["opdate"]).ToString("yyyy-MM-dd HH:mm:ss")); //开机奖发放时间
+                curData.Add("info", item["info"].ToString()); //发放对象
                 dataList.Add(curData);
             }
             Dictionary<string, object> obj = new Dictionary<string, object>();
@@ -5731,7 +5761,7 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 condition += " and tb.BrandId=" + BrandId;
             }
-            var Sql = "select wname '伙伴名称',k.`Name` '机具品牌',PosSn '机具Sn',(CASE WHEN tb.SeoKeyword IS NULL AND tb.PrizeParams=0 THEN 0 ELSE tb.SeoKeyword END) '服务费',DATE_FORMAT(BindingTime,'%Y-%m-%d %H:%i:%s') '绑定时间',DATE_FORMAT(ActivationTime,'%Y-%m-%d %H:%i:%s') '激活时间' from (select (select Name from BusinessPartner where Id=(select PartnerId from BusinessPartnerPos where PosId=pos.Id and `Status`>-1 limit 1)) wname,BrandId,PosSnType,PosSn,(CASE WHEN BrandId not in(2,7,10,11) THEN ROUND(CAST(SeoKeyword AS DECIMAL)/100, 2) ELSE SeoKeyword end) SeoKeyword,TransferTime,BindingTime,ActivationTime,PrizeParams from PosMachinesTwo pos where BindingState=1 and `Status`>=-1 and BuyUserId=" + UserId + "  and Id in (select PosId from BusinessPartnerPos)) tb left join KqProducts k on tb.BrandId=k.Id" + condition;
+            var Sql = "select wname '伙伴名称',k.`Name` '机具品牌',PosSn '机具Sn', merchantname '商户姓名',(CASE WHEN tb.SeoKeyword IS NULL AND tb.PrizeParams=0 THEN 0 ELSE tb.SeoKeyword END) '服务费',DATE_FORMAT(BindingTime,'%Y-%m-%d %H:%i:%s') '绑定时间',DATE_FORMAT(ActivationTime,'%Y-%m-%d %H:%i:%s') '激活时间',amount '返现金额',maxdate '返现时间', CreditRewardAmount '开机奖', opdate '开机奖发放时间', info '发放对象' from (select (select MerchantName from PosMerchantInfo where Id=pos.BindMerchantId limit 1) merchantname,(select SUM(RewardAmount) from ActiveReward where KqSnNo=pos.PosSn limit 1) amount,(select MAX(CreateDate) from ActiveReward where KqSnNo=pos.PosSn limit 1) maxdate,(SELECT CreditRewardAmount FROM OpenRewardDetail WHERE SnNo=pos.PosSn AND CreditRewardAmount=20 limit 1) CreditRewardAmount,(select CreateDate FROM OpenRewardDetail WHERE SnNo=pos.PosSn AND CreditRewardAmount=20 limit 1) opdate,(select CONCAT(MakerCode,'_',RealName ) from Users where Id=(SELECT UserId FROM OpenRewardDetail WHERE SnNo=pos.PosSn AND CreditRewardAmount=20 limit 1)) info,(select Name from BusinessPartner where Id=(select PartnerId from BusinessPartnerPos where PosId=pos.Id and `Status`>-1 limit 1)) wname,BrandId,PosSnType,PosSn,(CASE WHEN (select SingleDepositApi from KqProducts where Id=pos.BrandId limit 1)=0 THEN ROUND(CAST(SeoKeyword AS DECIMAL)/100, 2) ELSE SeoKeyword end) SeoKeyword,TransferTime,BindingTime,ActivationTime,PrizeParams from PosMachinesTwo pos where BindingState=1 and `Status`>=-1 and BuyUserId=" + UserId + "  and Id in (select PosId from BusinessPartnerPos)) tb left join KqProducts k on tb.BrandId=k.Id" + condition;
 
             var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
             var FileName = MakerCode + RealName + "直营团队数据记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

+ 78 - 17
Areas/Admin/Controllers/MainServer/ToChargeBackRecordController.cs

@@ -52,7 +52,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 待扣款明细列表
         /// </summary>
         /// <returns></returns>
-        public JsonResult IndexData(ToChargeBackRecord data, string UserIdMakerCode, string PosSn, string CreateDateData, string ChargeTypeSelect, string StatusSelect, int page = 1, int limit = 30)
+        public JsonResult IndexData(ToChargeBackRecord data, string UserIdMakerCode, string PosSn, string CreateDateData, string ChargeTypeSelect, string KindSelect, string StatusSelect, int page = 1, int limit = 30)
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
@@ -81,6 +81,11 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 condition += " and ChargeType=" + ChargeTypeSelect;
             }
+            //待扣类别
+            if (!string.IsNullOrEmpty(KindSelect))
+            {
+                condition += " and Kind=" + KindSelect;
+            }
             //扣款状态
             if (!string.IsNullOrEmpty(StatusSelect))
             {
@@ -103,10 +108,16 @@ namespace MySystem.Areas.Admin.Controllers
                 //待扣类型
                 int ChargeType = int.Parse(dic["ChargeType"].ToString());
                 if (ChargeType == 124) dic["ChargeTypeName"] = "过期机具扣款";
-                if (ChargeType == 1) dic["ChargeTypeName"] = "创客预扣款";
+                if (ChargeType == 1) dic["ChargeTypeName"] = "普通预扣款";
                 if (ChargeType == 2) dic["ChargeTypeName"] = "分期预扣款";
                 if (ChargeType == 0) dic["ChargeTypeName"] = "";
 
+                //待扣类别
+                int Kind = int.Parse(dic["Kind"].ToString());
+                if (Kind == 0) dic["KindName"] = "创客预扣款";
+                if (Kind == 1) dic["KindName"] = "盟主预扣款";
+                if (Kind == 2) dic["KindName"] = "运营中心预扣款";
+
                 //扣款状态
                 int Status = int.Parse(dic["Status"].ToString());
                 if (Status == 0) dic["StatusName"] = "待扣款";
@@ -169,6 +180,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("UserId", user.Id); //创客Id
             Fields.Add("ChargeAmount", data.ChargeAmount); //待扣金额
             Fields.Add("ChargeType", 1); //待扣类型
+            Fields.Add("Kind", data.Kind); //待扣别
             Fields.Add("Remark", data.Remark); //备注
             Fields.Add("Field1", data.Field1); //备用字段
 
@@ -192,7 +204,9 @@ namespace MySystem.Areas.Admin.Controllers
                     }).Entity;
                     db.SaveChanges();
                 }
-                userAccount.ToChargeAmount += decimal.Parse(data.ChargeAmount.ToString());
+                if (data.Kind == 0) userAccount.ToChargeAmount += decimal.Parse(data.ChargeAmount.ToString());
+                if (data.Kind == 1) userAccount.LeaderToChargeAmount += decimal.Parse(data.ChargeAmount.ToString());
+                if (data.Kind == 2) userAccount.OperateToChargeAmount += decimal.Parse(data.ChargeAmount.ToString());
             }
             AddSysLog(data.Id.ToString(), "ToChargeBackRecord", "add");
             db.SaveChanges();
@@ -236,17 +250,25 @@ namespace MySystem.Areas.Admin.Controllers
             var info = db.ToChargeBackRecord.FirstOrDefault(m => m.Id == data.Id) ?? new ToChargeBackRecord();
             if (info.ChargeAmount != data.ChargeAmount)
             {
-                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == info.UserId) ?? new UserAccount();
-                if (info.ChargeAmount > data.ChargeAmount)
-                {
-                    userAccount.ToChargeAmount -= info.ChargeAmount - data.ChargeAmount;
-                }
-                if (info.ChargeAmount < data.ChargeAmount)
+                if (info.Kind != data.Kind)
                 {
-                    userAccount.ToChargeAmount += data.ChargeAmount - info.ChargeAmount;
+                    var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == info.UserId) ?? new UserAccount();
+                    if (info.ChargeAmount > data.ChargeAmount)
+                    {
+                        if (data.Kind == 0) userAccount.ToChargeAmount -= info.ChargeAmount - data.ChargeAmount;
+                        if (data.Kind == 1) userAccount.LeaderToChargeAmount -= info.ChargeAmount - data.ChargeAmount;
+                        if (data.Kind == 2) userAccount.OperateToChargeAmount -= info.ChargeAmount - data.ChargeAmount;
+                    }
+                    if (info.ChargeAmount < data.ChargeAmount)
+                    {
+                        if (data.Kind == 0) userAccount.ToChargeAmount += data.ChargeAmount - info.ChargeAmount;
+                        if (data.Kind == 1) userAccount.LeaderToChargeAmount += data.ChargeAmount - info.ChargeAmount;
+                        if (data.Kind == 2) userAccount.OperateToChargeAmount += data.ChargeAmount - info.ChargeAmount;
+                    }
                 }
             }
             Fields.Add("ChargeAmount", data.ChargeAmount); //待扣金额
+            Fields.Add("Kind", data.Kind); //待扣金额
             Fields.Add("SeoDescription", data.SeoDescription);
             if (info.ChargeType != 124)
             {
@@ -276,7 +298,9 @@ namespace MySystem.Areas.Admin.Controllers
                 int id = int.Parse(subid);
                 var toChargeBackRecord = db.ToChargeBackRecord.FirstOrDefault(m => m.Id == id) ?? new ToChargeBackRecord();
                 var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == toChargeBackRecord.UserId) ?? new UserAccount();
-                userAccount.ToChargeAmount -= toChargeBackRecord.ChargeAmount;//删除预扣款记录时扣减相应预扣额度
+                if (toChargeBackRecord.Kind == 0) userAccount.ToChargeAmount -= toChargeBackRecord.ChargeAmount;//删除预扣款记录时扣减相应预扣额度
+                if (toChargeBackRecord.Kind == 1) userAccount.LeaderToChargeAmount -= toChargeBackRecord.ChargeAmount;//删除预扣款记录时扣减相应预扣额度
+                if (toChargeBackRecord.Kind == 2) userAccount.OperateToChargeAmount -= toChargeBackRecord.ChargeAmount;//删除预扣款记录时扣减相应预扣额度
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", -1);
                 new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ToChargeBackRecord", Fields, id);
@@ -416,6 +440,8 @@ namespace MySystem.Areas.Admin.Controllers
                 string Name = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
                 string Amount = itemJson.Contains("\"C\"") ? dr["C"].ToString() : "";
                 string Remark = itemJson.Contains("\"D\"") ? dr["D"].ToString() : "";
+                string KindName = itemJson.Contains("\"E\"") ? dr["E"].ToString() : "";
+                int Kind = 0;
                 var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
                 var users = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId && m.RealName == Name) ?? new Users();
                 var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == users.Id);
@@ -434,7 +460,21 @@ namespace MySystem.Areas.Admin.Controllers
                         }).Entity;
                         db.SaveChanges();
                     }
-                    userAccount.ToChargeAmount += decimal.Parse(Amount);
+                    if (KindName == "创客预扣款")
+                    {
+                        Kind = 0;
+                        userAccount.ToChargeAmount += decimal.Parse(Amount);
+                    }
+                    if (KindName == "盟主预扣款")
+                    {
+                        Kind = 1;
+                        userAccount.LeaderToChargeAmount += decimal.Parse(Amount);
+                    }
+                    if (KindName == "运营中心预扣款")
+                    {
+                        Kind = 2;
+                        userAccount.OperateToChargeAmount += decimal.Parse(Amount);
+                    }
                     var ToChargeBackRecord = db.ToChargeBackRecord.Add(new ToChargeBackRecord
                     {
                         CreateDate = DateTime.Now,
@@ -442,6 +482,7 @@ namespace MySystem.Areas.Admin.Controllers
                         SeoDescription = Remark,
                         Remark = Remark,
                         ChargeType = 1,
+                        Kind = Kind,
                         ChargeAmount = decimal.Parse(Amount),
                         UserId = users.Id,
                     }).Entity;
@@ -589,7 +630,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 导出Excel
         /// </summary>
         /// <returns></returns>
-        public JsonResult ExportExcel(ToChargeBackRecord data, string CreateDateData, string UserIdMakerCode, string ChargeTypeSelect, string StatusSelect)
+        public JsonResult ExportExcel(ToChargeBackRecord data, string CreateDateData, string UserIdMakerCode, string ChargeTypeSelect, string KindSelect, string StatusSelect)
         {
             Dictionary<string, string> Fields = new Dictionary<string, string>();
             // Fields.Add("CreateDate", "3"); //时间
@@ -612,6 +653,11 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 condition += " and ChargeType=" + ChargeTypeSelect;
             }
+            //待扣类别
+            if (!string.IsNullOrEmpty(KindSelect))
+            {
+                condition += " and Kind=" + KindSelect;
+            }
             //扣款状态
             if (!string.IsNullOrEmpty(StatusSelect))
             {
@@ -619,7 +665,7 @@ namespace MySystem.Areas.Admin.Controllers
             }
 
 
-            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("ToChargeBackRecord", Fields, "Id desc", "0", 1, 20000, condition, "Id,UserId,ChargeAmount,ChargeType,Remark", false);
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("ToChargeBackRecord", Fields, "Id desc", "0", 1, 20000, condition, "Id,UserId,ChargeAmount,ChargeType,Kind,Remark", false);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             foreach (Dictionary<string, object> dic in diclist)
             {
@@ -633,6 +679,15 @@ namespace MySystem.Areas.Admin.Controllers
                 //待扣类型
                 int ChargeType = int.Parse(dic["ChargeType"].ToString());
                 if (ChargeType == 124) dic["ChargeType"] = "过期机具扣款";
+                if (ChargeType == 1) dic["ChargeType"] = "普通预扣款";
+                if (ChargeType == 2) dic["ChargeType"] = "分期预扣款";
+                if (ChargeType == 0) dic["ChargeType"] = "";
+
+                //待扣类别
+                int Kind = int.Parse(dic["Kind"].ToString());
+                if (Kind == 0) dic["Kind"] = "创客预扣款";
+                if (Kind == 1) dic["Kind"] = "盟主预扣款";
+                if (Kind == 2) dic["Kind"] = "运营中心预扣款";
 
                 int Id = int.Parse(function.CheckInt(dic["Id"].ToString()));
                 var toChargeBackRecord = db.ToChargeBackRecord.FirstOrDefault(m => m.Id == Id) ?? new ToChargeBackRecord();
@@ -661,7 +716,8 @@ namespace MySystem.Areas.Admin.Controllers
             result.Add("Obj", diclist);
             Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
             ReturnFields.Add("Id", "Id");
-            ReturnFields.Add("ChargeType", "类型");
+            ReturnFields.Add("ChargeType", "待扣类型");
+            ReturnFields.Add("Kind", "待扣类别");
             ReturnFields.Add("Remark", "机具sn");
             ReturnFields.Add("BrandId", "品牌");
             ReturnFields.Add("PosSnType", "机具类型");
@@ -692,7 +748,7 @@ namespace MySystem.Areas.Admin.Controllers
         }
 
         [HttpPost]
-        public string QuickExportExcelDo(string UserIdMakerCode, string PosSn, string CreateDateData, string ChargeTypeSelect, string StatusSelect)
+        public string QuickExportExcelDo(string UserIdMakerCode, string PosSn, string CreateDateData, string ChargeTypeSelect, string KindSelect, string StatusSelect)
         {
 
             string SqlString = " where 1=1 and a.Status>-1";
@@ -712,6 +768,11 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 SqlString += " and a.Remark=" + PosSn;
             }
+            //待扣类别
+            if (!string.IsNullOrEmpty(KindSelect))
+            {
+                SqlString += " and a.Kind=" + KindSelect;
+            }
             //待扣类型
             if (!string.IsNullOrEmpty(ChargeTypeSelect))
             {
@@ -722,7 +783,7 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 SqlString += " and a.Status=" + StatusSelect;
             }
-            var Sql = "SELECT b.MakerCode '创客编号',b.RealName '创客真实姓名',b.Mobile '手机号',DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%s') '创建时间',a.ChargeAmount '扣款金额',(CASE WHEN a.ChargeType=124 THEN '过期机具扣款' WHEN a.ChargeType=1 THEN '创客预扣款' WHEN a.ChargeType=2 THEN '分期预扣款' ELSE '' end) '扣款类型',DATE_FORMAT(a.UpdateDate,'%Y-%m-%d %H:%i:%s') '扣款/更新时间',(CASE WHEN a.`Status`=0 THEN '待扣款' WHEN a.`Status`=1 THEN '已扣款' WHEN a.`Status`=2 THEN '已退还' WHEN a.`Status`=3 THEN '暂停扣款'  ELSE '' end) '扣款状态',a.Remark '机具Sn',a.SeoDescription '备注',a.SeoTitle '操作人' FROM ToChargeBackRecord a LEFT JOIN Users b ON a.UserId=b.Id " + SqlString + "";
+            var Sql = "SELECT b.MakerCode '创客编号',b.RealName '创客真实姓名',b.Mobile '手机号',DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%s') '创建时间',a.ChargeAmount '扣款金额',(CASE WHEN a.ChargeType=124 THEN '过期机具扣款' WHEN a.ChargeType=1 THEN '普通预扣款' WHEN a.ChargeType=2 THEN '分期预扣款' ELSE '' end) '扣款类型',(CASE WHEN a.Kind=0 THEN '创客预扣款' WHEN a.Kind=1 THEN '盟主预扣款' WHEN a.Kind=2 THEN '运营中心预扣款' ELSE '' end) '扣款类别',DATE_FORMAT(a.UpdateDate,'%Y-%m-%d %H:%i:%s') '扣款/更新时间',(CASE WHEN a.`Status`=0 THEN '待扣款' WHEN a.`Status`=1 THEN '已扣款' WHEN a.`Status`=2 THEN '已退还' WHEN a.`Status`=3 THEN '暂停扣款'  ELSE '' end) '扣款状态',a.Remark '机具Sn',a.SeoDescription '备注',a.SeoTitle '操作人' FROM ToChargeBackRecord a LEFT JOIN Users b ON a.UserId=b.Id " + SqlString + "";
             var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
             var FileName = "创客预扣款记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";

+ 21 - 3
Areas/Admin/Controllers/MainServer/ToChargeBackRecordSubController.cs

@@ -52,7 +52,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 待扣款明细列表
         /// </summary>
         /// <returns></returns>
-        public JsonResult IndexData(ToChargeBackRecordSub data, string OrderNo, string StatusSelect, string CreateDateData, int page = 1, int limit = 30)
+        public JsonResult IndexData(ToChargeBackRecordSub data, string OrderNo, string StatusSelect, string KindSelect, string CreateDateData, int page = 1, int limit = 30)
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
@@ -68,6 +68,12 @@ namespace MySystem.Areas.Admin.Controllers
                 condition += " and ParentId=" + toChargeByStage.Id;
             }
 
+            //待扣类别
+            if (!string.IsNullOrEmpty(KindSelect))
+            {
+                condition += " and Kind=" + KindSelect;
+            }
+
             //状态
             if (!string.IsNullOrEmpty(StatusSelect))
             {
@@ -103,6 +109,12 @@ namespace MySystem.Areas.Admin.Controllers
                     dic["StatusName"] = "扣款中";
                 }
 
+                //待扣类别
+                int Kind = int.Parse(dic["Kind"].ToString());
+                if (Kind == 0) dic["KindName"] = "创客预扣款";
+                if (Kind == 1) dic["KindName"] = "盟主预扣款";
+                if (Kind == 2) dic["KindName"] = "运营中心预扣款";
+
                 //分期单号
                 int ParentId = int.Parse(function.CheckInt(dic["ParentId"].ToString()));
                 var toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == ParentId) ?? new ToChargeByStage();
@@ -198,16 +210,22 @@ namespace MySystem.Areas.Admin.Controllers
             }
             if (toChargeBackRecordSub.ChargeAmount != data.ChargeAmount)
             {
+
                 var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == toChargeByStage.UserId) ?? new UserAccount();
                 if (toChargeBackRecordSub.ChargeAmount > data.ChargeAmount)
                 {
                     toChargeByStage.TotalAmount -= toChargeBackRecordSub.ChargeAmount - data.ChargeAmount;
-                    userAccount.ToChargeAmount -= toChargeBackRecordSub.ChargeAmount - data.ChargeAmount;
+                    if (toChargeBackRecordSub.Kind == 0) userAccount.ToChargeAmount -= toChargeBackRecordSub.ChargeAmount - data.ChargeAmount;
+                    if (toChargeBackRecordSub.Kind == 1) userAccount.LeaderToChargeAmount -= toChargeBackRecordSub.ChargeAmount - data.ChargeAmount;
+                    if (toChargeBackRecordSub.Kind == 2) userAccount.OperateToChargeAmount -= toChargeBackRecordSub.ChargeAmount - data.ChargeAmount;
                 }
                 if (toChargeBackRecordSub.ChargeAmount < data.ChargeAmount)
                 {
                     toChargeByStage.TotalAmount += data.ChargeAmount - toChargeBackRecordSub.ChargeAmount;
-                    userAccount.ToChargeAmount += data.ChargeAmount - toChargeBackRecordSub.ChargeAmount;
+                    
+                    if (toChargeBackRecordSub.Kind == 0) userAccount.ToChargeAmount += data.ChargeAmount - toChargeBackRecordSub.ChargeAmount;
+                    if (toChargeBackRecordSub.Kind == 1) userAccount.LeaderToChargeAmount += data.ChargeAmount - toChargeBackRecordSub.ChargeAmount;
+                    if (toChargeBackRecordSub.Kind == 2) userAccount.OperateToChargeAmount += data.ChargeAmount - toChargeBackRecordSub.ChargeAmount;
                 }
             }
             Fields.Add("ChargeAmount", data.ChargeAmount); //待扣金额

+ 15 - 1
Areas/Admin/Controllers/MainServer/ToChargeByStageController.cs

@@ -51,7 +51,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 分期扣款信息列表
         /// </summary>
         /// <returns></returns>
-        public JsonResult IndexData(ToChargeByStage data, string MakerCode, string StatusSelect, string CreateDateData, int page = 1, int limit = 30)
+        public JsonResult IndexData(ToChargeByStage data, string MakerCode, string StatusSelect, string KindSelect, string CreateDateData, int page = 1, int limit = 30)
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
@@ -66,6 +66,11 @@ namespace MySystem.Areas.Admin.Controllers
                 var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
                 condition += " and UserId=" + userForMakerCode.UserId;
             }
+            //待扣类别
+            if (!string.IsNullOrEmpty(KindSelect))
+            {
+                condition += " and Kind=" + KindSelect;
+            }
 
             //状态
             if (!string.IsNullOrEmpty(StatusSelect))
@@ -105,6 +110,12 @@ namespace MySystem.Areas.Admin.Controllers
                 dic["MakerName"] = userid_Users.RealName;
                 dic["MakerMobile"] = userid_Users.Mobile;
 
+                //待扣类别
+                int Kind = int.Parse(dic["Kind"].ToString());
+                if (Kind == 0) dic["KindName"] = "创客预扣款";
+                if (Kind == 1) dic["KindName"] = "盟主预扣款";
+                if (Kind == 2) dic["KindName"] = "运营中心预扣款";
+
                 //扣款状态
                 int TimeNumber = int.Parse(function.CheckInt(dic["TimeNumber"].ToString()));
                 int QueryCount = int.Parse(function.CheckInt(dic["QueryCount"].ToString()));
@@ -170,6 +181,7 @@ namespace MySystem.Areas.Admin.Controllers
             var StartTime = DateTime.Parse(DateTime.Parse(data.StartDate.ToString()).ToString("yyyy-MM-20 00:00:00"));
             Fields.Add("UserId", user.UserId); //创客Id
             Fields.Add("Remark", data.Remark); //备注
+            Fields.Add("Kind", data.Kind); //带扣类型(0 创客预扣款 1 盟主预扣款 2 运营宗欣预扣款)
             Fields.Add("StartDate", StartTime); //扣款开始时间
             Fields.Add("TimeNumber", data.TimeNumber); //期数
             Fields.Add("TotalAmount", data.TotalAmount); //扣款总金额
@@ -189,6 +201,7 @@ namespace MySystem.Areas.Admin.Controllers
                     ChargeAmount = decimal.Parse(ChargeAmount),
                     ParentId = Id,
                     Remark = data.Remark,
+                    Kind = data.Kind,
                 }).Entity;
             }
             AddSysLog(data.Id.ToString(), "ToChargeByStage", "add");
@@ -232,6 +245,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("UserId", data.UserId); //创客
             Fields.Add("ChargeAmount", data.ChargeAmount); //待扣金额
             Fields.Add("Remark", data.Remark); //备注
+            Fields.Add("Kind", data.Kind); //带扣类型(0 创客预扣款 1 盟主预扣款 2 运营宗欣预扣款)
             Fields.Add("StartDate", data.StartDate); //扣款开始时间
             Fields.Add("TimeNumber", data.TimeNumber); //期数
             Fields.Add("TotalAmount", data.TotalAmount); //扣款总金额

+ 145 - 0
Areas/Admin/Controllers/MainServer/UserAccountRecordController.cs

@@ -591,6 +591,29 @@ namespace MySystem.Areas.Admin.Controllers
                     condition += " and Id <=" + eId;
                 }
             }
+            else
+            {
+                var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
+                var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
+                if (check)
+                {
+                    var minId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
+                    var Info = function.ReadInstance("/WritePage/UsersAccountRecord/UsersAccountRecord.txt");
+                    if (string.IsNullOrEmpty(Info.ToString()))
+                    {
+                        function.WritePage("/WritePage/UsersAccountRecord/", "UsersAccountRecord.txt", minId.ToString());
+                        condition += " and Id >=" + minId;
+                    }
+                    else
+                    {
+                        condition += " and Id >=" + Convert.ToInt32(Info);
+                    }
+                }
+                else
+                {
+                    condition += " and Id =0";
+                }
+            }
 
             Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("UserAccountRecord", Fields, "Id desc", "0", 1, 20000, condition, "UserId,ProductType,TransRecordNo,ChangeType,ChangeAmount,Remark,BeforeTotalAmount,AfterTotalAmount,BeforeFreezeAmount,AfterFreezeAmount,BeforeBalanceAmount,AfterBalanceAmount,CreateDate", false);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
@@ -654,5 +677,127 @@ namespace MySystem.Areas.Admin.Controllers
 
         #endregion
 
+
+        #region 快捷导出Excel
+        public IActionResult QuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string QuickExportExcelDo(int ChangeType, int ProductType, string TransRecordNo, string MakerCode, string RealName, string CreateDateData)
+        {
+
+            string SqlString = " and a.Status>-1";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                SqlString += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                SqlString += " and a.UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            }
+            if (ChangeType > 0)
+            {
+                // if (ChangeType == 1)
+                // {
+                //     SqlString += " and (a.ChangeType=" + ChangeType + " or (a.ChangeType in(112,1) and a.ProductType=101))";
+                // }
+                // else if (ChangeType == 30)
+                // {
+                //     SqlString += " and a.ChangeType=31 and a.Remark='开机抢红包活动'";
+                // }
+                // else if (ChangeType == 31)
+                // {
+                //     SqlString += " and (a.ChangeType=" + ChangeType + " and (a.Remark!='开机抢红包活动' or a.Remark IS NULL))";
+                // }
+                // else
+                // {
+                //     SqlString += " and a.ChangeType=" + ChangeType;
+                // }
+
+                if (ChangeType > 0)
+                {
+                    if (ChangeType == 1)
+                    {
+                        SqlString += " and (a.ChangeType=" + ChangeType + " or (a.ChangeType in(112,1) and a.ProductType=101))";
+                    }
+                    else if (ChangeType == 112)
+                    {
+                        SqlString += " and a.ChangeType=112 and a.ProductType=0";
+                    }
+                    else
+                    {
+                        SqlString += " and a.ChangeType=" + ChangeType;
+                    }
+                }
+                if (ChangeType == 0)
+                {
+                    SqlString += " and a.ChangeType in(0,12)";
+                }
+            }
+            if (ProductType > 0)
+            {
+                SqlString += " and a.ProductType=" + ProductType;
+            }
+            if (!string.IsNullOrEmpty(TransRecordNo))
+            {
+                SqlString += " and a.TransRecordNo='" + TransRecordNo + "'";
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
+                var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
+                var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
+                var checks = db.UserAccountRecord.Any(m => m.CreateDate <= end);
+                if (check)
+                {
+                    var sId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
+                    SqlString += "  and a.Id >=" + sId;
+                }
+                if (checks)
+                {
+                    var eId = db.UserAccountRecord.Where(m => m.CreateDate <= end).Max(m => m.Id);
+                    SqlString += " and a.Id <=" + eId;
+                }
+            }
+            else
+            {
+                var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
+                var check = db.UserAccountRecord.Any(m => m.CreateDate >= start);
+                if (check)
+                {
+                    var minId = db.UserAccountRecord.Where(m => m.CreateDate >= start).Min(m => m.Id);
+                    var Info = function.ReadInstance("/WritePage/UsersAccountRecord/UsersAccountRecord.txt");
+                    if (string.IsNullOrEmpty(Info.ToString()))
+                    {
+                        function.WritePage("/WritePage/UsersAccountRecord/", "UsersAccountRecord.txt", minId.ToString());
+                        SqlString += " and a.Id >=" + minId;
+                    }
+                    else
+                    {
+                        SqlString += " and a.Id >=" + Convert.ToInt32(Info);
+                    }
+                }
+                else
+                {
+                    SqlString += " and a.Id =0";
+                }
+            }
+            var Sql = "SELECT e.MakerCode '创客编号',e.RealName '创客姓名',f.MakerCode '顶级创客编号',f.RealName '顶级创客名称',e.`Name` '产品类型',e.TransRecordNo '交易流水编号',e.ChangeTypeName '交易类型',e.ChangeAmount '交易金额',e.Remark '备注',e.BeforeTotalAmount '交易前总金额',e.AfterTotalAmount '交易后总金额',e.BeforeFreezeAmount '交易前冻结金额',e.AfterFreezeAmount '交易后冻结金额',e.BeforeBalanceAmount '交易前余额',e.AfterBalanceAmount '交易后余额',DATE_FORMAT(e.CreateDate,'%Y-%m-%d %H:%i:%s') '交易时间' FROM (SELECT b.MakerCode,b.RealName,SUBSTRING_INDEX(SUBSTRING_INDEX(b.ParentNav,',',4),',',-1) topId,c.`Name`,a.TransRecordNo,d.`Name` ChangeTypeName,a.ChangeAmount,a.Remark,a.BeforeTotalAmount,a.AfterTotalAmount,a.BeforeFreezeAmount,a.AfterFreezeAmount,a.BeforeBalanceAmount,a.AfterBalanceAmount,a.CreateDate FROM UserAccountRecord a LEFT JOIN Users b ON a.UserId=b.Id LEFT JOIN KqProducts c ON a.ProductType=c.Id LEFT JOIN ChangeTypes d ON a.ChangeType=d.Id WHERE 1=1 " + SqlString + ") e LEFT JOIN Users f ON e.topId=f.Id";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "创客账户变动记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            return "success";
+        }
+        #endregion
+
     }
 }

+ 203 - 1
Areas/Admin/Controllers/MainServer/UserCashRecordController.cs

@@ -26,7 +26,7 @@ namespace MySystem.Areas.Admin.Controllers
     {
         public UserCashRecordController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
         {
-            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();//111
         }
 
         #region 提现记录列表
@@ -639,6 +639,111 @@ namespace MySystem.Areas.Admin.Controllers
 
 
 
+        #region 快捷导出Excel
+        public IActionResult UserQuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string UserQuickExportExcelDo(string TradeType, string CashOrderNo, string MakerCode, string RealName, string StatusSelect, string QueryCountSelect, string CreateDateData)
+        {
+
+            string condition = " where 1=1 and a.Status>-1 and a.TradeType<3";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and a.UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and a.Status=" + StatusSelect;
+            }
+            if (!string.IsNullOrEmpty(CashOrderNo))
+            {
+                condition += " and a.CashOrderNo='" + CashOrderNo + "'";
+            }
+            if (!string.IsNullOrEmpty(TradeType))
+            {
+                condition += " and a.TradeType=" + TradeType;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(QueryCountSelect))
+            {
+                if (QueryCountSelect == "0")
+                {
+                    condition += " and a.QueryCount=" + QueryCountSelect;
+                }
+                else
+                {
+                    condition += " and a.QueryCount>0";
+                }
+            }
+
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
+                var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
+                var check = db.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
+                var checks = db.UserCashRecord.Any(m => m.CreateDate <= end && m.TradeType < 3);
+                if (check)
+                {
+                    var sId = db.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
+                    condition += "  and a.Id >=" + sId;
+                }
+                if (checks)
+                {
+                    var eId = db.UserCashRecord.Where(m => m.CreateDate <= end && m.TradeType < 3).Max(m => m.Id);
+                    condition += " and a.Id <=" + eId;
+                }
+            }
+            else
+            {
+                var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
+                var check = db.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
+                if (check)
+                {
+                    var minId = db.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
+                    var Info = function.ReadInstance("/WritePage/UserCashRecord/UserCashRecord.txt");
+                    if (string.IsNullOrEmpty(Info.ToString()))
+                    {
+                        function.WritePage("/WritePage/UserCashRecord/", "UserCashRecord.txt", minId.ToString());
+                        condition += " and a.Id >=" + minId;
+                    }
+                    else if (minId != int.Parse(Info))
+                    {
+                        function.WritePage("/WritePage/UserCashRecord/", "UserCashRecord.txt", minId.ToString());
+                        condition += " and a.Id >=" + minId;
+                    }
+                    else
+                    {
+                        condition += " and a.Id >=" + Convert.ToInt32(Info);
+                    }
+                }
+                else
+                {
+                    condition += " and a.Id =0";
+                }
+            }
+            var Sql = "SELECT a.CashOrderNo '提现单号',b.MakerCode '创客编号',b.RealName '创客姓名',b.Mobile '手机号',a.IdCardNo '身份证号',a.SettleBankName '开户行名称',a.SettleBankCardNo '开户行卡号',a.ActualTradeAmount '发佣金额(单位:元)',(CASE WHEN a.QueryCount=0 THEN '待提交' WHEN a.QueryCount>0 THEN '已提交' ELSE '' end) '代付标记',(CASE WHEN a.Status=0 THEN '处理中' WHEN a.Status=1 THEN '成功' WHEN a.Status=2 THEN '失败' ELSE '' end) '状态',a.Remark '备注',DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%s') '创建时间' FROM UserCashRecord a LEFT JOIN Users b ON a.UserId=b.Id" + condition + "";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "创客提现记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            return "success";
+        }
+        #endregion
+
 
 
         #region 盟主提现记录列表
@@ -928,6 +1033,103 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
 
+
+        #region 快捷导出Excel
+        public IActionResult LeaderQuickExportExcel(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string LeaderQuickExportExcelDo(string CashOrderNo, string MakerCode, string RealName, string StatusSelect, string CreateDateData)
+        {
+
+            string condition = " where 1=1 and a.Status>-1 and a.TradeType=3";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and a.UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and a.UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and a.Status=" + StatusSelect;
+            }
+            if (!string.IsNullOrEmpty(CashOrderNo))
+            {
+                condition += " and a.CashOrderNo='" + CashOrderNo + "'";
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                var start = datelist[0];
+                var end = datelist[1];
+                condition += " and a.CreateDate>='" + start + " 00:00:00' and a.CreateDate<='" + end + " 23:59:59'";
+            }
+            // if (!string.IsNullOrEmpty(CreateDateData))
+            // {
+            //     string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+            //     var start = Convert.ToDateTime(Convert.ToDateTime(datelist[0]).ToString("yyyy-MM-dd"));
+            //     var end = Convert.ToDateTime(Convert.ToDateTime(datelist[1]).ToString("yyyy-MM-dd") + " 23:59:59");
+            //     var check = db.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
+            //     var checks = db.UserCashRecord.Any(m => m.CreateDate <= end && m.TradeType < 3);
+            //     if (check)
+            //     {
+            //         var sId = db.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
+            //         condition += "  and a.Id >=" + sId;
+            //     }
+            //     if (checks)
+            //     {
+            //         var eId = db.UserCashRecord.Where(m => m.CreateDate <= end && m.TradeType < 3).Max(m => m.Id);
+            //         condition += " and a.Id <=" + eId;
+            //     }
+            // }
+            // else
+            // {
+            //     var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
+            //     var check = db.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
+            //     if (check)
+            //     {
+            //         var minId = db.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
+            //         var Info = function.ReadInstance("/WritePage/UserCashRecord/LeaderUserCashRecord.txt");
+            //         if (string.IsNullOrEmpty(Info.ToString()))
+            //         {
+            //             function.WritePage("/WritePage/UserCashRecord/", "LeaderUserCashRecord.txt", minId.ToString());
+            //             condition += " and Id >=" + minId;
+            //         }
+            //         else if (minId != int.Parse(Info))
+            //         {
+            //             function.WritePage("/WritePage/UserCashRecord/", "LeaderUserCashRecord.txt", minId.ToString());
+            //             condition += " and Id >=" + minId;
+            //         }
+            //         else
+            //         {
+            //             condition += " and Id >=" + Convert.ToInt32(Info);
+            //         }
+            //     }
+            //     else
+            //     {
+            //         condition += " and a.Id =0";
+            //     }
+            // }
+            var Sql = "SELECT a.CashOrderNo '提现单号',b.MakerCode '创客编号',b.RealName '创客姓名',b.Mobile '手机号',a.IdCardNo '身份证号',a.SettleBankName '开户行名称',a.SettleBankCardNo '开户行卡号',a.ActualTradeAmount '发佣金额(单位:元)',(CASE WHEN a.QueryCount=0 THEN '待提交' WHEN a.QueryCount>0 THEN '已提交' ELSE '' end) '代付标记',(CASE WHEN a.Status=0 THEN '处理中' WHEN a.Status=1 THEN '成功' WHEN a.Status=2 THEN '失败' ELSE '' end) '状态',a.Remark '备注',DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%s') '创建时间' FROM UserCashRecord a LEFT JOIN Users b ON a.UserId=b.Id" + condition + "";
+            var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
+            var FileName = "盟主提现记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
+            RedisDbconn.Instance.AddList("ExportQueue", SendData);
+            return "success";
+        }
+        #endregion
+
+
         #region 助利宝提现记录列表
 
         /// <summary>

+ 14 - 3
Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs

@@ -90,6 +90,12 @@ namespace MySystem.Areas.Admin.Controllers
                 //所属人信息
                 int Id = int.Parse(dic["Id"].ToString());
                 SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id) ?? new SysAdmin();
+                var userInfo = db.Users.FirstOrDefault(m => m.Id == sysAdmin.UserId) ?? new Models.Users();
+                if (userInfo.UserType == 0) dic["Kind"] = "";
+                if (userInfo.UserType == 1) dic["Kind"] = "普通合伙人";
+                if (userInfo.UserType == 2) dic["Kind"] = "黄金合伙人";
+                if (userInfo.UserType == 3) dic["Kind"] = "钻石合伙人";
+                if (userInfo.UserType == 4) dic["Kind"] = "战略合伙人";
                 dic["MakerCode"] = sysAdmin.MakerCode;
                 dic["MakerName"] = sysAdmin.MakerName;
 
@@ -142,7 +148,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public string Add(SysAdmin data, UserAccount userAccount, string Areas, string Address)
+        public string Add(SysAdmin data, UserAccount userAccount, string Areas, string Address, string Kind)
         {
             Dictionary<string, object> Fields = new Dictionary<string, object>();
             Dictionary<string, object> Field = new Dictionary<string, object>();
@@ -223,7 +229,7 @@ namespace MySystem.Areas.Admin.Controllers
                             opdb.SaveChanges();
                         }
                     }
-                    userInfo.UserType = 1;//设置创客为运营中心
+                    userInfo.UserType = int.Parse(Kind);//设置创客为运营中心
                     db.SaveChanges();
 
                     var kqProduct = db.KqProducts.ToList();
@@ -292,6 +298,8 @@ namespace MySystem.Areas.Admin.Controllers
             UserAccount editDatas = opdb.UserAccount.FirstOrDefault(m => m.Sort == Id) ?? new UserAccount();
             ViewBag.data = editData;
             ViewBag.datas = editDatas;
+            var userInfo = db.Users.FirstOrDefault(m => m.Id == editData.UserId) ?? new Models.Users();
+            ViewBag.Kind = userInfo.UserType;
             return View();
         }
 
@@ -304,7 +312,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public string Edit(SysAdmin data, UserAccount userAccount, string Areas, string Address)
+        public string Edit(SysAdmin data, UserAccount userAccount, string Areas, string Address, string Kind)
         {
             Dictionary<string, object> Fields = new Dictionary<string, object>();
             Fields.Add("UpdateMan", SysUserName + "_" + SysRealName); //修改人
@@ -322,6 +330,9 @@ namespace MySystem.Areas.Admin.Controllers
             new AdminContentByConn(_accessor.HttpContext, PublicFunction.OpTables, OpConn).Edit("SysAdmin", Fields, data.Id);
             SysAdmin edit = opdb.SysAdmin.FirstOrDefault(m => m.Id == data.Id);
             edit.CreateDate = edit.CreateDate;
+            var userInfo = db.Users.FirstOrDefault(m => m.Id == edit.UserId) ?? new Models.Users();
+            userInfo.UserType = int.Parse(Kind);//设置创客为运营中心
+            userInfo.UpdateDate = DateTime.Now;
             AddSysLog(data.Id.ToString(), "SysAdmin", "update");
             db.SaveChanges();
 

+ 1 - 1
Areas/Admin/Views/BsServer/Advertisment/Add.cshtml

@@ -228,4 +228,4 @@
 
     </script>
 </body>
-</html>
+</html>

+ 1 - 0
Areas/Admin/Views/MainServer/LeaderReserveRecord/Index.cshtml

@@ -71,6 +71,7 @@
                                 <option value="系统增加(盟主可提现余额)">系统增加(盟主可提现余额)</option>
                                 <option value="系统扣减(盟主可提现余额)">系统扣减(盟主可提现余额)</option>
                                 <option value="购机奖励">购机奖励</option>
+                                <option value="兑换大盟主">兑换大盟主</option>
                             </select>
                         </div>
                     </div>

+ 2 - 2
Areas/Admin/Views/MainServer/PreSendStockDetail/Index.cshtml

@@ -192,9 +192,9 @@
                     {
                         <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
                     }
-                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    @if (RightInfo.Contains("," + right + "_Cancle,"))
                     {
-
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="Cancle"><i class="layui-icon layui-icon-edit"></i>撤回</a>
                     }
                 </script>
             </div>

+ 268 - 0
Areas/Admin/Views/MainServer/SysTools/SeeUserLevel4Info.cshtml

@@ -0,0 +1,268 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+
+}
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>查询指定创客下四级信息</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <script src="/admin/js/LAreaData2.js"></script>
+</head>
+
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <form class="layui-form" id="confirmFrm">
+            <div class="layui-card">
+                <div class="layui-card-body">
+                    <div class="layui-tab" lay-filter="mytabbar">
+                        <ul class="layui-tab-title">
+                            <li class="layui-this" lay-id="1">基本信息</li>
+                        </ul>
+                        <div class="layui-tab-content mt20">
+                            <div class="layui-tab-item layui-show">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">指定开始创客编号</label>
+                                    <div class="layui-input-inline">
+                                        <input class="layui-input" type="text" id="MakerCode" name="MakerCode"
+                                            maxlength="50" lay-verify="required|" autocomplete="off"
+                                            placeholder="请输入来源创客编号">
+                                    </div>
+                                </div>
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">查询创客编号</label>
+                                    <div class="layui-input-block">
+                                        <textarea class="layui-textarea" lay-verify="required|" name="MakerCodes" id="MakerCodes"
+                                            placeholder="请输入查询创客编号,多个查询创客编号用回车隔开"></textarea>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-form-item ml10">
+                        <div class="layui-input-block">
+                            <button type="button" class="layui-btn" onclick="save()">提交</button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script
+        src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        function save() {
+            var MakerCode = $('#MakerCode').val();
+            var MakerCodes = $('#MakerCodes').val();
+            if (MakerCode == '') {
+                layer.msg('请输入指定开始创客编号');
+            }
+            else if (MakerCodes == '') {
+                layer.msg('请输入查询创客编号');
+            }
+            else {
+                var index = layer.confirm('确定要查询并导出数据吗?', function (index) {
+                    var indexs = layer.load(1, {
+                        shade: [0.5, '#000']
+                    });
+                    var userdata = $("#confirmFrm").serialize();
+                    $.ajax({
+                        type: "POST",
+                        url: "/Admin/SysTools/SeeUserLevel4InfoDo?r=" + Math.random(1),
+                        data: userdata,
+                        dataType: "text",
+                        success: function (data) {
+                            layer.close(index); //关闭弹层
+                            if (data == "success") {
+                                layer.close(indexs); //关闭弹层
+                                layer.msg('成功', {
+                                    time: 1000
+                                }, function () {
+                                    window.location.reload();
+                                });
+                            } else if (data.indexOf("Warning") == 0) {
+                                var datalist = data.split('|');
+                                layer.close(indexs); //关闭弹层
+                                layer.alert(datalist[1], { time: 20000 }, function () {
+                                    window.location.reload();
+                                });
+                            } else {
+                                layer.close(indexs); //关闭弹层
+                                layer.msg(data);
+                            }
+                        }
+                    });
+                });
+            }
+        }
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        var ids = "";
+        function getChildren(obj) {
+            $.each(obj, function (index, value) {
+                var id = obj[index].id;
+                ids += id + ",";
+                var children = obj[index].children;
+                if (children) {
+                    getChildren(children);
+                }
+            });
+        }
+
+        function AreasProvinceInit(tagId, areasVal, form) {
+            for (var i = 0; i < provs_data.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(provs_data[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "Province").append('<option value="' + provs_data[i].value + '"' + sel + '>' + provs_data[i].text + '</option>');
+            }
+            form.render();
+        }
+
+        function AreasProvinceSelected(tagId, areasVal, form, value) {
+            $("#" + tagId + "City").html('<option value="">市</option>');
+            var list = citys_data[value];
+            for (var i = 0; i < list.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(list[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "City").append('<option value="' + list[i].value + '"' + sel + '>' + list[i].text + '</option>');
+            }
+            $("#" + tagId + "Area").html('<option value="">县/区</option>');
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+
+        function AreasCitySelected(tagId, areasVal, form, value) {
+            $("#" + tagId + "Area").html('<option value="">县/区</option>');
+            var list = dists_data[value];
+            for (var i = 0; i < list.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(list[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "Area").append('<option value="' + list[i].value + '"' + sel + '>' + list[i].text + '</option>');
+            }
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+
+        function AreasAreaSelected(tagId, form) {
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+        function movePrev(obj, tagId) {
+            $(obj).parent().prev().insertAfter($(obj).parent());
+            checkPics(tagId);
+        }
+        function moveNext(obj, tagId) {
+            $(obj).parent().next().insertBefore($(obj).parent());
+            checkPics(tagId);
+        }
+        function deletePic(obj, tagId) {
+            $(obj).parent().remove();
+            checkPics(tagId);
+        }
+        function checkPics(tagId) {
+            var pics = "";
+            var texts = "";
+            $("#" + tagId + "Image div img").each(function (i) {
+                pics += $(this).attr("src").replace(osshost, '') + "|";
+            });
+            $("#" + tagId + "Image div input").each(function (i) {
+                texts += $(this).val() + "|";
+            });
+            if (pics == "") {
+                $("#" + tagId).val("");
+            } else {
+                pics = pics.substring(0, pics.length - 1);
+                texts = texts.substring(0, pics.length - 1);
+                $("#" + tagId).val(pics + "#cut#" + texts);
+            }
+        }
+        function checkBox(tagId) {
+            var text = "";
+            $("input[type=checkbox][name=" + tagId + "List]:checked").each(function (i) {
+                text += $(this).val() + ",";
+            });
+            $("#" + tagId).val(text);
+        }
+        function showBigPic(picpath) {
+            parent.layer.open({
+                type: 1,
+                title: false,
+                closeBtn: 0,
+                shadeClose: true,
+                area: ['auto', 'auto'],
+                content: '<img src="' + picpath + '" style="max-width:800px; max-height:800px;" />'
+            });
+        }
+
+
+        var tree;
+        var element;
+        var upload;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util'], function () {
+            var $ = layui.$
+                , form = layui.form
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , croppers = layui.croppers
+                , transfer = layui.transfer
+                , util = layui.util;
+            tree = layui.tree;
+            element = layui.element;
+            upload = layui.upload;
+
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+
+            //日期
+
+
+            //上传文件
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 11 - 10
Areas/Admin/Views/MainServer/SysTools/Team1Info.cshtml

@@ -81,16 +81,17 @@
                             </div>
                         </div>
                         <div class="layui-inline">
-                        <label class="layui-form-label">服务费金额</label>
-                        <div class="layui-input-inline">
-                            <select id="PosFeeSelect" name="PosFeeSelect" lay-search="">
-                                <option value="">全部...</option>
-                                <option value="0">0</option>
-                                <option value="99">99</option>
-                                <option value="199">199</option>
-                                <option value="249">249</option>
-                                <option value="299">299</option>
-                            </select>
+                            <label class="layui-form-label">服务费金额</label>
+                            <div class="layui-input-inline">
+                                <select id="PosFeeSelect" name="PosFeeSelect" lay-search="">
+                                    <option value="">全部...</option>
+                                    <option value="0">0</option>
+                                    <option value="99">99</option>
+                                    <option value="199">199</option>
+                                    <option value="249">249</option>
+                                    <option value="299">299</option>
+                                </select>
+                            </div>
                         </div>
                         <div class="layui-inline ml50">
                             <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">

+ 10 - 0
Areas/Admin/Views/MainServer/ToChargeBackRecord/Add.cshtml

@@ -54,6 +54,16 @@
                                     </select>
                                 </div>
                             </div> *@
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">待扣类别</label>
+                                <div class="layui-input-inline">
+                                    <select id="Kind" name="Kind" lay-search="">
+                                        <option value="0" selected="selected">创客预扣款</option>
+                                        <option value="1">盟主预扣款</option>
+                                        <option value="2">运营中心预扣款</option>
+                                    </select>
+                                </div>
+                            </div>
                             <div class="layui-form-item layui-form-text">
                                 <label class="layui-form-label">备注</label>
                                 <div class="layui-input-block">

+ 11 - 0
Areas/Admin/Views/MainServer/ToChargeBackRecord/Edit.cshtml

@@ -63,6 +63,17 @@
                                     <script>$("#ChargeType").val("@editData.ChargeType");</script>
                                 </div>
                             </div> *@
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">待扣类别</label>
+                                <div class="layui-input-inline">
+                                    <select id="Kind" name="Kind" lay-search="" readonly>
+                                        <option value="0">创客预扣款</option>
+                                        <option value="1">盟主预扣款</option>
+                                        <option value="2">运营中心预扣款</option>
+                                    </select>
+                                    <script>$("#Kind").val("@editData.Kind");</script>
+                                </div>
+                            </div>
                             <div class="layui-form-item layui-form-text">
                                 <label class="layui-form-label">备注</label>
                                 <div class="layui-input-block">

+ 12 - 1
Areas/Admin/Views/MainServer/ToChargeBackRecord/Index.cshtml

@@ -82,11 +82,22 @@
                             <select id="ChargeTypeSelect" name="ChargeTypeSelect" lay-search="">
                                 <option value="">全部...</option>
                                 <option value="124">过期机具扣款</option>
-                                <option value="1">创客预扣款</option>
+                                <option value="1">普通预扣款</option>
                                 <option value="2">分期预扣款</option>
                             </select>
                         </div>
                     </div>
+                     <div class="layui-inline">
+                        <label class="layui-form-label">待扣类别</label>
+                        <div class="layui-input-inline">
+                            <select id="KindSelect" name="KindSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">创客预扣款</option>
+                                <option value="1">盟主预扣款</option>
+                                <option value="2">运营中心预扣款</option>
+                            </select>
+                        </div>
+                    </div>
 
                     <div class="layui-inline ml50">
                         <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">

+ 1 - 1
Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Add.cshtml

@@ -9,7 +9,7 @@
 
 <head>
     <meta charset="utf-8">
-    <title>待扣款明细(增加)</title>
+    <title>分期扣款详情(增加)</title>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport"

+ 1 - 1
Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Edit.cshtml

@@ -13,7 +13,7 @@
 
 <head>
     <meta charset="utf-8">
-    <title>待扣款明细(修改)</title>
+    <title>分期扣款详情(修改)</title>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport"

+ 16 - 5
Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Index.cshtml

@@ -9,7 +9,7 @@
 
 <head>
     <meta charset="utf-8">
-    <title>待扣款明细</title>
+    <title>分期扣款详情</title>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport"
@@ -57,6 +57,17 @@
                             <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
                                 placeholder="" autocomplete="off">
                         </div>
+                    </div>
+                     <div class="layui-inline">
+                        <label class="layui-form-label">待扣类别</label>
+                        <div class="layui-input-inline">
+                            <select id="KindSelect" name="KindSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">创客预扣款</option>
+                                <option value="1">盟主预扣款</option>
+                                <option value="2">运营中心预扣款</option>
+                            </select>
+                        </div>
                     </div>
                     <div class="layui-inline">
                         <label class="layui-form-label">扣款状态</label>
@@ -82,17 +93,17 @@
 
             <div class="layui-card-body">
                 <div style="padding-bottom: 10px;">
-                    @if (RightInfo.Contains("," + right + "_add,"))
+                    @* @if (RightInfo.Contains("," + right + "_add,"))
                     {
                         <button class="layui-btn" data-type="add"><i
                             class="layui-icon layui-icon-add-1 layuiadmin-button-btn"></i>添加</button>
                     }
-                    @* @if (RightInfo.Contains("," + right + "_delete,"))
+                    @if (RightInfo.Contains("," + right + "_delete,"))
                     {
                         <button class="layui-btn" data-type="batchdel"><i
                             class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
-                    } *@
-                    @* @if (RightInfo.Contains("," + right + "_edit,"))
+                    }
+                    @if (RightInfo.Contains("," + right + "_edit,"))
                     {
                         <button class="layui-btn" data-type="ExportExcel"><i
                             class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>

+ 10 - 0
Areas/Admin/Views/MainServer/ToChargeByStage/Add.cshtml

@@ -51,6 +51,16 @@
                                 maxlength="20" lay-verify="required|" autocomplete="off" placeholder="请输入待扣金额">
                                 </div>
                                 </div> *@
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">待扣类别</label>
+                                <div class="layui-input-inline">
+                                    <select id="Kind" name="Kind" lay-search="">
+                                        <option value="0" selected="selected">创客预扣款</option>
+                                        <option value="1">盟主预扣款</option>
+                                        <option value="2">运营中心预扣款</option>
+                                    </select>
+                                </div>
+                            </div>
                             <div class="layui-form-item layui-form-text">
                                 <label class="layui-form-label">备注</label>
                                 <div class="layui-input-block">

+ 11 - 0
Areas/Admin/Views/MainServer/ToChargeByStage/Edit.cshtml

@@ -43,6 +43,17 @@
                                         placeholder="请输入创客">
                                 </div>
                             </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">待扣类别</label>
+                                <div class="layui-input-inline">
+                                    <select id="Kind" name="Kind" lay-search="" readonly>
+                                        <option value="0">创客预扣款</option>
+                                        <option value="1">盟主预扣款</option>
+                                        <option value="2">运营中心预扣款</option>
+                                    </select>
+                                    <script>$("#Kind").val("@editData.Kind");</script>
+                                </div>
+                            </div>
                             <div class="layui-form-item">
                                 <label class="layui-form-label">已扣金额</label>
                                 <div class="layui-input-inline">

+ 11 - 0
Areas/Admin/Views/MainServer/ToChargeByStage/Index.cshtml

@@ -67,6 +67,17 @@
                         <div class="layui-input-inline">
                             <input class="layui-input" type="text" name="SeoTitle" placeholder="" autocomplete="off">
                         </div>
+                    </div>
+                     <div class="layui-inline">
+                        <label class="layui-form-label">待扣类别</label>
+                        <div class="layui-input-inline">
+                            <select id="KindSelect" name="KindSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">创客预扣款</option>
+                                <option value="1">盟主预扣款</option>
+                                <option value="2">运营中心预扣款</option>
+                            </select>
+                        </div>
                     </div>
                     <div class="layui-inline">
                         <label class="layui-form-label">扣款状态</label>

+ 11 - 0
Areas/Admin/Views/OperateServer/SysAdminOperate/Add.cshtml

@@ -58,6 +58,17 @@
                                         lay-verify="required|" autocomplete="off" placeholder="请输入初始额度">
                                 </div>
                             </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">合伙人类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="Kind" name="Kind" lay-search="">
+                                        <option value="1" selected="selected">普通合伙人</option>
+                                        <option value="2">黄金合伙人</option>
+                                        <option value="3">钻石合伙人</option>
+                                        <option value="4">战略合伙人</option>
+                                    </select>
+                                </div>
+                            </div>
                             <div class="layui-form-item">
                                 <label class="layui-form-label">附件</label>
                                 <div class="layui-input-block">

+ 19 - 4
Areas/Admin/Views/OperateServer/SysAdminOperate/Edit.cshtml

@@ -6,6 +6,7 @@
 @{
     string RightInfo = ViewBag.RightInfo as string;
     string right = ViewBag.right as string;
+    string Kind = ViewBag.Kind as string;
 
 }
 <!DOCTYPE html>
@@ -65,6 +66,18 @@
                                             maxlength="50" lay-verify="required|" readonly autocomplete="off" placeholder="请输入初始额度">
                                     </div>
                                 </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">合伙人类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="Kind" name="Kind" lay-search="">
+                                        <option value="1">普通合伙人</option>
+                                        <option value="2">黄金合伙人</option>
+                                        <option value="3">钻石合伙人</option>
+                                        <option value="4">战略合伙人</option>
+                                    </select>
+                                    <script>$("#Kind").val("@ViewBag.Kind");</script>
+                                </div>
+                            </div>
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">附件</label>
                                     <div class="layui-input-block">
@@ -76,10 +89,12 @@
                                         <div style="margin-top:10px;" id="FilePathFile">
                                             @if (!string.IsNullOrEmpty(editData.FilePath))
                                             {
-                                                @editData.FilePath<a
-                                                style="margin-left:20px;text-decoration:underline;color:cornflowerblue;"
-                                                href="@(MySystem.OssHelper.Instance.SourceHost)@editData.FilePath"
-                                                target="_blank">点击查看附件</a>
+                                                @editData.FilePath
+
+                                                <a
+                                                    style="margin-left:20px;text-decoration:underline;color:cornflowerblue;"
+                                                    href="@(MySystem.OssHelper.Instance.SourceHost)@editData.FilePath"
+                                                    target="_blank">点击查看附件</a>
                                             }
                                         </div>
                                     </div>

+ 23 - 0
Models/LeaderRankWhite.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class LeaderRankWhite
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int Rank { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 1 - 0
Models/MachineChangeDetail.cs

@@ -30,5 +30,6 @@ namespace MySystem.Models
         public int BackProductType { get; set; }
         public int ChangeId { get; set; }
         public string ChangeNo { get; set; }
+        public ulong NoticeFlag { get; set; }
     }
 }

+ 1 - 0
Models/MachineUnBind.cs

@@ -22,5 +22,6 @@ namespace MySystem.Models
         public int BrandId { get; set; }
         public int UserId { get; set; }
         public string ApplyNo { get; set; }
+        public ulong NoticeFlag { get; set; }
     }
 }

+ 28 - 0
Models/MerchantDepositRecord.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class MerchantDepositRecord
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public ulong NoticeFlag { get; set; }
+        public string OrderId { get; set; }
+        public int UserId { get; set; }
+        public decimal DepositAmount { get; set; }
+        public string MerNo { get; set; }
+        public string SnNo { get; set; }
+        public string AgentNo { get; set; }
+    }
+}

+ 23 - 0
Models/OperatorRankWhite.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class OperatorRankWhite
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int Rank { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 1 - 0
Models/PosMerchantInfo.cs

@@ -45,5 +45,6 @@ namespace MySystem.Models
         public string MerchantNo { get; set; }
         public int StandardMonths { get; set; }
         public int StandardStatus { get; set; }
+        public ulong NoticeFlag { get; set; }
     }
 }

+ 1 - 0
Models/ToChargeBackRecord.cs

@@ -22,5 +22,6 @@ namespace MySystem.Models
         public decimal TotalAmount { get; set; }
         public int TimeNumber { get; set; }
         public DateTime? StartDate { get; set; }
+        public int Kind { get; set; }
     }
 }

+ 1 - 0
Models/ToChargeBackRecordSub.cs

@@ -19,5 +19,6 @@ namespace MySystem.Models
         public string Remark { get; set; }
         public decimal ChargeAmount { get; set; }
         public int ParentId { get; set; }
+        public int Kind { get; set; }
     }
 }

+ 1 - 0
Models/ToChargeByStage.cs

@@ -20,5 +20,6 @@ namespace MySystem.Models
         public string Remark { get; set; }
         public decimal ChargeAmount { get; set; }
         public int UserId { get; set; }
+        public int Kind { get; set; }
     }
 }

+ 2 - 0
Models/UserAccount.cs

@@ -46,5 +46,7 @@ namespace MySystem.Models
         public decimal PreTempAmountForBalance { get; set; }
         public decimal PreTempAmount { get; set; }
         public decimal ToChargeAmount { get; set; }
+        public decimal LeaderToChargeAmount { get; set; }
+        public decimal OperateToChargeAmount { get; set; }
     }
 }

+ 269 - 3
Models/WebCMSEntities.cs

@@ -80,6 +80,7 @@ namespace MySystem.Models
         public virtual DbSet<LeaderCompTmpBak> LeaderCompTmpBak { get; set; }
         public virtual DbSet<LeaderCompTradeStat> LeaderCompTradeStat { get; set; }
         public virtual DbSet<LeaderCompTradeStatBak> LeaderCompTradeStatBak { get; set; }
+        public virtual DbSet<LeaderRankWhite> LeaderRankWhite { get; set; }
         public virtual DbSet<LeaderReconRecord> LeaderReconRecord { get; set; }
         public virtual DbSet<LeaderReserveRecord> LeaderReserveRecord { get; set; }
         public virtual DbSet<Leaders> Leaders { get; set; }
@@ -100,6 +101,7 @@ namespace MySystem.Models
         public virtual DbSet<MerchantClass> MerchantClass { get; set; }
         public virtual DbSet<MerchantCol> MerchantCol { get; set; }
         public virtual DbSet<MerchantComment> MerchantComment { get; set; }
+        public virtual DbSet<MerchantDepositRecord> MerchantDepositRecord { get; set; }
         public virtual DbSet<MerchantDepositReturns> MerchantDepositReturns { get; set; }
         public virtual DbSet<MerchantDepositSet> MerchantDepositSet { get; set; }
         public virtual DbSet<MerchantForCode> MerchantForCode { get; set; }
@@ -128,6 +130,7 @@ namespace MySystem.Models
         public virtual DbSet<OpenSnSnapshot> OpenSnSnapshot { get; set; }
         public virtual DbSet<OperateLog> OperateLog { get; set; }
         public virtual DbSet<OperateRightList> OperateRightList { get; set; }
+        public virtual DbSet<OperatorRankWhite> OperatorRankWhite { get; set; }
         public virtual DbSet<OrderForNo> OrderForNo { get; set; }
         public virtual DbSet<OrderProduct> OrderProduct { get; set; }
         public virtual DbSet<OrderRefund> OrderRefund { get; set; }
@@ -296,7 +299,6 @@ namespace MySystem.Models
         {
             modelBuilder.Entity<ActiveReward>(entity =>
             {
-
                 entity.HasIndex(e => e.KqSnNo)
                     .HasName("ActiveRewardIndex");
 
@@ -1044,8 +1046,6 @@ namespace MySystem.Models
 
             modelBuilder.Entity<AppVersion>(entity =>
             {
-                entity.HasComment("App版本管理");
-
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
                 entity.Property(e => e.CancelText)
@@ -4966,6 +4966,72 @@ namespace MySystem.Models
                     .HasComment("版本号");
             });
 
+            modelBuilder.Entity<LeaderRankWhite>(entity =>
+            {
+                entity.HasComment("盟主预设职级");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.Rank)
+                    .HasColumnType("int(11)")
+                    .HasComment("当前等级类型");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .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.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("用户");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<LeaderReconRecord>(entity =>
             {
                 entity.HasComment("盟主对账记录");
@@ -5605,6 +5671,11 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.NoticeFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("推送标记");
+
                 entity.Property(e => e.OutProductName)
                     .HasColumnType("varchar(32)")
                     .HasCharSet("utf8")
@@ -5910,6 +5981,11 @@ namespace MySystem.Models
 
                 entity.Property(e => e.MerchantId).HasColumnType("int(11)");
 
+                entity.Property(e => e.NoticeFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("推送标记");
+
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.SeoDescription)
@@ -6754,6 +6830,105 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<MerchantDepositRecord>(entity =>
+            {
+                entity.HasComment("商户押金记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.AgentNo)
+                    .IsRequired()
+                    .HasColumnType("varchar(30)")
+                    .HasComment("代理商号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.DepositAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("押金金额");
+
+                entity.Property(e => e.MerNo)
+                    .IsRequired()
+                    .HasColumnType("varchar(50)")
+                    .HasComment("商户编号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.NoticeFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("推送标记");
+
+                entity.Property(e => e.OrderId)
+                    .IsRequired()
+                    .HasColumnType("varchar(50)")
+                    .HasComment("订单流水号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SnNo)
+                    .IsRequired()
+                    .HasColumnType("varchar(50)")
+                    .HasComment("机具SN")
+                    .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.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<MerchantDepositReturns>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -8721,6 +8896,72 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<OperatorRankWhite>(entity =>
+            {
+                entity.HasComment("运营中心预设职级");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.Rank)
+                    .HasColumnType("int(11)")
+                    .HasComment("当前等级类型");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .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.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("用户");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<OrderForNo>(entity =>
             {
                 entity.HasKey(e => e.OrderNo)
@@ -10019,6 +10260,11 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.NoticeFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("推送标记");
+
                 entity.Property(e => e.Province)
                     .HasColumnType("varchar(32)")
                     .HasCharSet("utf8")
@@ -16062,6 +16308,10 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("待扣类别");
+
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.Remark)
@@ -16107,6 +16357,10 @@ namespace MySystem.Models
 
                 entity.Property(e => e.CreateDate).HasColumnType("datetime");
 
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("待扣类别");
+
                 entity.Property(e => e.ParentId).HasColumnType("int(11)");
 
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
@@ -16150,6 +16404,10 @@ namespace MySystem.Models
 
                 entity.Property(e => e.CreateDate).HasColumnType("datetime");
 
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("待扣类别");
+
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.Remark)
@@ -16678,8 +16936,16 @@ namespace MySystem.Models
 
                 entity.Property(e => e.LeaderReserve).HasColumnType("decimal(18,2)");
 
+                entity.Property(e => e.LeaderToChargeAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("盟主待扣金额");
+
                 entity.Property(e => e.LockStatus).HasColumnType("int(11)");
 
+                entity.Property(e => e.OperateToChargeAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("运营中心待扣金额");
+
                 entity.Property(e => e.PreTempAmount).HasColumnType("decimal(18,2)");
 
                 entity.Property(e => e.PreTempAmountForBalance).HasColumnType("decimal(18,2)");

+ 34 - 9
wwwroot/layuiadmin/modules_main/Orders_Admin.js

@@ -584,15 +584,40 @@ layui.config({
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/Orders/ExportsExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/Orders/ExportsExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/Orders/QuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         }
         , ExportExcel: function () {

+ 35 - 10
wwwroot/layuiadmin/modules_main/PreCardAmountRecord_Admin.js

@@ -341,16 +341,41 @@ layui.config({
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/PreAmountRecord/ExportsExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                    window.location.reload();
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/PreAmountRecord/ExportsExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //         window.location.reload();
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/PreAmountRecord/QuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         }
         , BatchSetting: function () {

+ 18 - 0
wwwroot/layuiadmin/modules_main/PreSendStockDetail_Admin.js

@@ -139,6 +139,7 @@ layui.config({
             , { field: 'FromStoreIdStoreName', width: 200, title: '出货仓库名称', sort: true }
             , { field: 'CancelFlagName', width: 200, title: '撤回标记', sort: true }
             , { field: 'CancelDate', width: 200, title: '撤回时间', sort: true }
+            , { field: 'WithholdFlagName', width: 200, title: '预扣标记', sort: true }
             // , { field: 'Sort', fixed: 'right', title: '排序', width: 80, edit: 'text' }s
             , { title: '操作', width: 180, align: 'center', fixed: 'right', toolbar: '#table-list-tools' }
         ]]
@@ -174,6 +175,23 @@ layui.config({
                     }
                 });
             });
+        }
+        else if (obj.event === 'Cancle') {
+            var index = layer.confirm('确定要撤回吗?撤回后不能恢复!', function (index) {
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/PreSendStockDetail/Cancle?r=" + Math.random(1),
+                    data: "Id=" + data.Id,
+                    dataType: "text",
+                    success: function (data) {
+                        if (data == "success") {
+                            layer.close(index);
+                        } else {
+                            parent.layer.msg(data);
+                        }
+                    }
+                });
+            });
         } else if (obj.event === 'edit') {
             var tr = $(obj.tr);
             var perContent = layer.open({

+ 34 - 9
wwwroot/layuiadmin/modules_main/StoreBalance_Admin.js

@@ -340,15 +340,40 @@ $('#CreateDate').val(value);
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/StoreBalance/ExportExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/StoreBalance/ExportExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/StoreBalance/QuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         }
         , Open: function () {

+ 35 - 10
wwwroot/layuiadmin/modules_main/StoreHouseCardAmountRecord_Admin.js

@@ -341,16 +341,41 @@ layui.config({
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/StoreHouseAmountRecord/ExportsExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                    window.location.reload();
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/StoreHouseAmountRecord/ExportsExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //         window.location.reload();
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/StoreHouseAmountRecord/QuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         }
         , BatchSetting: function () {

+ 6 - 0
wwwroot/layuiadmin/modules_main/Team1Info_Admin.js

@@ -105,9 +105,15 @@ layui.config({
             , { field: 'wname', width: 200, title: '伙伴名称', sort: true }
             , { field: 'Name', width: 200, title: '机具品牌', sort: true }
             , { field: 'PosSn', width: 200, title: '机具Sn', sort: true }
+            , { field: 'merchantname', width: 200, title: '商户姓名', sort: true }
             , { field: 'SeoKeyword', width: 200, title: '服务费', sort: true }
             , { field: 'BindingTime', width: 200, title: '绑定时间', sort: true }
             , { field: 'ActivationTime', width: 200, title: '激活时间', sort: true }
+            , { field: 'amount', width: 200, title: '返现金额', sort: true }
+            , { field: 'maxdate', width: 200, title: '返现时间', sort: true }
+            , { field: 'CreditRewardAmount', width: 200, title: '开机奖', sort: true }
+            , { field: 'opdate', width: 200, title: '开机奖发放时间', sort: true }
+            , { field: 'info', width: 200, title: '发放对象', sort: true }
         ]]
         , where: {
         }

+ 1 - 0
wwwroot/layuiadmin/modules_main/ToChargeBackRecordSub_Admin.js

@@ -93,6 +93,7 @@ layui.config({
             { type: 'checkbox', fixed: 'left' }
             , { field: 'Id', fixed: 'left', title: 'ID', width: 80, sort: true, unresize: true }
             , { field: 'CreateDate', width: 200, title: '创建时间', sort: true }
+            , { field: 'KindName', width: 200, title: '扣款类别', sort: true }
             , { field: 'ChargeAmount', width: 200, title: '待扣金额', sort: true }
             , { field: 'StartDate', width: 200, title: '扣款开始时间', sort: true }
             , { field: 'TimeNumber', width: 200, title: '期数', sort: true }

+ 1 - 0
wwwroot/layuiadmin/modules_main/ToChargeBackRecord_Admin.js

@@ -155,6 +155,7 @@ layui.config({
             , { field: 'CreateDate', width: 200, title: '创建时间', sort: true }
             , { field: 'ChargeAmount', width: 200, title: '扣款金额', sort: true }
             , { field: 'ChargeTypeName', width: 200, title: '扣款类型', sort: true }
+            , { field: 'KindName', width: 200, title: '扣款类别', sort: true }
             , { field: 'UpdateDate', width: 200, title: '扣款/更新时间', sort: true }
             , { field: 'StatusName', width: 200, title: '扣款状态', sort: true }
             , { field: 'Remark', width: 200, title: '机具Sn', sort: true }

+ 1 - 0
wwwroot/layuiadmin/modules_main/ToChargeByStage_Admin.js

@@ -95,6 +95,7 @@ layui.config({
             , { field: 'Id', fixed: 'left', title: 'ID', width: 80, sort: true, unresize: true }
             , { field: 'CreateDate', width: 200, title: '创建时间', sort: true }
             , { field: 'StatusName', width: 200, title: '扣款状态', sort: true }
+            , { field: 'KindName', width: 200, title: '扣款类别', sort: true }
             , { field: 'MakerCode', width: 200, title: '创客编号', sort: true }
             , { field: 'MakerName', width: 200, title: '创客姓名', sort: true }
             , { field: 'MakerMobile', width: 200, title: '创客手机号', sort: true }

+ 34 - 9
wwwroot/layuiadmin/modules_main/UserAccountRecord_Admin.js

@@ -385,15 +385,40 @@ layui.config({
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/UserAccountRecord/ExportExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/UserAccountRecord/ExportExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/UserAccountRecord/QuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         }
         , Open: function () {

+ 34 - 9
wwwroot/layuiadmin/modules_main/UserCashLeaderRecord_Admin.js

@@ -550,15 +550,40 @@ layui.config({
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/UserCashRecord/LeaderExportExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/UserCashRecord/LeaderExportExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/UserCashRecord/LeaderQuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         },
         Open: function () {

+ 34 - 9
wwwroot/layuiadmin/modules_main/UserCashRecord_Admin.js

@@ -581,15 +581,40 @@ layui.config({
             $(".layuiadmin-card-header-auto select").each(function (i) {
                 userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
             });
-            $.ajax({
-                type: "GET",
-                url: "/Admin/UserCashRecord/ExportExcel?r=" + Math.random(1),
-                data: userdata,
-                dataType: "json",
-                success: function (data) {
-                    data.Obj.unshift(data.Fields);
-                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
-                }
+            // $.ajax({
+            //     type: "GET",
+            //     url: "/Admin/UserCashRecord/ExportExcel?r=" + Math.random(1),
+            //     data: userdata,
+            //     dataType: "json",
+            //     success: function (data) {
+            //         data.Obj.unshift(data.Fields);
+            //         excel.exportExcel(data.Obj, data.Info, 'xlsx');
+            //     }
+            // });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/UserCashRecord/UserQuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
             });
         },
         BatchSetting: function () {

+ 4 - 0
wwwroot/layuiadmin/modules_operate/SysAdminOperate_Admin.js

@@ -127,6 +127,10 @@ layui.config({
                 field: 'MakerName',
                 title: '所属真实姓名',
                 sort: true
+            }, {
+                field: 'Kind',
+                title: '合伙人类型',
+                sort: true
             }, {
                 field: 'CreateDate',
                 title: '创建时间',

BIN
wwwroot/users/机具费率调整模版.xlsx


BIN
wwwroot/users/预扣款模版.xlsx