Przeglądaj źródła

总后台初步完成

DuGuYang 3 lat temu
rodzic
commit
9734d9aa6a
100 zmienionych plików z 17672 dodań i 298 usunięć
  1. 249 0
      AppStart/OpExcelHelper.cs
  2. 3 0
      AppStart/PublicFunction.cs
  3. 5 0
      AppStart/TemplateViewLocationExpander.cs
  4. 2 0
      Areas/Admin/Controllers/BsServer/BaseController.cs
  5. 385 0
      Areas/Admin/Controllers/MainServer/LeadersController.cs
  6. 39 1
      Areas/Admin/Controllers/MainServer/PosCouponsController.cs
  7. 9 1
      Areas/Admin/Controllers/MainServer/PosMachinesTwoController.cs
  8. 200 6
      Areas/Admin/Controllers/MainServer/StoreHouseController.cs
  9. 663 0
      Areas/Admin/Controllers/OperateServer/PosCouponsLeaderController.cs
  10. 1462 0
      Areas/Admin/Controllers/OperateServer/StoreHouseOperateController.cs
  11. 832 0
      Areas/Admin/Controllers/OperateServer/StoreMachineApplyOperateController.cs
  12. 659 0
      Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs
  13. 312 0
      Areas/Admin/Controllers/OperateServer/SysAdminRoleOperateController.cs
  14. 384 0
      Areas/Admin/Controllers/OperateServer/SystemSetOperateController.cs
  15. 482 0
      Areas/Admin/Controllers/OperateServer/UserAccountRecordOperateController.cs
  16. 1086 0
      Areas/Admin/Controllers/OperateServer/UserCashRecordOperateController.cs
  17. 257 0
      Areas/Admin/Views/MainServer/Leaders/Add.cshtml
  18. 263 0
      Areas/Admin/Views/MainServer/Leaders/Edit.cshtml
  19. 152 0
      Areas/Admin/Views/MainServer/Leaders/Index.cshtml
  20. 16 0
      Areas/Admin/Views/MainServer/PosCoupons/Index.cshtml
  21. 10 0
      Areas/Admin/Views/MainServer/PosMachinesTwo/Index.cshtml
  22. 215 146
      Areas/Admin/Views/MainServer/StoreHouse/Add.cshtml
  23. 216 0
      Areas/Admin/Views/MainServer/StoreHouse/BatchCancle.cshtml
  24. 216 0
      Areas/Admin/Views/MainServer/StoreHouse/BatchSetting.cshtml
  25. 193 141
      Areas/Admin/Views/MainServer/StoreHouse/Edit.cshtml
  26. 35 3
      Areas/Admin/Views/MainServer/StoreHouse/Index.cshtml
  27. 203 0
      Areas/Admin/Views/OperateServer/PosCouponsLeader/Add.cshtml
  28. 216 0
      Areas/Admin/Views/OperateServer/PosCouponsLeader/BatchCancle.cshtml
  29. 216 0
      Areas/Admin/Views/OperateServer/PosCouponsLeader/BatchSetting.cshtml
  30. 205 0
      Areas/Admin/Views/OperateServer/PosCouponsLeader/Edit.cshtml
  31. 185 0
      Areas/Admin/Views/OperateServer/PosCouponsLeader/Index.cshtml
  32. 159 0
      Areas/Admin/Views/OperateServer/PosCouponsLeader/SJQ.cshtml
  33. 356 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/Add.cshtml
  34. 216 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/BatchCancle.cshtml
  35. 216 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/BatchSetting.cshtml
  36. 342 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/Edit.cshtml
  37. 355 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/Edits.cshtml
  38. 144 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/Import.cshtml
  39. 190 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/Index.cshtml
  40. 99 0
      Areas/Admin/Views/OperateServer/StoreHouseOperate/Stat.cshtml
  41. 274 0
      Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/Add.cshtml
  42. 217 0
      Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/AuditSend.cshtml
  43. 257 0
      Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/Edit.cshtml
  44. 188 0
      Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/Index.cshtml
  45. 322 0
      Areas/Admin/Views/OperateServer/SysAdminOperate/Add.cshtml
  46. 289 0
      Areas/Admin/Views/OperateServer/SysAdminOperate/Edit.cshtml
  47. 115 0
      Areas/Admin/Views/OperateServer/SysAdminOperate/EditAmt.cshtml
  48. 117 0
      Areas/Admin/Views/OperateServer/SysAdminOperate/EditBalance.cshtml
  49. 139 0
      Areas/Admin/Views/OperateServer/SysAdminOperate/Index.cshtml
  50. 229 0
      Areas/Admin/Views/OperateServer/SysAdminOperateRole/Add.cshtml
  51. 236 0
      Areas/Admin/Views/OperateServer/SysAdminOperateRole/Edit.cshtml
  52. 98 0
      Areas/Admin/Views/OperateServer/SysAdminOperateRole/Index.cshtml
  53. 291 0
      Areas/Admin/Views/OperateServer/SystemSetOperate/Add.cshtml
  54. 178 0
      Areas/Admin/Views/OperateServer/SystemSetOperate/AppStart.cshtml
  55. 350 0
      Areas/Admin/Views/OperateServer/SystemSetOperate/Edit.cshtml
  56. 104 0
      Areas/Admin/Views/OperateServer/SystemSetOperate/Index.cshtml
  57. 203 0
      Areas/Admin/Views/OperateServer/UserAccountRecordOperate/Add.cshtml
  58. 205 0
      Areas/Admin/Views/OperateServer/UserAccountRecordOperate/Edit.cshtml
  59. 142 0
      Areas/Admin/Views/OperateServer/UserAccountRecordOperate/Index.cshtml
  60. 209 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/Add.cshtml
  61. 211 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/Edit.cshtml
  62. 147 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/HelpProfitIndex.cshtml
  63. 134 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/Import.cshtml
  64. 167 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/Index.cshtml
  65. 142 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/LeaderIndex.cshtml
  66. 107 0
      Areas/Admin/Views/OperateServer/UserCashRecordOperate/Reduce.cshtml
  67. 23 0
      Models/HelpProfitAmountSummary.cs
  68. 22 0
      Models/HelpProfitMerTradeMonthSummay.cs
  69. 20 0
      Models/Leaders.cs
  70. 1 0
      Models/MachineApply.cs
  71. 1 0
      Models/PosCoupons.cs
  72. 1 0
      Models/PosMachinesTwo.cs
  73. 47 0
      Models/PosMerchantInfoBak.cs
  74. 38 0
      Models/ProfitRecordCopy1.cs
  75. 2 0
      Models/ProfitRewardExport.cs
  76. 6 0
      Models/ProfitRewardRecord.cs
  77. 1 0
      Models/StoreBalance.cs
  78. 1 0
      Models/StoreChangeHistory.cs
  79. 4 0
      Models/StoreHouse.cs
  80. 1 0
      Models/StoreStockChange.cs
  81. 35 0
      Models/SubsidyRecordCopy1.cs
  82. 472 0
      Models/WebCMSEntities.cs
  83. 25 0
      OpModels/ActMerDaySummary.cs
  84. 25 0
      OpModels/ActMerMonthSummary.cs
  85. 26 0
      OpModels/Advertisment.cs
  86. 27 0
      OpModels/AmountRecord.cs
  87. 30 0
      OpModels/Col.cs
  88. 26 0
      OpModels/MachineApplyOpRecord.cs
  89. 11 0
      OpModels/MenuRight.cs
  90. 28 0
      OpModels/MsgBlackList.cs
  91. 34 0
      OpModels/MsgPersonal.cs
  92. 37 0
      OpModels/MsgPlacard.cs
  93. 25 0
      OpModels/MsgPlacardRead.cs
  94. 31 0
      OpModels/MsgPush.cs
  95. 38 0
      OpModels/MsgSms.cs
  96. 27 0
      OpModels/MsgSmsSet.cs
  97. 29 0
      OpModels/MsgTemplate.cs
  98. 11 0
      OpModels/OperateForCode.cs
  99. 26 0
      OpModels/OperateLog.cs
  100. 23 0
      OpModels/OperateRightList.cs

+ 249 - 0
AppStart/OpExcelHelper.cs

@@ -0,0 +1,249 @@
+using System;
+using System.Threading;
+using System.Linq;
+using System.Data;
+using Library;
+using MySystem.OpModels;
+using System.Collections.Generic;
+
+namespace MySystem
+{
+    public class OpExcelHelper
+    {
+        public readonly static OpExcelHelper Instance = new OpExcelHelper();
+        private OpExcelHelper()
+        {
+        }
+
+        public void Start()//启动
+        {
+            Thread thread = new Thread(ImportPostDo);
+            thread.IsBackground = true;
+            thread.Start();
+        }
+
+        public void ImportPostDo()
+        {
+            while (true)
+            {
+                string data = RedisDbconn.Instance.RPop<string>("ExcelImportV3");
+                if (!string.IsNullOrEmpty(data))
+                {
+                    string[] dataList = data.Split("#cut#");
+                    string _ExcelPath = dataList[0];
+                    string _Kind = dataList[1];
+                    string checkKey = dataList[2];
+                    string Operator = dataList[3]; // 操作人
+                    int SuccessCount = 0;
+                    int DoCount = 0;
+                    string FullExcelPath = function.getPath(_ExcelPath);
+                    FullExcelPath = FullExcelPath.Replace("//", "/");
+                    DataTable list = new PublicFunction().ExcelToDataTable(FullExcelPath);
+                    int TotalCount = list.Rows.Count;
+                    while (DoCount < list.Rows.Count)
+                    {
+                        WebCMSEntities db = new WebCMSEntities();
+                        if (_Kind == "OpUserCashRecord")
+                        {
+                            using (var tran = db.Database.BeginTransaction())
+                            {
+                                try
+                                {
+                                    int Size = 100;
+                                    if (list.Rows.Count - DoCount < 100)
+                                    {
+                                        Size = list.Rows.Count - DoCount;
+                                    }
+                                    for (int i = DoCount; i < DoCount + Size; i++)
+                                    {
+                                        DataRow dr = list.Rows[i];
+                                        string CashOrderNo = dr[2].ToString(); // 提现单号
+                                        decimal Amount = decimal.Parse(function.CheckNum(dr[3].ToString())); // 发佣金额
+                                        int Status = int.Parse(function.CheckInt(dr[4].ToString())); // 提现状态
+                                        string Remark = dr[5].ToString(); // 备注
+                                        CashOrderNo = CashOrderNo.Replace(" ", "");
+                                        UserCashRecord edit = db.UserCashRecord.FirstOrDefault(m => m.CashOrderNo == CashOrderNo && m.ActualTradeAmount == Amount && m.Status == 0);
+                                        if (edit != null)
+                                        {
+                                            if (edit.TradeType == 4)
+                                            {
+                                                edit.Status = Status;
+                                                edit.Remark = Remark;
+                                                edit.UpdateMan = Operator;
+                                                if (Status == 2)
+                                                {
+                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == edit.UserId);
+                                                    if (account != null)
+                                                    {
+                                                        decimal TradeAmount = edit.TradeAmount;
+                                                        decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                                                        decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                                                        decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                                                        account.BalanceAmount += TradeAmount;
+                                                        account.FreezeAmount -= TradeAmount;
+                                                        decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                                                        decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                                                        decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        {
+                                                            CreateDate = DateTime.Now,
+                                                            UpdateDate = DateTime.Now,
+                                                            UserId = edit.UserId, //创客
+                                                            ChangeType = 6, //变动类型
+                                                            ProductType = 99, //产品类型
+                                                            ChangeAmount = TradeAmount, //变更金额
+                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                        });
+                                                        db.SaveChanges();
+                                                        RedisDbconn.Instance.Set("OpUserAccount:" + edit.UserId, account);
+                                                    }
+                                                }
+                                                db.SaveChanges();
+                                                RedisDbconn.Instance.Clear("OpUserCashRecord:" + edit.Id);
+                                                SuccessCount += 1;
+                                                RedisDbconn.Instance.Set("OpCheckImport:" + checkKey, SuccessCount + " / " + TotalCount);
+                                            }
+                                            else
+                                            {
+                                                edit.Status = Status;
+                                                edit.Remark = Remark;
+                                                edit.UpdateMan = Operator;
+                                                if (Status == 1)
+                                                {
+                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == edit.UserId);
+                                                    if (account != null)
+                                                    {
+                                                        account.QueryCount = 1;
+                                                        decimal TradeAmount = edit.TradeAmount;
+                                                        decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                                                        decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                                                        decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                                                        account.WithdrawAmount += edit.TradeAmount;
+                                                        account.FreezeAmount -= edit.TradeAmount;
+                                                        decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                                                        decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                                                        decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        {
+                                                            CreateDate = DateTime.Now,
+                                                            UpdateDate = DateTime.Now,
+                                                            UserId = edit.UserId, //创客
+                                                            ChangeType = 3, //变动类型
+                                                            ProductType = 99, //产品类型
+                                                            ChangeAmount = edit.ActualTradeAmount, //变更金额
+                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                        });
+                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        {
+                                                            CreateDate = DateTime.Now,
+                                                            UpdateDate = DateTime.Now,
+                                                            UserId = edit.UserId, //创客
+                                                            ChangeType = 4, //变动类型
+                                                            ProductType = 99, //产品类型
+                                                            ChangeAmount = edit.TradeFee, //变更金额
+                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                        });
+                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        {
+                                                            CreateDate = DateTime.Now,
+                                                            UpdateDate = DateTime.Now,
+                                                            UserId = edit.UserId, //创客
+                                                            ChangeType = 5, //变动类型
+                                                            ProductType = 99, //产品类型
+                                                            ChangeAmount = edit.ManageFee, //变更金额
+                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                        });
+                                                        db.SaveChanges();
+                                                        RedisDbconn.Instance.Set("OpUserAccount:" + edit.UserId, account);
+                                                    }
+                                                }
+                                                else if (Status == 2)
+                                                {
+                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == edit.UserId);
+                                                    if (account != null)
+                                                    {
+                                                        decimal TradeAmount = edit.TradeAmount;
+                                                        decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                                                        decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                                                        decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                                                        account.BalanceAmount += TradeAmount;
+                                                        account.FreezeAmount -= TradeAmount;
+                                                        decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                                                        decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                                                        decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                                                        db.UserAccountRecord.Add(new UserAccountRecord()
+                                                        {
+                                                            CreateDate = DateTime.Now,
+                                                            UpdateDate = DateTime.Now,
+                                                            UserId = edit.UserId, //创客
+                                                            ChangeType = 6, //变动类型
+                                                            ProductType = 99, //产品类型
+                                                            ChangeAmount = TradeAmount, //变更金额
+                                                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                                                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                                                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                                                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                                                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                                                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                                                        });
+                                                        db.SaveChanges();
+                                                        RedisDbconn.Instance.Set("OpUserAccount:" + edit.UserId, account);
+                                                    }
+                                                }
+                                                db.SaveChanges();
+                                                RedisDbconn.Instance.Clear("OpUserCashRecord:" + edit.Id);
+                                                SuccessCount += 1;
+                                                RedisDbconn.Instance.Set("OpCheckImport:" + checkKey, SuccessCount + " / " + TotalCount);
+                                            }
+
+                                        }
+                                    }
+                                    DoCount += Size;
+
+                                    db.SaveChanges();
+                                    tran.Commit();
+                                    RedisDbconn.Instance.Set("OpCheckImport:" + checkKey, "success|" + SuccessCount);
+                                    RedisDbconn.Instance.SetExpire("OpCheckImport:" + checkKey, 60000);
+                                }
+                                catch (Exception ex)
+                                {
+                                    DoCount = list.Rows.Count;
+                                    tran.Rollback();
+                                    ErrorMsg msg = new ErrorMsg()
+                                    {
+                                        Time = DateTime.Now,
+                                        ErrorContent = ex.ToString(),
+                                    };
+                                    function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(msg), "导入Excel文件异常");
+                                }
+                            }
+                        }
+                        
+                        db.Dispose();
+                    }
+                }
+                // return "success|" + SuccessCount;
+            }
+        }
+    }
+}

+ 3 - 0
AppStart/PublicFunction.cs

@@ -15,6 +15,7 @@ namespace MySystem
     {
         public WebCMSEntities db = new WebCMSEntities();
         public BsModels.WebCMSEntities bsdb = new BsModels.WebCMSEntities();
+        public OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
 
         #region 获取权限JSON数据
 
@@ -452,6 +453,8 @@ namespace MySystem
         public static Dictionary<string, Dictionary<string, string>> BsTables = new Dictionary<string, Dictionary<string, string>>();
         public static Dictionary<string, Dictionary<string, string>> JobTables = new Dictionary<string, Dictionary<string, string>>();
         public static Dictionary<string, Dictionary<string, string>> SpTables = new Dictionary<string, Dictionary<string, string>>();
+        public static Dictionary<string, Dictionary<string, string>> OpTables = new Dictionary<string, Dictionary<string, string>>();//运营中心数据模型
+
         #endregion
     }
 }

+ 5 - 0
AppStart/TemplateViewLocationExpander.cs

@@ -9,12 +9,17 @@ namespace MySystem
     {
         public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations)
         {
+            /// <summary>
+            /// view文件路径
+            /// </summary>
+            /// <value></value>
             string[] locations = {
                 "/Areas/Admin/Views/BsServer/{1}/{0}.cshtml",
                 "/Areas/Admin/Views/MainServer/{1}/{0}.cshtml",
                 "/Areas/Admin/Views/JobServer/{1}/{0}.cshtml",
                 "/Areas/Admin/Views/CashServer/{1}/{0}.cshtml",
                 "/Areas/Admin/Views/SpServer/{1}/{0}.cshtml",
+                "/Areas/Admin/Views/OperateServer/{1}/{0}.cshtml",
             };
             return locations.Union(viewLocations);
         }

+ 2 - 0
Areas/Admin/Controllers/BsServer/BaseController.cs

@@ -26,6 +26,8 @@ namespace MySystem.Areas.Admin.Controllers
         public BsModels.WebCMSEntities bsdb = new BsModels.WebCMSEntities();
         public SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
         public CashModels.WebCMSEntities cashdb = new CashModels.WebCMSEntities();
+        public OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
+
         public string Host = Library.ConfigurationManager.AppSettings["Host"].ToString();
 
         public string ShareHost = "";

+ 385 - 0
Areas/Admin/Controllers/MainServer/LeadersController.cs

@@ -0,0 +1,385 @@
+/*
+ * 盟主管理
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.Models;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class LeadersController : BaseController
+    {
+        public LeadersController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+        }
+
+        #region 盟主管理列表
+
+        /// <summary>
+        /// 根据条件查询盟主管理列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(Leaders data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询盟主管理列表
+
+        /// <summary>
+        /// 盟主管理列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(Leaders data, string UserIdMakerCode, string LeaderLevelSelect, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("CreateDate", "3"); //时间
+
+
+            string condition = " and Status>-1";
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UsersForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //盟主等级
+            if (!string.IsNullOrEmpty(LeaderLevelSelect))
+            {
+                condition += " and LeaderLevel=" + LeaderLevelSelect;
+            }
+            //创建时间
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Leaders", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //创客
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = userid_Users.MakerCode;
+                dic["UserIdRealName"] = userid_Users.RealName;
+                dic.Remove("UserId");
+                //盟主等级
+                int LeaderLevel = int.Parse(dic["LeaderLevel"].ToString());
+                if (LeaderLevel == 1) dic["LeaderLevel"] = "小盟主";
+                if (LeaderLevel == 2) dic["LeaderLevel"] = "大盟主";
+                if (LeaderLevel == 0) dic["LeaderLevel"] = "";
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加盟主管理
+
+        /// <summary>
+        /// 增加或修改盟主管理信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加盟主管理
+
+        /// <summary>
+        /// 增加或修改盟主管理信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(Leaders data, string MakerCode)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var user = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId) ?? new Users();
+                if (user.Id > 0)
+                {
+                    user.LeaderLevel = data.LeaderLevel;
+                    Fields.Add("UserId", userForMakerCode.UserId); //创客
+                    Fields.Add("LeaderLevel", data.LeaderLevel); //盟主等级
+                    Fields.Add("SeoKeyword", data.SeoKeyword);//附件
+                    int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("Leaders", Fields, 0);
+                    AddSysLog(data.Id.ToString(), "Leaders", "add");
+                    db.SaveChanges();
+                }
+            }
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改盟主管理
+
+        /// <summary>
+        /// 增加或修改盟主管理信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            Leaders editData = db.Leaders.FirstOrDefault(m => m.Id == Id) ?? new Leaders();
+            Users editDatas = db.Users.FirstOrDefault(m => m.Id == editData.UserId) ?? new Users();
+            ViewBag.data = editData;
+            ViewBag.datas = editDatas;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改盟主管理
+
+        /// <summary>
+        /// 增加或修改盟主管理信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(Leaders data, string MakerCode)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var user = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId) ?? new Users();
+                if (user.Id > 0)
+                {
+                    user.LeaderLevel = data.LeaderLevel;
+                    Fields.Add("UserId", userForMakerCode.UserId); //创客
+                    Fields.Add("LeaderLevel", data.LeaderLevel); //盟主等级
+                    Fields.Add("SeoKeyword", data.SeoKeyword);
+                    new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Leaders", Fields, data.Id);
+                    var leader = db.Leaders.FirstOrDefault(m => m.Id == data.Id) ?? new Leaders();
+                    if (leader.Id > 0)
+                    {
+                        leader.CreateDate = leader.CreateDate;
+                    }
+                    AddSysLog(data.Id.ToString(), "Leaders", "update");
+                    db.SaveChanges();
+                }
+            }
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除盟主管理信息
+
+        /// <summary>
+        /// 删除盟主管理信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "Leaders", "del");
+            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("Leaders", Fields, id);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "Leaders", "open");
+            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("Leaders", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "Leaders", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Leaders", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("Leaders", Sort, Id);
+
+            AddSysLog(Id.ToString(), "Leaders", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                db.Leaders.Add(new Leaders()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                db.SaveChanges();
+            }
+            AddSysLog("0", "Leaders", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(Leaders data, string UserIdMakerCode, string UserIdRealName, string LeaderLevelSelect)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CreateDate", "3"); //时间
+
+
+            string condition = " and Status>-1";
+            //创客创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UsersForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //创客真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and UserId in (select UserId from UsersForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //盟主等级
+            if (!string.IsNullOrEmpty(LeaderLevelSelect))
+            {
+                condition += " and LeaderLevel=" + LeaderLevelSelect;
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Leaders", Fields, "Id desc", "0", 1, 20000, condition, "UserId,LeaderLevel", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //创客
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = userid_Users.MakerCode;
+                dic["UserIdRealName"] = userid_Users.RealName;
+                dic.Remove("UserId");
+                //盟主等级
+                int LeaderLevel = int.Parse(dic["LeaderLevel"].ToString());
+                if (LeaderLevel == 1) dic["LeaderLevel"] = "小盟主";
+                if (LeaderLevel == 2) dic["LeaderLevel"] = "大盟主";
+                if (LeaderLevel == 0) dic["LeaderLevel"] = "";
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("UserIdMakerCode", "创客创客编号");
+            ReturnFields.Add("UserIdRealName", "创客真实姓名");
+            ReturnFields.Add("LeaderLevel", "盟主等级");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "Leaders", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+    }
+}

+ 39 - 1
Areas/Admin/Controllers/MainServer/PosCouponsController.cs

@@ -51,7 +51,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 机具券列表
         /// </summary>
         /// <returns></returns>
-        public JsonResult IndexData(PosCoupons data, string UseDateData, string UserIdMakerCode, string LeaderIdMakerCode, string ExchangeCode, string IsUseSelect, string IsLockSelect, int page = 1, int limit = 30)
+        public JsonResult IndexData(PosCoupons data, string OpCode, string UseDateData, string UserIdMakerCode, string LeaderIdMakerCode, string ExchangeCode, string IsUseSelect, string IsLockSelect, string TypeSelect, int page = 1, int limit = 30)
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
@@ -60,6 +60,15 @@ namespace MySystem.Areas.Admin.Controllers
 
 
             string condition = " and Status>-1";
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                var sysAdmins = opdb.SysAdmin.FirstOrDefault(m => m.OpCode == OpCode) ?? new OpModels.SysAdmin();
+                if (sysAdmins.Id > 0)
+                {
+                    condition = " and OpId=" + sysAdmins.Id;
+                }
+            }
             //创客编号
             if (!string.IsNullOrEmpty(UserIdMakerCode))
             {
@@ -75,6 +84,18 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 condition += " and ExchangeCode =" + ExchangeCode;
             }
+            //机具券类型
+            if (!string.IsNullOrEmpty(TypeSelect))
+            {
+                if (int.Parse(TypeSelect) == 1)
+                {
+                    condition += " and QueryCount =1";
+                }
+                else
+                {
+                    condition += " and QueryCount =2";
+                }
+            }
             //是否使用
             if (!string.IsNullOrEmpty(IsUseSelect))
             {
@@ -123,6 +144,23 @@ namespace MySystem.Areas.Admin.Controllers
                 if (IsLock == 0) dic["IsLockName"] = "否";
                 if (IsLock == 1) dic["IsLockName"] = "是";
 
+                //机具券类型
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 1) dic["QueryCount"] = "电签券";
+                if (QueryCount == 2) dic["QueryCount"] = "大POS";
+
+                //所属运营中心
+                int OpId = int.Parse(dic["OpId"].ToString());
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new OpModels.SysAdmin();
+                if (sysAdmin.Id > 0)
+                {
+                    dic["YName"] = sysAdmin.OpCode;
+                }
+                else
+                {
+                    dic["YName"] = "";
+                }
+
             }
             return Json(obj);
         }

+ 9 - 1
Areas/Admin/Controllers/MainServer/PosMachinesTwoController.cs

@@ -51,7 +51,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 机具库列表
         /// </summary>
         /// <returns></returns>
-        public JsonResult IndexData(PosMachinesTwo data, string BindingStateSelect, string ActivationStateSelect, string UserIdMakerCode, string UserIdRealName, string StoreIdCode, string StoreIdName, string BrandId, string ActivationDateData, string BindingDateData, int ShowFlag = 0, int page = 1, int limit = 30)
+        public JsonResult IndexData(PosMachinesTwo data, string BindingStateSelect, string ActivationStateSelect, string UserIdMakerCode, string UserIdRealName, string StoreIdCode, string StoreIdName, string BrandId, string ActivationDateData, string BindingDateData, string IsStoreSelect, int ShowFlag = 0, int page = 1, int limit = 30)
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
@@ -74,6 +74,14 @@ namespace MySystem.Areas.Admin.Controllers
 
 
             string condition = " and Status>-1";
+            //是否仓库机
+            if (!string.IsNullOrEmpty(IsStoreSelect))
+            {
+                if (int.Parse(IsStoreSelect) > 0)
+                {
+                    condition += " and UserId=0 and BuyUserId=0";
+                }
+            }
             //绑定状态
             if (!string.IsNullOrEmpty(BindingStateSelect))
             {

+ 200 - 6
Areas/Admin/Controllers/MainServer/StoreHouseController.cs

@@ -52,7 +52,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// 仓库列表
         /// </summary>
         /// <returns></returns>
-        public JsonResult IndexData(StoreHouse data, string UserIdMakerCode, string UserIdRealName, string ManageUserIdRealName, string ManageUserIdMobile, string ManageUserIdMakerCode, string StoreStatusSelect, string CreateDateData, int ShowFlag = 0, int page = 1, int limit = 30)
+        public JsonResult IndexData(StoreHouse data, string UserIdMakerCode, string UserIdRealName, string ManageUserIdRealName, string ManageUserIdMobile, string ManageUserIdMakerCode, string StoreStatusSelect, string CreateDateData, string MakerCode, string YZOpCode, string OpStatusSelect, int ShowFlag = 0, int page = 1, int limit = 30)
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
@@ -66,7 +66,7 @@ namespace MySystem.Areas.Admin.Controllers
                 return Json(objs);
             }
 
-            string condition = " and Status>-1";
+            string condition = " and Status>-1 and Sort=0";
             //仓库归属人创客编号
             if (!string.IsNullOrEmpty(UserIdMakerCode))
             {
@@ -132,7 +132,7 @@ namespace MySystem.Areas.Admin.Controllers
             //仓库状态
             if (!string.IsNullOrEmpty(StoreStatusSelect))
             {
-                condition += " and StoreStatus=" + StoreStatusSelect;
+                condition += " and Status=" + StoreStatusSelect;
             }
             if (!string.IsNullOrEmpty(CreateDateData))
             {
@@ -141,7 +141,37 @@ namespace MySystem.Areas.Admin.Controllers
                 string end = datelist[1];
                 condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
             }
+            //下线创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+                if (userForMakerCode.UserId > 0)
+                {
+                    condition += " and UserId in (SELECT Id FROM Users WHERE ParentNav LIKE '%," + userForMakerCode.UserId + ",%')";
+                }
+            }
+            //运营中心编号
+            if (!string.IsNullOrEmpty(YZOpCode))
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.OpCode == YZOpCode) ?? new OpModels.SysAdmin();
+                if (sysAdmin.Id > 0)
+                {
+                    condition += " and OpId=" + sysAdmin.Id;
+                }
+            }
+            //是否关联
+            if (!string.IsNullOrEmpty(OpStatusSelect))
+            {
+                if (int.Parse(OpStatusSelect) > 0)
+                {
+                    condition += " and OpId>0";
+                }
+                else
+                {
+                    condition += " and OpId=0";
 
+                }
+            }
 
             Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("StoreHouse", Fields, "Id desc", "0", page, limit, condition);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
@@ -165,9 +195,9 @@ namespace MySystem.Areas.Admin.Controllers
                 if (StoreType == 0) dic["StoreType"] = "实体仓";
                 if (StoreType == 1) dic["StoreType"] = "虚拟仓";
                 //仓库状态
-                int StoreStatus = int.Parse(dic["StoreStatus"].ToString());
-                if (StoreStatus == 1) dic["StoreStatus"] = "启用";
-                if (StoreStatus == 0) dic["StoreStatus"] = "禁用";
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 1) dic["Status"] = "启用";
+                if (Status == 0) dic["Status"] = "禁用";
                 //仓库归属类型
                 int StoreKind = int.Parse(dic["StoreKind"].ToString());
                 if (StoreKind == 0) dic["StoreKind"] = "分仓";
@@ -195,6 +225,12 @@ namespace MySystem.Areas.Admin.Controllers
                 dic["PromissAmount"] = PromissAmount.ToString();//担保金额
                 dic["ThisMonthPreAmount"] = ThisMonthPreAmount.ToString();//本月小分仓额度
                 dic["ValidPreAmount"] = ValidPreAmount.ToString();//可用小分仓额度
+
+                //是否关联
+                int OpId = int.Parse(dic["OpId"].ToString());
+                var opInfo = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new OpModels.SysAdmin();
+                if (OpId == 0) dic["OpIdStatus"] = "否";
+                if (OpId > 0) dic["OpIdStatus"] = opInfo.OpCode;
             }
             return Json(obj);
         }
@@ -236,6 +272,8 @@ namespace MySystem.Areas.Admin.Controllers
                     Dictionary<string, object> Fields = new Dictionary<string, object>();
                     Fields.Add("CreateMan", SysUserName); //创建人
                     Fields.Add("StoreName", data.StoreName); //仓库名称
+                    Fields.Add("FilePath", data.FilePath); //附件
+                    Fields.Add("Deposit", data.Deposit); //押金
                     UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
                     if (user == null)
                     {
@@ -364,6 +402,8 @@ namespace MySystem.Areas.Admin.Controllers
             Dictionary<string, object> Fields = new Dictionary<string, object>();
             Fields.Add("CreateMan", SysUserName); //创建人
             Fields.Add("StoreName", data.StoreName); //仓库名称
+            Fields.Add("FilePath", data.FilePath); //附件
+            Fields.Add("Deposit", data.Deposit); //押金
             UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
             if (user == null)
             {
@@ -1402,5 +1442,159 @@ namespace MySystem.Areas.Admin.Controllers
 
         #endregion
 
+
+        #region 关联分仓
+
+        /// <summary>
+        /// 关联分仓
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchSetting(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+
+        #region 关联分仓
+
+        /// <summary>
+        /// 关联分仓
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string BatchSetting(string Id, string MakerCode)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "StoreHouseBatchSetting");
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == userForMakerCode.UserId) ?? new OpModels.SysAdmin();
+                if (sysAdmin.Id > 0)
+                {
+                    DataTable dt = OtherMySqlConn.dtable("UPDATE StoreHouse SET OpId=" + sysAdmin.Id + " WHERE Id IN (" + Id + ") AND OpId =" + sysAdmin.Id + " AND `Status` >0");
+                    // new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, pos.Id);
+                    db.SaveChanges();
+                    foreach (var item in idlist)
+                    {
+                        int StoreId = int.Parse(item);
+                        var amount = 0;
+                        var tamount = 0;
+                        var storeInfo = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        var posCount = db.PosMachinesTwo.Where(m => m.StoreId == StoreId && m.UserId == 0 && m.BuyUserId == 0 && m.PreUserId == 0).Count();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == int.Parse(storeInfo.BrandId));
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 100;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 150;
+                        }
+                        tamount = amount * posCount;//扣减运营中心该品牌机具额度
+                        var userAmount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sysAdmin.Id) ?? new OpModels.UserAccount();
+                        userAmount.ValidAmount -= tamount;
+                        storeInfo.OpId = sysAdmin.Id;
+                        db.SaveChanges();
+                        opdb.SaveChanges();
+                        var query = opdb.StoreForOperate.FirstOrDefault(m => m.OpId == sysAdmin.Id && m.StoreId == StoreId);
+                        if (query == null)
+                        {
+                            query = opdb.StoreForOperate.Add(new OpModels.StoreForOperate()
+                            {
+                                CreateDate = DateTime.Now, //创建时间
+                                OpId = sysAdmin.Id,
+                                StoreId = StoreId,
+                            }).Entity;
+                            opdb.SaveChanges();
+                        }
+                    }
+                    sysAdmin.StoreCount += idlist.Count();//添加关联分仓数
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 取消关联
+
+        /// <summary>
+        /// 取消关联
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchCancle(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+
+        #region 取消关联
+
+        /// <summary>
+        /// 取消关联
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string BatchCancle(string Id, string MakerCode)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "StoreHouseBatchCancle");
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == userForMakerCode.UserId);
+                if (sysAdmin.Id > 0)
+                {
+                    DataTable dt = OtherMySqlConn.dtable("UPDATE StoreHouse SET OpId=0 WHERE Id IN (" + Id + ") AND OpId =" + sysAdmin.Id + " AND `Status` >0");
+                    // new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, pos.Id);
+                    db.SaveChanges();
+                    foreach (var item in idlist)
+                    {
+                        int StoreId = int.Parse(item);
+                        var amount = 0;
+                        var tamount = 0;
+                        var storeInfo = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        var posCount = db.PosMachinesTwo.Where(m => m.StoreId == StoreId && m.UserId == 0 && m.BuyUserId == 0 && m.PreUserId == 0).Count();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == int.Parse(storeInfo.BrandId));
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 100;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 150;
+                        }
+                        tamount = amount * posCount;//扣减运营中心该品牌机具额度
+                        var userAmount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sysAdmin.Id) ?? new OpModels.UserAccount();
+                        userAmount.ValidAmount += tamount;
+                        opdb.SaveChanges();
+                        var query = opdb.StoreForOperate.FirstOrDefault(m => m.OpId == sysAdmin.Id && m.StoreId == StoreId);
+                        if (query != null)
+                        {
+                            query.UpdateDate = DateTime.Now;
+                            query.Status = -1;
+                            opdb.SaveChanges();
+                        }
+                    }
+                    sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
     }
 }

+ 663 - 0
Areas/Admin/Controllers/OperateServer/PosCouponsLeaderController.cs

@@ -0,0 +1,663 @@
+/*
+ * 机具券变更记录
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.Models;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class PosCouponsLeaderController : BaseController
+    {
+        public PosCouponsLeaderController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+        }
+
+        #region 机具券列表
+
+        /// <summary>
+        /// 根据条件查询机具券列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(PosCoupons data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询机具券列表
+
+        /// <summary>
+        /// 机具券列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(PosCoupons data, string UseDateData, string UserIdMakerCode, string LeaderIdMakerCode, string ExchangeCode, string IsUseSelect, string IsLockSelect, string TypeSelect, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("OrderNo", "1"); //单号
+
+
+            string condition = " and Status>-1";
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //盟主创客编号
+            if (!string.IsNullOrEmpty(LeaderIdMakerCode))
+            {
+                condition += " and LeaderUserId in (select UserId from UserForMakerCode where MakerCode='" + LeaderIdMakerCode + "')";
+            }
+            //兑换码
+            if (!string.IsNullOrEmpty(ExchangeCode))
+            {
+                condition += " and ExchangeCode =" + ExchangeCode;
+            }
+            //机具券类型
+            if (!string.IsNullOrEmpty(TypeSelect))
+            {
+                if (int.Parse(TypeSelect) == 1)
+                {
+                    condition += " and QueryCount =1";
+                }
+                else
+                {
+                    condition += " and QueryCount =2";
+                }
+            }
+            //是否使用
+            if (!string.IsNullOrEmpty(IsUseSelect))
+            {
+                condition += " and IsUse =" + IsUseSelect;
+            }
+            //是否锁定
+            if (!string.IsNullOrEmpty(IsLockSelect))
+            {
+                condition += " and IsLock=" + IsLockSelect;
+            }
+
+            if (!string.IsNullOrEmpty(UseDateData))
+            {
+                string[] datelist = UseDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and UseDate >='" + start + " 00:00:00' and UseDate <='" + end + " 23:59:59'";
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("PosCoupons", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //创客信息
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users fromuserid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = fromuserid_Users.MakerCode;
+                dic["UserIdRealName"] = fromuserid_Users.RealName;
+                dic.Remove("UserId");
+
+                //盟主创客信息
+                int LeaderUserId = int.Parse(function.CheckInt(dic["LeaderUserId"].ToString()));
+                Users leaderuserid_Users = db.Users.FirstOrDefault(m => m.Id == LeaderUserId) ?? new Users();
+                dic["LeaderUserIdMakerCode"] = leaderuserid_Users.MakerCode;
+                dic["LeaderUserIdRealName"] = leaderuserid_Users.RealName;
+                dic.Remove("LeaderUserId");
+
+                //是否使用
+                int IsUse = int.Parse(dic["IsUse"].ToString());
+                if (IsUse == 0) dic["IsUseName"] = "否";
+                if (IsUse == 1) dic["IsUseName"] = "是";
+
+                //是否锁定
+                int IsLock = int.Parse(dic["IsLock"].ToString());
+                if (IsLock == 0) dic["IsLockName"] = "否";
+                if (IsLock == 1) dic["IsLockName"] = "是";
+
+                //机具券类型
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 1) dic["QueryCount"] = "电签券";
+                if (QueryCount == 2) dic["QueryCount"] = "大POS";
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+
+        #region 商机券列表
+
+        /// <summary>
+        /// 根据条件查询商机券列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult SJQ(PosCoupons data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询商机券列表
+
+        /// <summary>
+        /// 商机券列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult SJQData(PosCoupons data, string UseDateData, string UserIdMakerCode, string ExchangeCode, string IsUseSelect, string IsLockSelect, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("OrderNo", "1"); //单号
+
+
+            string condition = " and Status>-1 and HelpProfitFlag=1";
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //兑换码
+            if (!string.IsNullOrEmpty(ExchangeCode))
+            {
+                condition += " and ExchangeCode =" + ExchangeCode;
+            }
+            //是否使用
+            if (!string.IsNullOrEmpty(IsUseSelect))
+            {
+                condition += " and IsUse =" + IsUseSelect;
+            }
+            //是否锁定
+            if (!string.IsNullOrEmpty(IsLockSelect))
+            {
+                condition += " and IsLock=" + IsLockSelect;
+            }
+
+            if (!string.IsNullOrEmpty(UseDateData))
+            {
+                string[] datelist = UseDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and UseDate >='" + start + "' and UseDate <='" + end + " 23:59:59'";
+
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("PosCoupons", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //创客信息
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users fromuserid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = fromuserid_Users.MakerCode;
+                dic["UserIdRealName"] = fromuserid_Users.RealName;
+                dic.Remove("UserId");
+
+                //盟主创客信息
+                int LeaderUserId = int.Parse(function.CheckInt(dic["LeaderUserId"].ToString()));
+                Users leaderuserid_Users = db.Users.FirstOrDefault(m => m.Id == LeaderUserId) ?? new Users();
+                dic["LeaderUserIdMakerCode"] = leaderuserid_Users.MakerCode;
+                dic["LeaderUserIdRealName"] = leaderuserid_Users.RealName;
+                dic.Remove("LeaderUserId");
+
+                //是否使用
+                int IsUse = int.Parse(dic["IsUse"].ToString());
+                if (IsUse == 0) dic["IsUseName"] = "否";
+                if (IsUse == 1) dic["IsUseName"] = "是";
+
+                //是否锁定
+                int IsLock = int.Parse(dic["IsLock"].ToString());
+                if (IsLock == 0) dic["IsLockName"] = "否";
+                if (IsLock == 1) dic["IsLockName"] = "是";
+
+                //是否是商机券
+                int HelpProfitFlag = int.Parse(dic["HelpProfitFlag"].ToString());
+                if (HelpProfitFlag == 0) dic["IsSJName"] = "否";
+                if (HelpProfitFlag == 1) dic["IsSJName"] = "是";
+
+                //是否使用商机券
+                int HelpProfitStatus = int.Parse(dic["HelpProfitStatus"].ToString());
+                if (HelpProfitStatus == 0) dic["SJUseName"] = "否";
+                if (HelpProfitStatus == 1) dic["SJUseName"] = "是";
+
+                //助利宝商户信息
+                int HelpProfitMerchantId = int.Parse(function.CheckInt(dic["HelpProfitMerchantId"].ToString()));
+                PosMerchantInfo posMerchantInfo = db.PosMerchantInfo.FirstOrDefault(m => m.Id == HelpProfitMerchantId) ?? new PosMerchantInfo();
+                dic["posMerchantInfo"] = posMerchantInfo.MerchantNo + "<br />" + posMerchantInfo.MerchantName;
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+
+        #region 增加机具券变更记录
+
+        /// <summary>
+        /// 增加或修改机具券变更记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加机具券变更记录
+
+        /// <summary>
+        /// 增加或修改机具券变更记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(PosCoupons data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("PosCoupons", Fields, 0);
+            AddSysLog(data.Id.ToString(), "PosCoupons", "add");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改机具券变更记录
+
+        /// <summary>
+        /// 增加或修改机具券变更记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            PosCoupons editData = db.PosCoupons.FirstOrDefault(m => m.Id == Id) ?? new PosCoupons();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改机具券变更记录
+
+        /// <summary>
+        /// 增加或修改机具券变更记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(PosCoupons data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("PosCoupons", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "PosCoupons", "update");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除机具券变更记录信息
+
+        /// <summary>
+        /// 删除机具券变更记录信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PosCoupons", "del");
+            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("PosCoupons", Fields, id);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PosCoupons", "open");
+            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("PosCoupons", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PosCoupons", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("PosCoupons", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("PosCoupons", Sort, Id);
+
+            AddSysLog(Id.ToString(), "PosCoupons", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                db.PosCoupons.Add(new PosCoupons()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                db.SaveChanges();
+            }
+            AddSysLog("0", "PosCoupons", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(PosCoupons data, string FromUserIdMakerCode, string FromUserIdRealName, string ToUserIdMakerCode, string ToUserIdRealName, string ChangeKindSelect)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CreateDate", "3"); //时间
+            Fields.Add("OrderNo", "1"); //单号
+
+
+            string condition = " and Status>-1";
+            //来源创客编号
+            if (!string.IsNullOrEmpty(FromUserIdMakerCode))
+            {
+                condition += " and FromUserId in (select FromUserId from UserForMakerCode where MakerCode='" + FromUserIdMakerCode + "')";
+            }
+            //来源创客真实姓名
+            if (!string.IsNullOrEmpty(FromUserIdRealName))
+            {
+                condition += " and FromUserId in (select FromUserId from UserForRealName where RealName='" + FromUserIdRealName + "')";
+            }
+            //目标创客编号
+            if (!string.IsNullOrEmpty(ToUserIdMakerCode))
+            {
+                condition += " and ToUserId in (select ToUserId from UserForMakerCode where MakerCode='" + ToUserIdMakerCode + "')";
+            }
+            //目标创客真实姓名
+            if (!string.IsNullOrEmpty(ToUserIdRealName))
+            {
+                condition += " and ToUserId in (select ToUserId from UserForRealName where RealName='" + ToUserIdRealName + "')";
+            }
+            //变更类型
+            if (!string.IsNullOrEmpty(ChangeKindSelect))
+            {
+                condition += " and ChangeKind=" + ChangeKindSelect;
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("PosCoupons", Fields, "Id desc", "0", 1, 20000, condition, "FromUserId,ToUserId,OrderNo,BeforeStock,BeforeTotal,BeforeOut,AfterStock,AfterTotal,AfterOut,ChangeCount,ChangeKind", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //来源创客
+                int FromUserId = int.Parse(function.CheckInt(dic["FromUserId"].ToString()));
+                Users fromuserid_Users = db.Users.FirstOrDefault(m => m.Id == FromUserId) ?? new Users();
+                dic["FromUserIdMakerCode"] = fromuserid_Users.MakerCode;
+                dic["FromUserIdRealName"] = fromuserid_Users.RealName;
+                dic.Remove("FromUserId");
+                //目标创客
+                int ToUserId = int.Parse(function.CheckInt(dic["ToUserId"].ToString()));
+                Users touserid_Users = db.Users.FirstOrDefault(m => m.Id == ToUserId) ?? new Users();
+                dic["ToUserIdMakerCode"] = touserid_Users.MakerCode;
+                dic["ToUserIdRealName"] = touserid_Users.RealName;
+                dic.Remove("ToUserId");
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("FromUserIdMakerCode", "来源创客编号");
+            ReturnFields.Add("FromUserIdRealName", "来源创客真实姓名");
+            ReturnFields.Add("ToUserIdMakerCode", "目标创客编号");
+            ReturnFields.Add("ToUserIdRealName", "目标创客真实姓名");
+            ReturnFields.Add("OrderNo", "单号");
+            ReturnFields.Add("BeforeStock", "变更前机具券库存");
+            ReturnFields.Add("BeforeTotal", "变更前机具券总数");
+            ReturnFields.Add("BeforeOut", "变更前机具券使用数");
+            ReturnFields.Add("AfterStock", "变更后机具券库存");
+            ReturnFields.Add("AfterTotal", "变更后机具券总数");
+            ReturnFields.Add("AfterOut", "变更后机具券使用数");
+            ReturnFields.Add("ChangeCount", "变更数量");
+            ReturnFields.Add("ChangeKind", "变更类型");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "PosCoupons", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 设置盟主券
+
+        /// <summary>
+        /// 设置盟主券
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchSetting(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+
+        #region 设置盟主券
+
+        /// <summary>
+        /// 设置盟主券
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string BatchSetting(string Id, string MakerCode)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PosCoupons", "PosCouponsBatchSetting");
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var user = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId) ?? new Users();
+                if (user.Id > 0)
+                {
+                    DataTable dt = OtherMySqlConn.dtable("");
+                    db.SaveChanges();
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 取消盟主券
+
+        /// <summary>
+        /// 取消盟主券
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchCancle(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+
+        #region 取消盟主券
+
+        /// <summary>
+        /// 取消盟主券
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string BatchCancle(string Id, string MakerCode)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PosCoupons", "PosCouponsBatchCancle");
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == userForMakerCode.UserId);
+                if (sysAdmin.Id > 0)
+                {
+                    DataTable dt = OtherMySqlConn.dtable("UPDATE StoreHouse SET OpId=0 WHERE Id IN (" + Id + ") AND OpId =" + sysAdmin.Id + " AND `Status` >0");
+                    // new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, pos.Id);
+                    db.SaveChanges();
+                    foreach (var item in idlist)
+                    {
+                        int StoreId = int.Parse(item);
+                        var amount = 0;
+                        var tamount = 0;
+                        var storeInfo = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        var posCount = db.PosMachinesTwo.Where(m => m.StoreId == StoreId && m.UserId == 0 && m.BuyUserId == 0 && m.PreUserId == 0).Count();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == int.Parse(storeInfo.BrandId));
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 100;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 150;
+                        }
+                        tamount = amount * posCount;//扣减运营中心该品牌机具额度
+                        var userAmount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sysAdmin.Id) ?? new OpModels.UserAccount();
+                        userAmount.ValidAmount += tamount;
+                        opdb.SaveChanges();
+                        var query = opdb.StoreForOperate.FirstOrDefault(m => m.OpId == sysAdmin.Id && m.StoreId == StoreId);
+                        if (query != null)
+                        {
+                            query.UpdateDate = DateTime.Now;
+                            query.Status = -1;
+                            opdb.SaveChanges();
+                        }
+                    }
+                    sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+    }
+}

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

@@ -0,0 +1,1462 @@
+/*
+ * 仓库
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.Models;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class StoreHouseOperateController : BaseController
+    {
+        public StoreHouseOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+        }
+
+        #region 仓库列表
+
+        /// <summary>
+        /// 根据条件查询仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(StoreHouse data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询仓库列表
+
+        /// <summary>
+        /// 仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(StoreHouse data, string CreateDateData, string OpCode, string YZOpCode,int ShowFlag = 0, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("StoreNo", "1"); //仓库编号
+            if (ShowFlag == 0)
+            {
+                Dictionary<string, object> objs = new Dictionary<string, object>();
+                return Json(objs);
+            }
+
+            string condition = " and Status>-1 and Sort>0";
+            
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+            }
+            //所属运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.OpCode == YZOpCode) ?? new OpModels.SysAdmin();
+                if (sysAdmin.Id > 0)
+                {
+                    condition += " and Sort=" + sysAdmin.Id;
+                }
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("StoreHouse", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //仓库归属人
+                int OpId = int.Parse(function.CheckInt(dic["Sort"].ToString()));
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new OpModels.SysAdmin();
+                dic["MakerCodes"] = sysAdmin.MakerCode;
+                dic["MakerMobiles"] = sysAdmin.MakerMobile;
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic["MakerNames"] = sysAdmin.MakerName;
+                dic["RealNames"] = sysAdmin.RealName;
+                //产品类型
+                dic["BrandId"] = RelationClass.GetKqProductBrandList(dic["BrandId"].ToString());
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(StoreHouse data, string ManageMakerCode, string MakerCode)
+        {
+            string BrandIdString = data.BrandId;
+            if (!string.IsNullOrEmpty(BrandIdString))
+            {
+                string[] BrandIdList = BrandIdString.Split(',');
+                foreach (string BrandId in BrandIdList)
+                {
+                    Dictionary<string, object> Fields = new Dictionary<string, object>();
+                    Fields.Add("CreateMan", SysUserName); //创建人
+                    Fields.Add("StoreName", data.StoreName); //仓库名称
+                    UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+                    if (user == null)
+                    {
+                        return "您输入的仓库归属创客编号不存在,请重新输入正确的仓库归属创客编号";
+                    }
+                    Fields.Add("UserId", user.UserId); //仓库归属人
+                    Fields.Add("Areas", data.Areas); //所属地区
+                    Fields.Add("Address", data.Address); //仓库地址
+                    UserForMakerCode manage = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ManageMakerCode);
+                    if (manage == null)
+                    {
+                        return "您输入的仓库负责人编号不存在,请重新输入正确的仓库负责人编号";
+                    }
+                    Fields.Add("ManageUserId", manage.UserId); //仓库管理员
+                    Fields.Add("ManagerEmail", data.ManagerEmail); //管理者邮箱
+                    Fields.Add("ManageMobile", data.ManageMobile);
+                    Fields.Add("Remark", data.Remark); //备注
+                    Fields.Add("LimitTopUserId", data.LimitTopUserId); //限制创客特殊仓库
+                    Fields.Add("StoreKind", data.StoreKind); //仓库归属类型
+                    int bid = int.Parse(BrandId);
+                    KqProducts pro = db.KqProducts.FirstOrDefault(m => m.Id == bid) ?? new KqProducts();
+                    Fields.Add("BrandId", BrandId);
+                    Fields.Add("ProductName", pro.Name);
+                    Fields.Add("StoreStatus", 1);
+                    Fields.Add("Status", 1);
+
+                    var name = db.StoreHouse.FirstOrDefault(m => m.UserId == user.UserId && m.BrandId == BrandId && m.StoreName == data.StoreName);
+                    if (name != null)
+                    {
+                        return "您的仓库名重复,请重新填写";
+                    }
+
+                    int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("StoreHouse", Fields, 0);
+                    StoreHouse edit = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+                    if (edit != null)
+                    {
+                        string No = Id.ToString();
+                        for (int i = 0; i < 7 - Id.ToString().Length; i++)
+                        {
+                            No = "0" + No;
+                        }
+                        No = "S" + No;
+                        edit.StoreNo = No;
+                        db.StoreForCode.Add(new StoreForCode()
+                        {
+                            Code = No,
+                            StoreId = Id,
+                        });
+                        RedisDbconn.Instance.Set("StoreForCode:" + No, Id);
+                    }
+                    StoreForName storeForName = db.StoreForName.FirstOrDefault(m => m.Name == data.StoreName);
+                    if (storeForName == null)
+                    {
+                        db.StoreForName.Add(new StoreForName()
+                        {
+                            Name = data.StoreName,
+                            StoreId = Id,
+                        });
+                    }
+                    else
+                    {
+                        storeForName.StoreId = Id;
+                    }
+                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == user.UserId);
+                    if (account == null)
+                    {
+                        account = db.UserAccount.Add(new UserAccount()
+                        {
+                            Id = user.UserId,
+                            UserId = user.UserId,
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                    if (account.FixedAmount == 0 && account.ValidAmount == 0)
+                    {
+                        account.FixedAmount = 20000;
+                        account.ValidAmount = 20000;
+                    }
+
+                    RedisDbconn.Instance.Set("StoreForName:" + data.StoreName, Id);
+                    AddSysLog(data.Id.ToString(), "StoreHouse", "add");
+                    db.SaveChanges();
+
+                    SetRedis(Id, user.UserId);
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            StoreHouse editData = db.StoreHouse.FirstOrDefault(m => m.Id == Id) ?? new StoreHouse();
+            ViewBag.data = editData;
+
+            Users manage = db.Users.FirstOrDefault(m => m.Id == editData.ManageUserId) ?? new Users();
+            ViewBag.ManageMakerCode = manage.MakerCode;
+            ViewBag.ManageRealName = manage.RealName;
+
+            Users user = db.Users.FirstOrDefault(m => m.Id == editData.ManageUserId) ?? new Users();
+            ViewBag.MakerCode = user.MakerCode;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(StoreHouse data, string ManageMakerCode, string MakerCode)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Fields.Add("CreateMan", SysUserName); //创建人
+            Fields.Add("StoreName", data.StoreName); //仓库名称
+            UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+            if (user == null)
+            {
+                return "您输入的仓库归属创客编号不存在,请重新输入正确的仓库归属创客编号";
+            }
+            Fields.Add("UserId", user.UserId); //仓库归属人
+            Fields.Add("Areas", data.Areas); //所属地区
+            Fields.Add("Address", data.Address); //仓库地址
+            UserForMakerCode manage = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ManageMakerCode);
+            if (manage == null)
+            {
+                return "您输入的仓库负责人编号不存在,请重新输入正确的仓库负责人编号";
+            }
+            Fields.Add("ManageUserId", manage.UserId); //仓库管理员
+            Fields.Add("ManagerEmail", data.ManagerEmail); //管理者邮箱
+            Fields.Add("ManageMobile", data.ManageMobile);
+            Fields.Add("Remark", data.Remark); //备注
+            Fields.Add("LimitTopUserId", data.LimitTopUserId); //限制创客特殊仓库
+            Fields.Add("StoreKind", data.StoreKind); //仓库归属类型
+            Fields.Add("Status", data.Status);
+            Fields.Add("StoreStatus", data.Status);
+
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "StoreHouse", "update");
+            db.SaveChanges();
+
+            SetRedis(data.Id, user.UserId);
+
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 一键添加仓库
+
+        /// <summary>
+        /// 一件添加仓库
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edits(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            StoreHouse editData = db.StoreHouse.FirstOrDefault(m => m.Id == Id) ?? new StoreHouse();
+            ViewBag.data = editData;
+
+            Users manage = db.Users.FirstOrDefault(m => m.Id == editData.ManageUserId) ?? new Users();
+            ViewBag.ManageMakerCode = manage.MakerCode;
+            ViewBag.ManageRealName = manage.RealName;
+
+            Users user = db.Users.FirstOrDefault(m => m.Id == editData.ManageUserId) ?? new Users();
+            ViewBag.MakerCode = user.MakerCode;
+            return View();
+        }
+
+        #endregion
+
+        #region 一键添加仓库
+
+        /// <summary>
+        /// 一键添加仓库
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edits(StoreHouse data, string ManageMakerCode, string MakerCode)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            StoreHouse storeHouse = db.StoreHouse.FirstOrDefault(m => m.Id == data.Id);
+            var brand = db.StoreHouse.FirstOrDefault(m => m.UserId == storeHouse.UserId && m.BrandId == data.BrandId);
+            if (brand != null)
+            {
+                return "您已有该品牌类型的仓库,请重新选择";
+            }
+            var name = db.StoreHouse.FirstOrDefault(m => m.UserId == storeHouse.UserId && m.StoreName == data.StoreName);
+            if (name != null)
+            {
+                return "您的仓库名重复,请重新填写";
+            }
+            Fields.Add("StoreName", data.StoreName); //仓库名称
+            UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+            if (user == null)
+            {
+                return "您输入的仓库归属创客编号不存在,请重新输入正确的仓库归属创客编号";
+            }
+            Fields.Add("UserId", user.UserId); //仓库归属人
+            Fields.Add("Areas", data.Areas); //所属地区
+            Fields.Add("Address", data.Address); //仓库地址
+            UserForMakerCode manage = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ManageMakerCode);
+            if (manage == null)
+            {
+                return "您输入的仓库负责人编号不存在,请重新输入正确的仓库负责人编号";
+            }
+            Fields.Add("CreateMan", SysUserName); //创建人
+            Fields.Add("ManageUserId", manage.UserId); //仓库管理员
+            Fields.Add("ManagerEmail", data.ManagerEmail); //管理者邮箱
+            Fields.Add("ManageMobile", data.ManageMobile);
+            Fields.Add("Remark", data.Remark); //备注
+            Fields.Add("LimitTopUserId", data.LimitTopUserId); //限制创客特殊仓库
+            Fields.Add("StoreKind", data.StoreKind); //仓库归属类型
+            int bid = Convert.ToInt32(data.BrandId);
+            KqProducts pro = db.KqProducts.FirstOrDefault(m => m.Id == bid) ?? new KqProducts();
+            Fields.Add("BrandId", data.BrandId);
+            Fields.Add("ProductName", pro.Name);
+            Fields.Add("StoreStatus", 1);
+            Fields.Add("Status", 1);
+
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("StoreHouse", Fields, 0);
+            StoreHouse edit = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            {
+                string No = Id.ToString();
+                for (int i = 0; i < 7 - Id.ToString().Length; i++)
+                {
+                    No = "0" + No;
+                }
+                No = "S" + No;
+                edit.StoreNo = No;
+                db.StoreForCode.Add(new StoreForCode()
+                {
+                    Code = No,
+                    StoreId = Id,
+                });
+                RedisDbconn.Instance.Set("StoreForCode:" + No, Id);
+            }
+            StoreForName storeForName = db.StoreForName.FirstOrDefault(m => m.Name == data.StoreName);
+            if (storeForName == null)
+            {
+                db.StoreForName.Add(new StoreForName()
+                {
+                    Name = data.StoreName,
+                    StoreId = Id,
+                });
+            }
+            else
+            {
+                storeForName.StoreId = Id;
+            }
+            RedisDbconn.Instance.Set("StoreForName:" + data.StoreName, Id);
+            AddSysLog(data.Id.ToString(), "StoreHouse", "add");
+            db.SaveChanges();
+
+            SetRedis(Id, user.UserId);
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 删除仓库信息
+
+        /// <summary>
+        /// 删除仓库信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "del");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", -1);
+                StoreHouse edit = db.StoreHouse.FirstOrDefault(m => m.Id == id);
+                if (edit != null)
+                {
+                    StoreForCode code = db.StoreForCode.FirstOrDefault(m => m.Code == edit.StoreNo);
+                    if (code != null)
+                    {
+                        db.StoreForCode.Remove(code);
+                    }
+                    StoreForName name = db.StoreForName.FirstOrDefault(m => m.Name == edit.StoreName);
+                    if (name != null)
+                    {
+                        db.StoreForName.Remove(name);
+                    }
+                }
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, id);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "open");
+            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("StoreHouse", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("StoreHouse", Sort, Id);
+
+            AddSysLog(Id.ToString(), "StoreHouse", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+
+        public IActionResult Import(string right, string ExcelKind)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            ViewBag.ExcelKind = ExcelKind;
+            return View();
+        }
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        [HttpPost]
+        public string ImportPost(string ExcelPath, int Kind = 0)
+        {
+            // RedisDbconn.Instance.AddList("ExcelImport", ExcelPath + "#cut#" + Kind);
+            string key = function.MD5_16(Guid.NewGuid().ToString());
+            RedisDbconn.Instance.AddList("ExcelImportV2", ExcelPath + "#cut#" + Kind + "#cut#" + key + "#cut#" + SysUserName);
+            return "success|" + key;
+        }
+
+        // [HttpPost]
+        // public Dictionary<string, object> ImportPostV2(string ExcelPath, int Kind = 0)
+        // {
+        //     Dictionary<string, object> Obj = new Dictionary<string, object>();
+        //     string key = function.MD5_16(Guid.NewGuid().ToString());
+        //     RedisDbconn.Instance.AddList("ExcelImportV2", ExcelPath + "#cut#" + Kind + "#cut#" + key);
+        //     Obj.Add("status", "success");
+        //     Obj.Add("key", key);
+        //     Obj.Add("errlist", RedisDbconn.Instance.GetList<string>("ErrList" + key));
+        //     return Obj;
+        // }
+        public string CheckImport(string key)
+        {
+            string result = RedisDbconn.Instance.Get<string>("CheckImport:" + key);
+            if (!string.IsNullOrEmpty(result))
+            {
+                string[] datalist = result.Split('|');
+                if (datalist[0] == "success")
+                {
+                    return result;
+                }
+                return datalist[0];
+            }
+            return "0";
+        }
+        public Dictionary<string, object> CheckImportV2(string key)
+        {
+            Dictionary<string, object> Obj = new Dictionary<string, object>();
+            string result = RedisDbconn.Instance.Get<string>("CheckImport:" + key);
+            if (!string.IsNullOrEmpty(result))
+            {
+                string[] datalist = result.Split('|');
+                if (datalist[0] == "success")
+                {
+                    List<string> errList = RedisDbconn.Instance.GetList<string>("ErrList" + key);
+                    if (errList.Count > 0)
+                    {
+                        Obj.Add("status", 2);
+                        Obj.Add("errList", errList);
+                    }
+                    else
+                    {
+                        Obj.Add("status", 1);
+                        Obj.Add("data", result);
+                    }
+                    return Obj;
+                }
+                Obj.Add("status", 0);
+                Obj.Add("data", datalist[0]);
+                return Obj;
+            }
+            Obj.Add("status", -1);
+            Obj.Add("data", "执行中...");
+            return Obj;
+        }
+        #endregion
+
+
+        #region 机具驳回仓库
+        /// <summary>
+        /// 机具驳回仓库
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string RejectStore(string ExcelData, int ExcelKind = 0)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            if (ExcelKind == 1)
+            {
+                string error = "";
+                decimal amount = 0;
+                List<string> PosSnList = new List<string>();
+                for (int i = 1; i < list.Count; i++)
+                {
+                    JsonData dr = list[i];
+                    string itemJson = dr.ToJson();
+                    string PosSn = itemJson.Contains("\"A\"") ? dr["A"].ToString() : "";
+                    string BrandId = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
+                    string MakerCode = itemJson.Contains("\"C\"") ? dr["C"].ToString() : "";
+                    string StoreNo = itemJson.Contains("\"D\"") ? dr["D"].ToString() : "";
+                    string No = itemJson.Contains("\"E\"") ? dr["E"].ToString() : "";
+                    string Remark = itemJson.Contains("\"F\"") ? dr["F"].ToString() : "";
+                    UserForMakerCode userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+                    StoreForCode storeForCode = db.StoreForCode.FirstOrDefault(m => m.Code == StoreNo);
+                    var store = db.StoreHouse.FirstOrDefault(m => m.Id == storeForCode.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                    MachineForSnNo machineForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == PosSn) ?? new MachineForSnNo();
+                    var pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.BrandId == Convert.ToInt32(BrandId) && m.BindingState == 0 && m.BuyUserId == userForMakerCode.UserId) ?? new PosMachinesTwo();
+                    var posInfo = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.BrandId == Convert.ToInt32(BrandId) && m.BindingState == 0) ?? new PosMachinesTwo();
+                    if (pos.Id == 0)
+                    {
+                        error += "以下操作失败" + PosSn + ',' + "未找到创客" + MakerCode + "的该台机具" + '\n';
+                    }
+                    if (store.Id == 0)
+                    {
+                        error += "以下操作失败" + PosSn + ',' + StoreNo + ',' + "未找到该仓库" + '\n';
+                    }
+                    if (posInfo.Id == 0)
+                    {
+                        error += "以下操作失败" + PosSn + ',' + "未找到该品牌的未使用机具" + '\n';
+                    }
+                    if (PosSnList.Contains(PosSn))
+                    {
+                        error += "以下操作失败" + PosSn + ',' + "该机具号重复" + '\n';
+                    }
+                    else
+                    {
+                        PosSnList.Add(PosSn);
+                        var fromStore = db.StoreHouse.FirstOrDefault(m => m.Id == pos.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                        var toStore = db.StoreHouse.FirstOrDefault(m => m.Id == storeForCode.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                        var user = db.Users.FirstOrDefault(m => m.Id == toStore.UserId) ?? new Users();
+                        var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == toStore.UserId) ?? new UserAccount();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == Convert.ToInt32(BrandId)) ?? new KqProducts();
+                        var fuserMachineData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == userForMakerCode.UserId + "_" + brandInfo.Id);
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 200;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 300;
+                        }
+                        userAccount.ValidAmount -= amount;
+                        db.SaveChanges();
+                        if (posInfo != null)
+                        {
+                            if (fromStore.Id != toStore.Id)
+                            {
+                                var changeNo = "JJBH" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
+                                StoreStockChange stockchange = db.StoreStockChange.Add(new StoreStockChange()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    StoreId = fromStore.Id, //出货仓库
+                                    ToStoreId = toStore.Id, //发货仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    ProductName = RelationClass.GetKqProductBrandInfo(Convert.ToInt32(BrandId)), //产品名称
+                                    ChangeNo = changeNo, //变更记录单号
+                                    BizBatchNo = No, //业务批次号
+                                    TransType = 4, //交易类型
+                                    SnNo = PosSn, //SN编号
+                                    StockOpDirect = 1, //库存操作方向
+                                    SnStatus = 1, //SN状态
+                                    DeviceVendor = posInfo.DeviceName, //设备厂商
+                                    DeviceModel = posInfo.DeviceKind, //设备型号
+                                    DeviceType = posInfo.DeviceType, //设备类型                    
+                                    SourceStoreId = posInfo.SourceStoreId, //源仓库编号
+                                    BrandType = posInfo.DeviceType, //品牌类型
+                                }).Entity;
+                                db.SaveChanges();
+
+                                db.StoreChangeHistory.Add(new StoreChangeHistory()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    UserId = user.Id, //创客
+                                    FromUserId = user.Id,//来源创客
+                                    ToUserId = toStore.UserId,//接收创客
+                                    StoreId = fromStore.Id, //出货仓库
+                                    ToStoreId = toStore.Id, //发货仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    ChangeRecordNo = changeNo, //变更记录单号
+                                    SeoTitle = "机具驳回仓库",
+                                    BizBatchNo = No, //业务批次号
+                                    TransType = 4,//驳回
+                                    SnNo = PosSn, //SN编号
+                                });
+                                db.SaveChanges();
+
+                                StoreBalance fbalance = db.StoreBalance.Add(new StoreBalance()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    StoreId = fromStore.Id, //仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    OpStoreNum = 1, //操作库存数
+                                    OpSymbol = "-", //操作符
+                                    BeforeTotalNum = fromStore.TotalNum, //操作前总库存数
+                                    AfterTotalNum = fromStore.TotalNum - 1, //操作后总库存数
+                                    BeforeLaveNum = fromStore.LaveNum, //操作前剩余库存数
+                                    AfterLaveNum = fromStore.LaveNum - 1, //操作后剩余库存数
+                                    BeforeOutNum = fromStore.OutNum, //操作前出库数
+                                    AfterOutNum = fromStore.OutNum - 1, //操作后出库数
+                                }).Entity;
+                                db.SaveChanges();
+
+                                StoreBalance tbalance = db.StoreBalance.Add(new StoreBalance()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    StoreId = toStore.Id, //仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    OpStoreNum = 1, //操作库存数
+                                    OpSymbol = "+", //操作符
+                                    BeforeTotalNum = toStore.TotalNum, //操作前总库存数
+                                    AfterTotalNum = toStore.TotalNum + 1, //操作后总库存数
+                                    BeforeLaveNum = toStore.LaveNum, //操作前剩余库存数
+                                    AfterLaveNum = toStore.LaveNum + 1, //操作后剩余库存数
+                                    BeforeOutNum = toStore.OutNum, //操作前出库数
+                                    AfterOutNum = toStore.OutNum, //操作后出库数
+                                }).Entity;
+                                db.SaveChanges();
+
+                                posInfo.StoreId = toStore.Id;
+                                posInfo.BuyUserId = 0;
+                                posInfo.UserId = 0;
+                                posInfo.RecycEndDate = null;
+                                posInfo.PosSnType = 0;
+                                posInfo.BindMerchantId = 0;
+                                posInfo.ActivityList = null;
+                                posInfo.ScanQrTrade = 0;
+                                posInfo.DebitCardTrade = 0;
+                                posInfo.PrizeParams = null;
+                                posInfo.IsVip = 0;
+                                posInfo.CreditTrade = 0;
+                                posInfo.UserNav = null;
+                                posInfo.TransferTime = null;
+                                posInfo.IsPurchase = 0;
+                                posInfo.BindingTime = null;
+                                posInfo.BindingState = 0;
+                                posInfo.ActivationTime = null;
+                                posInfo.ActivationState = 0;
+                                posInfo.LeaderUserId = 0;
+                                posInfo.PreUserId = 0;
+                                posInfo.IsFirst = 0;
+                                fuserMachineData.TotalMachineCount -= 1;
+                                fuserMachineData.UnBindCount -= 1;
+                                toStore.TotalNum += 1;
+                                toStore.LaveNum += 1;
+                                fromStore.TotalNum -= 1;
+                                fromStore.LaveNum -= 1;
+                                db.SaveChanges();
+                            }
+                            else
+                            {
+                                var changeNo = "JJBH" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
+                                StoreStockChange stockchange = db.StoreStockChange.Add(new StoreStockChange()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    StoreId = fromStore.Id, //出货仓库
+                                    ToStoreId = toStore.Id, //发货仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    ProductName = RelationClass.GetKqProductBrandInfo(Convert.ToInt32(BrandId)), //产品名称
+                                    ChangeNo = changeNo, //变更记录单号
+                                    BizBatchNo = No, //业务批次号
+                                    TransType = 4, //交易类型
+                                    SnNo = PosSn, //SN编号
+                                    StockOpDirect = 1, //库存操作方向
+                                    SnStatus = 1, //SN状态
+                                    DeviceVendor = posInfo.DeviceName, //设备厂商
+                                    DeviceModel = posInfo.DeviceKind, //设备型号
+                                    DeviceType = posInfo.DeviceType, //设备类型                    
+                                    SourceStoreId = posInfo.SourceStoreId, //源仓库编号
+                                    BrandType = posInfo.DeviceType, //品牌类型
+                                }).Entity;
+                                db.SaveChanges();
+
+                                db.StoreChangeHistory.Add(new StoreChangeHistory()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    UserId = user.Id, //创客
+                                    FromUserId = user.Id,//来源创客
+                                    ToUserId = toStore.UserId,//接收创客
+                                    StoreId = fromStore.Id, //出货仓库
+                                    ToStoreId = toStore.Id, //发货仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    ChangeRecordNo = changeNo, //变更记录单号
+                                    SeoTitle = "机具驳回仓库",
+                                    BizBatchNo = No, //业务批次号
+                                    SnNo = PosSn, //SN编号
+                                    TransType = 4,//驳回
+                                });
+                                db.SaveChanges();
+
+                                StoreBalance balance = db.StoreBalance.Add(new StoreBalance()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    StoreId = fromStore.Id, //仓库
+                                    BrandId = Convert.ToInt32(BrandId), //产品类型
+                                    OpStoreNum = 1, //操作库存数
+                                    OpSymbol = "-", //操作符
+                                    BeforeTotalNum = fromStore.TotalNum, //操作前总库存数
+                                    AfterTotalNum = fromStore.TotalNum - 1, //操作后总库存数
+                                    BeforeLaveNum = fromStore.LaveNum, //操作前剩余库存数
+                                    AfterLaveNum = fromStore.LaveNum - 1, //操作后剩余库存数
+                                    BeforeOutNum = fromStore.OutNum, //操作前出库数
+                                    AfterOutNum = fromStore.OutNum - 1, //操作后出库数
+                                }).Entity;
+                                db.SaveChanges();
+
+                                posInfo.StoreId = toStore.Id;
+                                posInfo.BuyUserId = 0;
+                                posInfo.UserId = 0;
+                                posInfo.RecycEndDate = null;
+                                posInfo.PosSnType = 0;
+                                posInfo.BindMerchantId = 0;
+                                posInfo.ActivityList = null;
+                                posInfo.ScanQrTrade = 0;
+                                posInfo.DebitCardTrade = 0;
+                                posInfo.PrizeParams = null;
+                                posInfo.IsVip = 0;
+                                posInfo.CreditTrade = 0;
+                                posInfo.UserNav = null;
+                                posInfo.TransferTime = null;
+                                posInfo.IsPurchase = 0;
+                                posInfo.BindingTime = null;
+                                posInfo.BindingState = 0;
+                                posInfo.ActivationTime = null;
+                                posInfo.ActivationState = 0;
+                                posInfo.LeaderUserId = 0;
+                                posInfo.PreUserId = 0;
+                                posInfo.IsFirst = 0;
+                                fuserMachineData.TotalMachineCount -= 1;
+                                fuserMachineData.UnBindCount -= 1;
+                                toStore.LaveNum += 1;
+                                toStore.TotalNum += 1;
+                                db.SaveChanges();
+                            }
+                            db.SaveChanges();
+
+                        }
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(error))
+                {
+                    return "Warning|" + error;
+                }
+            }
+            AddSysLog("0", "MachinesRejectStore", "Import");
+            return "success";
+        }
+        #endregion
+
+
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(StoreHouse data, string UserIdMakerCode, string UserIdRealName, string ManageUserIdRealName, string ManageUserIdMobile, string ManageUserIdMakerCode, string StoreStatusSelect)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("StoreNo", "1"); //仓库编号
+            Fields.Add("CreateDate", "3"); //时间
+            Fields.Add("StoreName", "1"); //仓库名称
+            Fields.Add("ManagerEmail", "1"); //管理者邮箱
+
+
+            string condition = " and Status>-1";
+            //仓库归属人创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //仓库归属人真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //仓库管理员真实姓名
+            if (!string.IsNullOrEmpty(ManageUserIdRealName))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForRealName where RealName='" + ManageUserIdRealName + "')";
+            }
+            //仓库管理员手机号
+            if (!string.IsNullOrEmpty(ManageUserIdMobile))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForMobile where Mobile='" + ManageUserIdMobile + "')";
+            }
+            //仓库管理员创客编号
+            if (!string.IsNullOrEmpty(ManageUserIdMakerCode))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForMakerCode where MakerCode='" + ManageUserIdMakerCode + "')";
+            }
+            //仓库状态
+            if (!string.IsNullOrEmpty(StoreStatusSelect))
+            {
+                condition += " and StoreStatus=" + StoreStatusSelect;
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("StoreHouse", Fields, "Id desc", "0", 1, 20000, condition, "StoreNo,StoreName,UserId,BrandId,Address,ManageUserId,ManagerEmail,StoreType,TotalNum,LaveNum,OutNum,LimitTopUserId,StoreStatus,StoreKind", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //仓库归属人
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = userid_Users.MakerCode;
+                dic["UserIdRealName"] = userid_Users.RealName;
+                //产品类型
+                dic["BrandId"] = RelationClass.GetKqProductBrandList(dic["BrandId"].ToString());
+                //仓库管理员
+                int ManageUserId = int.Parse(function.CheckInt(dic["ManageUserId"].ToString()));
+                Users manageuserid_Users = db.Users.FirstOrDefault(m => m.Id == ManageUserId) ?? new Users();
+                dic["ManageUserIdRealName"] = manageuserid_Users.RealName;
+                dic["ManageUserIdMobile"] = manageuserid_Users.Mobile;
+                dic["ManageUserIdMakerCode"] = manageuserid_Users.MakerCode;
+                //仓库类型
+                int StoreType = int.Parse(dic["StoreType"].ToString());
+                if (StoreType == 0) dic["StoreType"] = "实体仓";
+                if (StoreType == 1) dic["StoreType"] = "虚拟仓";
+                //仓库状态
+                int StoreStatus = int.Parse(dic["StoreStatus"].ToString());
+                if (StoreStatus == 1) dic["StoreStatus"] = "启用";
+                if (StoreStatus == 0) dic["StoreStatus"] = "禁用";
+                //仓库归属类型
+                int StoreKind = int.Parse(dic["StoreKind"].ToString());
+                if (StoreKind == 0) dic["StoreKind"] = "分仓";
+                if (StoreKind == 1) dic["StoreKind"] = "总仓";
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("StoreNo", "仓库编号");
+            ReturnFields.Add("StoreName", "仓库名称");
+            ReturnFields.Add("UserIdMakerCode", "仓库归属人创客编号");
+            ReturnFields.Add("UserIdRealName", "仓库归属人真实姓名");
+            ReturnFields.Add("BrandId", "产品类型");
+            ReturnFields.Add("Address", "仓库地址");
+            ReturnFields.Add("ManageUserIdRealName", "仓库管理员真实姓名");
+            ReturnFields.Add("ManageUserIdMobile", "仓库管理员手机号");
+            ReturnFields.Add("ManageUserIdMakerCode", "仓库管理员创客编号");
+            ReturnFields.Add("ManagerEmail", "管理者邮箱");
+            ReturnFields.Add("StoreType", "仓库类型");
+            ReturnFields.Add("TotalNum", "总库存数");
+            ReturnFields.Add("LaveNum", "剩余库存数");
+            ReturnFields.Add("OutNum", "出库数");
+            ReturnFields.Add("LimitTopUserId", "限制创客特殊仓库");
+            ReturnFields.Add("StoreStatus", "仓库状态");
+            ReturnFields.Add("StoreKind", "仓库归属类型");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "StoreHouse", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+
+
+
+        #region 仓库列表
+
+        /// <summary>
+        /// 根据条件查询仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Stat(StoreHouse data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询仓库列表
+
+        /// <summary>
+        /// 仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult StatDo(string CreateDateData, int page = 1, int limit = 30)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["StatSqlConnStr"].ToString();
+            string sCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
+            string eCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                sCreateDate = datelist[0] + " 00:00:00";
+                eCreateDate = datelist[1] + " 23:59:59";
+            }
+            else
+            {
+                Dictionary<string, object> nodata = new Dictionary<string, object>();
+                nodata.Add("code", 0);
+                nodata.Add("msg", "");
+                nodata.Add("count", 0);
+                nodata.Add("data", new List<Dictionary<string, object>>());
+
+                return Json(nodata);
+            }
+            string minId = "0";
+            string maxId = "0";
+            string minPosId = "0";
+            string maxPosId = "0";
+            DataTable startDt = OtherMySqlConn.dtable("select min(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (startDt.Rows.Count > 0)
+            {
+                minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    startDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (startDt.Rows.Count > 0)
+                    {
+                        minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (endDt.Rows.Count > 0)
+            {
+                maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (endDt.Rows.Count > 0)
+                    {
+                        maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable startPosDt = OtherMySqlConn.dtable("select min(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (startPosDt.Rows.Count > 0)
+            {
+                minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                if (minPosId == "0")
+                {
+                    startPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (startPosDt.Rows.Count > 0)
+                    {
+                        minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (endPosDt.Rows.Count > 0)
+            {
+                maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                if (maxPosId == "0")
+                {
+                    endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (endPosDt.Rows.Count > 0)
+                    {
+                        maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable list = OtherMySqlConn.dtable("select * from (select s.StoreName,s.StoreNo,u.RealName,u.Mobile,k.Name,s.LaveNum,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType=1) as c1,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType in (10,11,2)) as c2,(select count(Id) from PosMachinesTwo where Id>=" + minPosId + " and Id<=" + maxPosId + " and ActivationState=1 and ActivationTime>='" + sCreateDate + "' and ActivationTime<='" + eCreateDate + "' and StoreId=s.Id) as c3 from StoreHouse s left join Users u on s.BrandId>0 and s.UserId=u.Id left join KqProducts k on s.BrandId=k.Id) tb where c1>0 or c2>0 or c3>0");
+
+            int recordcount = list.Rows.Count;
+            List<Dictionary<string, object>> diclist = new List<Dictionary<string, object>>();
+            foreach (DataRow sub in list.Rows)
+            {
+                Dictionary<string, object> row = new Dictionary<string, object>();
+                row.Add("StoreName", sub["StoreName"].ToString());
+                row.Add("StoreNo", sub["StoreNo"].ToString());
+                row.Add("Mobile", sub["Mobile"].ToString());
+                row.Add("RealName", sub["RealName"].ToString());
+                row.Add("Name", sub["Name"].ToString());
+                row.Add("LaveNum", sub["LaveNum"].ToString());
+                row.Add("c1", sub["c1"].ToString());
+                row.Add("c2", sub["c2"].ToString());
+                row.Add("c3", sub["c3"].ToString());
+                diclist.Add(row);
+            }
+
+            Dictionary<string, object> obj = new Dictionary<string, object>();
+            obj.Add("code", 0);
+            obj.Add("msg", "");
+            obj.Add("count", recordcount);
+            obj.Add("data", diclist);
+
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult StatExportExcel(string CreateDateData)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["StatSqlConnStr"].ToString();
+            string sCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
+            string eCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                sCreateDate = datelist[0] + " 00:00:00";
+                eCreateDate = datelist[1] + " 23:59:59";
+            }
+            else
+            {
+                Dictionary<string, object> nodata = new Dictionary<string, object>();
+                nodata.Add("Status", "1");
+                nodata.Add("Info", "分仓统计数据报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+                nodata.Add("Obj", new List<Dictionary<string, object>>());
+                Dictionary<string, object> NoDataReturnFields = new Dictionary<string, object>();
+                NoDataReturnFields.Add("StoreName", "仓库名称");
+                NoDataReturnFields.Add("StoreNo", "仓库编号");
+                NoDataReturnFields.Add("Mobile", "仓库所属人手机号");
+                NoDataReturnFields.Add("RealName", "仓库所属人名称");
+                NoDataReturnFields.Add("MakerCode", "仓库所属人编码");
+                NoDataReturnFields.Add("ManageMakerCode", "仓库管理员编码");
+                NoDataReturnFields.Add("Name", "品牌");
+                NoDataReturnFields.Add("LaveNum", "当前库存");
+                NoDataReturnFields.Add("c1", "出库(调拨)量");
+                NoDataReturnFields.Add("c2", "出货(发货到创客)量");
+                NoDataReturnFields.Add("c3", "激活量");
+                nodata.Add("Fields", NoDataReturnFields);
+                return Json(nodata);
+            }
+            string minId = "0";
+            string maxId = "0";
+            string minPosId = "0";
+            string maxPosId = "0";
+            DataTable startDt = OtherMySqlConn.dtable("select min(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (startDt.Rows.Count > 0)
+            {
+                minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    startDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (startDt.Rows.Count > 0)
+                    {
+                        minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (endDt.Rows.Count > 0)
+            {
+                maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (endDt.Rows.Count > 0)
+                    {
+                        maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable startPosDt = OtherMySqlConn.dtable("select min(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (startPosDt.Rows.Count > 0)
+            {
+                minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                if (minPosId == "0")
+                {
+                    startPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (startPosDt.Rows.Count > 0)
+                    {
+                        minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (endPosDt.Rows.Count > 0)
+            {
+                maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                if (maxPosId == "0")
+                {
+                    endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (endPosDt.Rows.Count > 0)
+                    {
+                        maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable list = OtherMySqlConn.dtable("select * from (select s.StoreName,s.StoreNo,u.RealName,u.Mobile,u.MakerCode,(select MakerCode from Users where Id=s.ManageUserId) as ManageMakerCode,k.Name,s.LaveNum,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType=1) as c1,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType in (10,11,2)) as c2,(select count(Id) from PosMachinesTwo where Id>=" + minPosId + " and Id<=" + maxPosId + " and ActivationState=1 and ActivationTime>='" + sCreateDate + "' and ActivationTime<='" + eCreateDate + "' and StoreId=s.Id) as c3 from StoreHouse s left join Users u on s.BrandId>0 and s.UserId=u.Id left join KqProducts k on s.BrandId=k.Id) tb where c1>0 or c2>0 or c3>0");
+
+            int recordcount = list.Rows.Count;
+            List<Dictionary<string, object>> diclist = new List<Dictionary<string, object>>();
+            foreach (DataRow sub in list.Rows)
+            {
+                Dictionary<string, object> row = new Dictionary<string, object>();
+                row.Add("StoreName", sub["StoreName"].ToString());
+                row.Add("StoreNo", sub["StoreNo"].ToString());
+                row.Add("Mobile", sub["Mobile"].ToString());
+                row.Add("RealName", sub["RealName"].ToString());
+                row.Add("MakerCode", sub["MakerCode"].ToString());
+                row.Add("ManageMakerCode", sub["ManageMakerCode"].ToString());
+                row.Add("Name", sub["Name"].ToString());
+                row.Add("LaveNum", sub["LaveNum"].ToString());
+                row.Add("c1", sub["c1"].ToString());
+                row.Add("c2", sub["c2"].ToString());
+                row.Add("c3", sub["c3"].ToString());
+                diclist.Add(row);
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "分仓统计数据报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("StoreName", "仓库名称");
+            ReturnFields.Add("StoreNo", "仓库编号");
+            ReturnFields.Add("Mobile", "仓库所属人手机号");
+            ReturnFields.Add("RealName", "仓库所属人名称");
+            ReturnFields.Add("MakerCode", "仓库所属人编码");
+            ReturnFields.Add("ManageMakerCode", "仓库管理员编码");
+            ReturnFields.Add("Name", "品牌");
+            ReturnFields.Add("LaveNum", "当前库存");
+            ReturnFields.Add("c1", "出库(调拨)量");
+            ReturnFields.Add("c2", "出货(发货到创客)量");
+            ReturnFields.Add("c3", "激活量");
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "StoreHouse", "StatExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 同步数据
+
+        /// <summary>
+        /// 同步数据
+        /// </summary>
+        /// <returns></returns>
+        public string SycnData(int Id = 0)
+        {
+            if (Id > 0)
+            {
+                DataTable dt = OtherMySqlConn.dtable("select Id,(select count(Id) from PosMachinesTwo where StoreId=s.Id and BuyUserId=0 and PreUserId=0 and Status>-1) as CurLaveNum from StoreHouse s where Id=" + Id);
+                if (dt.Rows.Count > 0)
+                {
+                    int CurLaveNum = int.Parse(function.CheckInt(dt.Rows[0]["CurLaveNum"].ToString()));
+                    StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+                    if (store != null)
+                    {
+                        store.LaveNum = CurLaveNum;
+                        db.SaveChanges();
+                    }
+                }
+            }
+            else
+            {
+                DataTable dt = OtherMySqlConn.dtable("select s.Id,LaveNum,count(p.Id) as CurLaveNum from StoreHouse s left join PosMachinesTwo p on s.Id=p.StoreId and s.BrandId=p.BrandId and p.BuyUserId=0 and p.PreUserId=0 and p.Status>-1 group by s.Id HAVING LaveNum!=count(p.Id)");
+                foreach (DataRow dr in dt.Rows)
+                {
+                    int StoreId = int.Parse(function.CheckInt(dr["Id"].ToString()));
+                    int CurLaveNum = int.Parse(function.CheckInt(dr["CurLaveNum"].ToString()));
+                    StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                    if (store != null)
+                    {
+                        store.LaveNum = CurLaveNum;
+                        db.SaveChanges();
+                    }
+                }
+            }
+            AddSysLog(Id, "StoreHouse", "SycnData");
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 设置缓存
+
+        private void SetRedis(int Id, int UserId)
+        {
+            if (UserId > 0)
+            {
+            }
+        }
+
+        #endregion
+
+
+        #region 关联分仓
+
+        /// <summary>
+        /// 关联分仓
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchSetting(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+
+        #region 关联分仓
+
+        /// <summary>
+        /// 关联分仓
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string BatchSetting(string Id, string MakerCode)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "StoreHouseBatchSetting");
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == userForMakerCode.UserId) ?? new OpModels.SysAdmin();
+                if (sysAdmin.Id > 0)
+                {
+                    DataTable dt = OtherMySqlConn.dtable("UPDATE StoreHouse SET OpId=" + sysAdmin.Id + " WHERE Id IN (" + Id + ") AND OpId =" + sysAdmin.Id + " AND `Status` >0");
+                    // new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, pos.Id);
+                    db.SaveChanges();
+                    foreach (var item in idlist)
+                    {
+                        int StoreId = int.Parse(item);
+                        var amount = 0;
+                        var tamount = 0;
+                        var storeInfo = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        var posCount = db.PosMachinesTwo.Where(m => m.StoreId == StoreId && m.UserId == 0 && m.BuyUserId == 0 && m.PreUserId == 0).Count();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == int.Parse(storeInfo.BrandId));
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 100;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 150;
+                        }
+                        tamount = amount * posCount;//扣减运营中心该品牌机具额度
+                        var userAmount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sysAdmin.Id) ?? new OpModels.UserAccount();
+                        userAmount.ValidAmount -= tamount;
+                        storeInfo.OpId = sysAdmin.Id;
+                        db.SaveChanges();
+                        opdb.SaveChanges();
+                        var query = opdb.StoreForOperate.FirstOrDefault(m => m.OpId == sysAdmin.Id && m.StoreId == StoreId);
+                        if (query == null)
+                        {
+                            query = opdb.StoreForOperate.Add(new OpModels.StoreForOperate()
+                            {
+                                CreateDate = DateTime.Now, //创建时间
+                                OpId = sysAdmin.Id,
+                                StoreId = StoreId,
+                            }).Entity;
+                            opdb.SaveChanges();
+                        }
+                    }
+                    sysAdmin.StoreCount += idlist.Count();//添加关联分仓数
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 取消关联
+
+        /// <summary>
+        /// 取消关联
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchCancle(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+
+        #region 取消关联
+
+        /// <summary>
+        /// 取消关联
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string BatchCancle(string Id, string MakerCode)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "StoreHouseBatchCancle");
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == userForMakerCode.UserId);
+                if (sysAdmin.Id > 0)
+                {
+                    DataTable dt = OtherMySqlConn.dtable("UPDATE StoreHouse SET OpId=0 WHERE Id IN (" + Id + ") AND OpId =" + sysAdmin.Id + " AND `Status` >0");
+                    // new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, pos.Id);
+                    db.SaveChanges();
+                    foreach (var item in idlist)
+                    {
+                        int StoreId = int.Parse(item);
+                        var amount = 0;
+                        var tamount = 0;
+                        var storeInfo = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                        var posCount = db.PosMachinesTwo.Where(m => m.StoreId == StoreId && m.UserId == 0 && m.BuyUserId == 0 && m.PreUserId == 0).Count();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == int.Parse(storeInfo.BrandId));
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 100;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 150;
+                        }
+                        tamount = amount * posCount;//扣减运营中心该品牌机具额度
+                        var userAmount = opdb.UserAccount.FirstOrDefault(m => m.UserId == sysAdmin.Id) ?? new OpModels.UserAccount();
+                        userAmount.ValidAmount += tamount;
+                        opdb.SaveChanges();
+                        var query = opdb.StoreForOperate.FirstOrDefault(m => m.OpId == sysAdmin.Id && m.StoreId == StoreId);
+                        if (query != null)
+                        {
+                            query.UpdateDate = DateTime.Now;
+                            query.Status = -1;
+                            opdb.SaveChanges();
+                        }
+                    }
+                    sysAdmin.StoreCount -= idlist.Count();//减少关联分仓数
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+    }
+}

+ 832 - 0
Areas/Admin/Controllers/OperateServer/StoreMachineApplyOperateController.cs

@@ -0,0 +1,832 @@
+/*
+ * 分仓机具申请记录
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.OpModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class StoreMachineApplyOperateController : BaseController
+    {
+        public StoreMachineApplyOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["OpSqlConnStr"].ToString();
+        }
+
+        #region 分仓机具申请记录列表
+
+        /// <summary>
+        /// 根据条件查询分仓机具申请记录列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(StoreMachineApply data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询分仓机具申请记录列表
+
+        /// <summary>
+        /// 分仓机具申请记录列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(StoreMachineApply data, string MakerCode, string OpCode, string CreateDateData, string StatusSelect, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("ApplyNo", "1"); //申请单号
+            Fields.Add("SendMode", "1"); //发货方式
+
+
+            string condition = " and Status>-1";
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+            }
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and Id in (select Id from SysAdmin where MakerCode='" + MakerCode + "')";
+            }
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                condition += " and Id in (select Id from SysAdmin where OpCode='" + OpCode + "')";
+            }
+
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect + "";
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("StoreMachineApply", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //品牌
+                dic["BrandId"] = RelationClass.GetKqProductBrandInfo(int.Parse(dic["BrandId"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "待配货";
+                if (Status == 1) dic["StatusName"] = "已发货";
+                if (Status == 2) dic["StatusName"] = "已驳回";
+                //创客
+                int OpId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new SysAdmin();
+                dic["MakerName"] = sysAdmin.MakerName;
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic.Remove("UserId");
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加分仓机具申请记录
+
+        /// <summary>
+        /// 增加或修改分仓机具申请记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加分仓机具申请记录
+
+        /// <summary>
+        /// 增加或修改分仓机具申请记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(StoreMachineApply data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+            Fields.Add("BrandId", data.BrandId); //品牌
+            Fields.Add("ApplyNo", data.ApplyNo); //申请单号
+            Fields.Add("ApplyNum", data.ApplyNum); //申请台数
+            Fields.Add("SendNum", data.SendNum); //发货台数
+            Fields.Add("UseAmount", data.UseAmount); //使用额度
+            Fields.Add("SendMode", data.SendMode); //发货方式
+            Fields.Add("ErpCode", data.ErpCode); //快递单号
+            Fields.Add("SendSn", data.SendSn); //发货SN数据
+            Fields.Add("UserId", data.UserId); //创客
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("StoreMachineApply", Fields, 0);
+            AddSysLog(data.Id.ToString(), "StoreMachineApply", "add");
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改分仓机具申请记录
+
+        /// <summary>
+        /// 增加或修改分仓机具申请记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            StoreMachineApply editData = opdb.StoreMachineApply.FirstOrDefault(m => m.Id == Id) ?? new StoreMachineApply();
+            ViewBag.data = editData;
+
+            Models.WebCMSEntities db = new Models.WebCMSEntities();
+            // Users users = db.Users.FirstOrDefault(m => m.Id == editData.UserId) ?? new Users();
+            SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == editData.UserId) ?? new SysAdmin();
+            ViewBag.UserId = sysAdmin.Id;
+            ViewBag.RealName = sysAdmin.RealName;
+            ViewBag.UseAmount = editData.UseAmount;
+            JsonData SendSnList = new JsonData();
+            SendSnList = JsonMapper.ToObject(editData.SendSn);//申请数据
+            List<Dictionary<string, object>> KsProductList = new List<Dictionary<string, object>>();
+            for (int i = 0; i < SendSnList.Count; i++)
+            {
+                int BrandId = Convert.ToInt32(SendSnList[i]["BrandId"].ToString());
+                int Num = Convert.ToInt32(SendSnList[i]["ApplyNum"].ToString());
+                var products = db.KqProducts.Where(m => m.Id == BrandId).ToList();
+                foreach (var product in products)
+                {
+                    Dictionary<string, object> item = new Dictionary<string, object>();
+                    item.Add("BrandId", BrandId);  //商品Id
+                    item.Add("Name", product.Name);  //商品名称
+                    item.Add("Num", Num);  //商品数量
+                    KsProductList.Add(item);
+                }
+            }
+            ViewBag.KsProductList = KsProductList;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 修改分仓机具申请记录
+
+        /// <summary>
+        /// 增加或修改分仓机具申请记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(StoreMachineApply data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Fields.Add("SendSn", data.SendSn); //发货SN数据
+            JsonData SendSnList = new JsonData();
+            SendSnList = JsonMapper.ToObject(data.SendSn);//申请数据
+            int ApplyNum = 0;
+            for (int i = 0; i < SendSnList.Count; i++)
+            {
+                int num = Convert.ToInt32(SendSnList[i]["ApplyNum"].ToString());
+                ApplyNum += num;
+            }
+            Fields.Add("BrandId", data.BrandId); //品牌
+            Fields.Add("ApplyNo", data.ApplyNo); //申请单号
+            Fields.Add("ApplyNum", ApplyNum); //申请台数
+            Fields.Add("SendNum", data.SendNum); //发货台数
+            Fields.Add("UseAmount", data.UseAmount); //使用额度
+            Fields.Add("SendMode", data.SendMode); //发货方式
+            Fields.Add("ErpCode", data.ErpCode); //快递单号
+            Fields.Add("UserId", data.UserId); //创客
+
+            Fields.Add("SeoTitle", SysUserName + '-' + SysRealName);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("StoreMachineApply", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "OpStoreMachineApply", "update");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除分仓机具申请记录信息
+
+        /// <summary>
+        /// 删除分仓机具申请记录信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreMachineApply", "del");
+            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.OpTables).Edit("StoreMachineApply", Fields, id);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreMachineApply", "open");
+            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.OpTables).Edit("StoreMachineApply", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreMachineApply", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 2);
+                var query = db.StoreMachineApply.FirstOrDefault(m => m.Id == id);
+                var users = db.UserAccount.FirstOrDefault(m => m.Id == query.UserId);
+                users.ValidAmount += query.UseAmount;
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("StoreMachineApply", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Sort("StoreMachineApply", Sort, Id);
+
+            AddSysLog(Id.ToString(), "StoreMachineApply", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                opdb.StoreMachineApply.Add(new StoreMachineApply()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                db.SaveChanges();
+            }
+            AddSysLog("0", "OpStoreMachineApply", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(StoreMachineApply data, string BrandIdSelect, string UserIdRealName, string UserIdMakerCode)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CreateDate", "3"); //时间
+            Fields.Add("ApplyNo", "1"); //申请单号
+            Fields.Add("SendMode", "1"); //发货方式
+
+
+            string condition = " and Status>-1";
+            //品牌
+            if (!string.IsNullOrEmpty(BrandIdSelect))
+            {
+                condition += " and BrandId=" + BrandIdSelect;
+            }
+            //创客真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("StoreMachineApply", Fields, "Id desc", "0", 1, 20000, condition, "BrandId,ApplyNo,ApplyNum,SendNum,UseAmount,SendMode,ErpCode,UserId", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //品牌
+                dic["BrandId"] = RelationClass.GetKqProductBrandInfo(int.Parse(dic["BrandId"].ToString()));
+                dic["StatusName"] = dic["Status"].ToString() == "1" ? "正常" : "关闭";
+                //运营中心
+                int OpId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new SysAdmin();
+                // Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["MakerName"] = sysAdmin.MakerName;
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic.Remove("OpId");
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("BrandId", "品牌");
+            ReturnFields.Add("ApplyNo", "申请单号");
+            ReturnFields.Add("ApplyNum", "申请台数");
+            ReturnFields.Add("SendNum", "发货台数");
+            ReturnFields.Add("UseAmount", "使用额度");
+            ReturnFields.Add("SendMode", "发货方式");
+            ReturnFields.Add("ErpCode", "快递单号");
+            ReturnFields.Add("MakerName", "创客真实姓名");
+            ReturnFields.Add("MakerName", "创客编号");
+            ReturnFields.Add("OpCode", "运营中心编号");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "OpStoreMachineApply", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 审核发货
+
+        public IActionResult AuditSend(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            StoreMachineApply editData = opdb.StoreMachineApply.FirstOrDefault(m => m.Id == Id) ?? new StoreMachineApply();
+            ViewBag.data = editData;
+
+            SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == editData.UserId) ?? new SysAdmin();
+            // Users users = db.Users.FirstOrDefault(m => m.Id == editData.UserId) ?? new Users();
+            ViewBag.OpCode = sysAdmin.OpCode;
+            ViewBag.MakerCode = sysAdmin.MakerCode;
+            ViewBag.MakerName = sysAdmin.MakerName;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 审核发货
+
+        [HttpPost]
+        public string AuditSend(StoreMachineApply data, string ExcelData)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Fields.Add("ApplyNum", data.ApplyNum); //申请数
+            Fields.Add("SendNum", data.ApplyNum); //发货数
+            Fields.Add("ErpCode", data.ErpCode); //快递单号
+            Fields.Add("SendMode", data.SendMode); //发货方式
+            Fields.Add("SeoKeyword", data.SeoKeyword); //申请描述
+            Fields.Add("Status", 1);
+            AddSysLog(data.Id.ToString(), "StoreMachineApply", "AuditSend");
+            Dictionary<string, object> Obj = new Dictionary<string, object>();
+            List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
+            List<SendInfo> sendInfos = new List<SendInfo>();
+            List<CheckSendInfo> checksendInfos = new List<CheckSendInfo>();
+            StoreMachineApply apply = opdb.StoreMachineApply.FirstOrDefault(m => m.Id == data.Id) ?? new StoreMachineApply();
+            JsonData ApplyList = JsonMapper.ToObject(apply.SendSn);
+            decimal ApplyAmount = 0;
+            decimal Amount = 0;
+            for (int i = 0; i < ApplyList.Count; i++)
+            {
+                int num = Convert.ToInt32(ApplyList[i]["ApplyNum"].ToString());
+                int BrandIds = Convert.ToInt32(ApplyList[i]["BrandId"].ToString());
+                //自动匹配品牌
+                var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == BrandIds);
+                if (brandInfo.Name.Contains("电签"))
+                {
+                    ApplyAmount += num * 200;
+                }
+                if (brandInfo.Name.Contains("大POS"))
+                {
+                    ApplyAmount += num * 300;
+                }
+            }
+            Amount = apply.UseAmount - ApplyAmount;
+            Models.StoreHouse tostore = new Models.StoreHouse();
+            Models.StoreHouse fromstore = new Models.StoreHouse();
+
+            var BrandId = 0;
+            var FromStoreId = 0;
+            string error = "";
+            if (string.IsNullOrEmpty(ExcelData))
+            {
+                return "Warning|" + "请选择要导入的数据";
+            }
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+
+            //判断各品牌发货数量是否符合
+            if (list.Count - 1 > apply.ApplyNum)
+            {
+                return "Warning|" + "机具发货数量过多!";
+            }
+            if (list.Count - 1 < apply.ApplyNum)
+            {
+                return "Warning|" + "机具发货数量不足!";
+            }
+            for (int index = 1; index < list.Count; index++)
+            {
+                JsonData dr = list[index];
+                string itemJson = dr.ToJson();
+                string SnNo = itemJson.Contains("\"A\"") ? dr["A"].ToString() : "";
+                string Brand = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
+                string BatchNo = itemJson.Contains("\"C\"") ? dr["C"].ToString() : "";
+                string OutNote = itemJson.Contains("\"D\"") ? dr["D"].ToString() : "";
+
+                BrandId = Convert.ToInt32(Brand);
+
+                if (BrandId == 1) FromStoreId = 7;
+                if (BrandId == 2) FromStoreId = 721;
+                if (BrandId == 3) FromStoreId = 697;
+                if (BrandId == 4) FromStoreId = 774;
+                if (BrandId == 5) FromStoreId = 775;
+                if (BrandId == 6) FromStoreId = 871;
+                if (BrandId == 7) FromStoreId = 1047;
+                if (BrandId == 8) FromStoreId = 4831;
+                if (BrandId == 9) FromStoreId = 4832;
+                CheckSendInfo items = checksendInfos.FirstOrDefault(m => m.BrandId == BrandId);
+                if (items == null)
+                {
+                    CheckSendInfo rows = new CheckSendInfo()
+                    {
+                        BrandId = BrandId,
+                        Num = 1
+                    };
+                    checksendInfos.Add(rows);
+                }
+                else
+                {
+                    items.Num += 1;
+                }
+            }
+            for (int i = 0; i < ApplyList.Count; i++)
+            {
+                int num = Convert.ToInt32(ApplyList[i]["ApplyNum"].ToString());
+                int BrandIds = Convert.ToInt32(ApplyList[i]["BrandId"].ToString());
+                if (BrandIds == 1) FromStoreId = 7;
+                if (BrandIds == 2) FromStoreId = 721;
+                if (BrandIds == 3) FromStoreId = 697;
+                if (BrandIds == 4) FromStoreId = 774;
+                if (BrandIds == 5) FromStoreId = 775;
+                if (BrandIds == 6) FromStoreId = 871;
+                if (BrandIds == 7) FromStoreId = 1047;
+                if (BrandIds == 8) FromStoreId = 4831;
+                if (BrandIds == 9) FromStoreId = 4832;
+                var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == BrandIds);
+                CheckSendInfo items = checksendInfos.FirstOrDefault(m => m.BrandId == BrandIds) ?? new CheckSendInfo();
+                if (items.Num > num)
+                {
+                    return "Warning|" + "该条发货记录的" + brandInfo.Name + "发货数量过多!";
+                }
+                if (items.Num < num)
+                {
+                    return "Warning|" + "该条发货记录的" + brandInfo.Name + "发货数量不足!";
+                }
+            }
+
+            List<string> PosSnList = new List<string>();
+            for (int index = 1; index < list.Count; index++)
+            {
+                JsonData dr = list[index];
+                string itemJson = dr.ToJson();
+                string SnNo = itemJson.Contains("\"A\"") ? dr["A"].ToString() : "";
+                string Brand = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
+                BrandId = Convert.ToInt32(Brand);
+                Models.MachineForSnNo posInfo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == SnNo) ?? new Models.MachineForSnNo();
+                var pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posInfo.SnId) ?? new Models.PosMachinesTwo();
+                if (posInfo.SnId > 0)
+                {
+                    if (pos.Id > 0)
+                    {
+                        if (pos.BrandId != BrandId)
+                        {
+                            error += "以下操作失败" + SnNo + ',' + "该机具品牌填写错误" + '\n';
+                        }
+                    }
+
+                    if (BrandId == 1) FromStoreId = 7;
+                    if (BrandId == 2) FromStoreId = 721;
+                    if (BrandId == 3) FromStoreId = 697;
+                    if (BrandId == 4) FromStoreId = 774;
+                    if (BrandId == 5) FromStoreId = 775;
+                    if (BrandId == 6) FromStoreId = 871;
+                    if (BrandId == 7) FromStoreId = 1047;
+                    if (BrandId == 8) FromStoreId = 4831;
+                    if (BrandId == 9) FromStoreId = 4832;
+                    if (PosSnList.Contains(SnNo))
+                    {
+                        error += "以下操作失败" + SnNo + ',' + "该机具重复发货" + '\n';
+                    }
+                    PosSnList.Add(SnNo);
+                }
+                else
+                {
+                    error += "以下操作失败" + SnNo + ',' + "未找到该机具" + '\n';
+                }
+            }
+            if (!string.IsNullOrEmpty(error))
+            {
+                return "Warning|" + error;
+            }
+            Dictionary<string, int> storeData = new Dictionary<string, int>();
+            Dictionary<string, int> toStoreData = new Dictionary<string, int>();
+            for (int index = 1; index < list.Count; index++)
+            {
+                JsonData dr = list[index];
+                string itemJson = dr.ToJson();
+                string SnNo = itemJson.Contains("\"A\"") ? dr["A"].ToString() : "";
+                string Brand = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
+                string BatchNo = itemJson.Contains("\"C\"") ? dr["C"].ToString() : "";
+                string OutNote = itemJson.Contains("\"D\"") ? dr["D"].ToString() : "";
+
+                BrandId = Convert.ToInt32(Brand);
+
+                if (BrandId == 1) FromStoreId = 7;
+                if (BrandId == 2) FromStoreId = 721;
+                if (BrandId == 3) FromStoreId = 697;
+                if (BrandId == 4) FromStoreId = 774;
+                if (BrandId == 5) FromStoreId = 775;
+                if (BrandId == 6) FromStoreId = 871;
+                if (BrandId == 7) FromStoreId = 1047;
+                if (BrandId == 8) FromStoreId = 4831;
+                if (BrandId == 9) FromStoreId = 4832;
+                tostore = db.StoreHouse.FirstOrDefault(m => m.Sort == apply.UserId && m.BrandId == BrandId.ToString() && m.Status > -1);
+                SendInfo item = sendInfos.FirstOrDefault(m => m.FromStoreId == FromStoreId && m.ToStoreId == tostore.Id && m.BrandId == BrandId);
+                if (item == null)
+                {
+                    SendInfo row = new SendInfo()
+                    {
+                        FromStoreId = FromStoreId,
+                        ToStoreId = tostore.Id,
+                        BrandId = BrandId,
+                        Num = 1
+                    };
+                    sendInfos.Add(row);
+                }
+                else
+                {
+                    item.Num += 1;
+                }
+
+                apply.SeoDescription = function.CheckString(SnNo) + ',';
+
+                fromstore = db.StoreHouse.FirstOrDefault(m => m.Id == FromStoreId);
+                tostore = db.StoreHouse.FirstOrDefault(m => m.Sort == apply.UserId && m.BrandId == BrandId.ToString() && m.Status > -1);
+
+                Models.MachineForSnNo machinefor = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == SnNo) ?? new Models.MachineForSnNo();
+                Models.PosMachinesTwo machine = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machinefor.SnId && m.BuyUserId == 0 && m.UserId == 0) ?? new Models.PosMachinesTwo();
+                if (machine.Id > 0)
+                {
+                    if (machine.BrandId != BrandId)
+                    {
+                        return machine.PosSn + "与表格里填写的品牌不一致";
+                    }
+                    else
+                    {
+                        Models.StoreStockChange stockchange = db.StoreStockChange.Add(new Models.StoreStockChange()
+                        {
+                            CreateDate = DateTime.Now,
+                            CreateMan = SysUserName,
+                            Sort = data.Id,//库存变动关联申请记录表
+                            StoreId = FromStoreId, //出货仓库
+                            BrandId = BrandId, //产品类型
+                            ProductName = RelationClass.GetKqProductBrandInfo(BrandId), //产品名称
+                            BizBatchNo = BatchNo, //业务批次号
+                            TransType = 1, //交易类型
+                            SnNo = SnNo, //SN编号
+                            StockOpDirect = 1, //库存操作方向
+                            SnStatus = 1, //SN状态
+                            DeviceVendor = machine.DeviceName, //设备厂商
+                            DeviceModel = machine.DeviceKind, //设备型号
+                            DeviceType = machine.DeviceType, //设备类型
+                            FromUserId = fromstore.UserId, //出货人
+                            FromDate = DateTime.Now, //出库时间
+                            FromRemark = OutNote, //出库备注
+                            ToUserId = tostore.UserId, //收货人
+                            ToStoreId = fromstore.Id, //退货收货仓库                        
+                            SourceStoreId = machine.SourceStoreId, //源仓库编号
+                            BrandType = machine.DeviceType, //品牌类型
+                        }).Entity;
+
+                        string ChangeNo = "CS";
+                        int StoreStockChangeId = stockchange.Id;
+                        string StoreStockChangeIdString = StoreStockChangeId.ToString();
+                        for (int j = 0; j < 18 - StoreStockChangeId.ToString().Length; j++)
+                        {
+                            StoreStockChangeIdString = "0" + StoreStockChangeIdString;
+                        }
+                        ChangeNo += StoreStockChangeIdString;
+                        stockchange.ChangeNo = ChangeNo; //交易流水编号
+                        machine.StoreId = tostore.Id;
+
+                        db.StoreChangeHistory.Add(new Models.StoreChangeHistory()
+                        {
+                            CreateDate = DateTime.Now,
+                            UserId = fromstore.UserId, //创客
+                            BrandId = BrandId, //产品类型
+                            ChangeRecordNo = ChangeNo, //变更记录单号
+                            BizBatchNo = BatchNo, //业务批次号
+                            TransType = 1, //交易类型
+                            SnNo = SnNo, //SN编号
+                            SnType = machine.PosSnType, //SN机具类型
+                            StockOpDirect = 1, //库存操作方向
+                            DeviceVendor = machine.DeviceName, //设备厂商
+                            DeviceModel = machine.DeviceKind, //设备型号
+                            DeviceType = machine.DeviceType, //设备类型
+                            FromUserId = fromstore.UserId, //出货创客
+                            FromDate = DateTime.Now, //出库时间
+                            FromRemark = OutNote, //出库备注
+                            SourceStoreId = machine.SourceStoreId, //源仓库
+                            StoreId = fromstore.Id, //仓库
+                            ToUserId = tostore.UserId,//收货创客
+                        });
+
+                        //修改机具所属仓库
+                        machine.StoreId = tostore.Id;
+                        machine.UpdateDate = DateTime.Now;
+                    }
+                }
+                else
+                {
+                    return "总仓无该机具";
+                }
+            }
+
+            foreach (var item in sendInfos)
+            {
+                //出货仓库数据调整
+                Models.StoreHouse storeCH = db.StoreHouse.FirstOrDefault(m => m.Id == item.FromStoreId) ?? new Models.StoreHouse();
+                Models.StoreBalance balance = db.StoreBalance.Add(new Models.StoreBalance()
+                {
+                    CreateDate = DateTime.Now,
+                    StoreId = storeCH.Id, //仓库
+                    TransType = 1, //交易类型
+                    BrandId = BrandId, //产品类型
+                    OpStoreNum = item.Num, //操作库存数
+                    OpSymbol = "-", //操作符
+                    BeforeTotalNum = storeCH.TotalNum, //操作前总库存数
+                    AfterTotalNum = storeCH.TotalNum - item.Num, //操作后总库存数
+                    BeforeLaveNum = storeCH.LaveNum, //操作前剩余库存数
+                    AfterLaveNum = storeCH.LaveNum - item.Num, //操作后剩余库存数
+                    BeforeOutNum = storeCH.OutNum, //操作前出库数
+                    AfterOutNum = storeCH.OutNum + item.Num, //操作后出库数
+                }).Entity;
+                string ChangeNo1 = "CS";
+                int StoreStockChangeId1 = balance.Id;
+                string StoreStockChangeId1String = StoreStockChangeId1.ToString();
+                for (int i = 0; i < 18 - StoreStockChangeId1.ToString().Length; i++)
+                {
+                    StoreStockChangeId1String = "0" + StoreStockChangeId1String;
+                }
+                ChangeNo1 += StoreStockChangeId1String;
+                balance.TransRecordNo = ChangeNo1; //交易流水编号
+                storeCH.LaveNum -= item.Num;
+                storeCH.OutNum += item.Num;
+
+                //收货仓库数据调整
+                Models.StoreHouse storeSH = db.StoreHouse.FirstOrDefault(m => m.Id == item.ToStoreId) ?? new Models.StoreHouse();
+                balance = db.StoreBalance.Add(new Models.StoreBalance()
+                {
+                    CreateDate = DateTime.Now,
+                    StoreId = storeSH.Id, //仓库
+                    TransType = 0, //交易类型
+                    BrandId = BrandId, //产品类型
+                    OpStoreNum = item.Num, //操作库存数
+                    OpSymbol = "+", //操作符
+                    BeforeTotalNum = storeSH.TotalNum, //操作前总库存数
+                    AfterTotalNum = storeSH.TotalNum + item.Num, //操作后总库存数
+                    BeforeLaveNum = storeSH.LaveNum, //操作前剩余库存数
+                    AfterLaveNum = storeSH.LaveNum + item.Num, //操作后剩余库存数
+                    BeforeOutNum = storeSH.OutNum, //操作前出库数
+                    AfterOutNum = storeSH.OutNum, //操作后出库数
+                }).Entity;
+                string ChangeNo2 = "CS";
+                int StoreStockChangeId2 = balance.Id;
+                string StoreStockChangeId2String = StoreStockChangeId2.ToString();
+                for (int i = 0; i < 18 - StoreStockChangeId2.ToString().Length; i++)
+                {
+                    StoreStockChangeId2String = "0" + StoreStockChangeId2String;
+                }
+                ChangeNo2 += StoreStockChangeId2String;
+                balance.TransRecordNo = ChangeNo2; //交易流水编号
+                storeSH.TotalNum += item.Num;
+                storeSH.LaveNum += item.Num;
+            }
+            apply.SeoTitle = SysUserName + '-' + SysRealName;//添加操作人信息
+            apply.UseAmount = ApplyAmount;
+
+            db.SaveChanges();
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("StoreMachineApply", Fields, data.Id);
+
+            string SendData = "{\"Kind\":\"2\",\"Data\":{\"UserId\":\"" + apply.UserId + "\",\"Amount\":\"" + Amount + "\",\"OperateType\":\"1\"}}";
+            RedisDbconn.Instance.AddList("StoreApplyQueue", SendData);
+            return "success";
+
+        }
+        #endregion
+
+        //发货信息实体类
+        private class SendInfo
+        {
+            public int FromStoreId { get; set; }
+            public int ToStoreId { get; set; }
+            public int BrandId { get; set; }
+            public int Num { get; set; }
+        }
+
+        //检查发货信息实体类
+        private class CheckSendInfo
+        {
+            public int BrandId { get; set; }
+            public int Num { get; set; }
+        }
+
+    }
+}

+ 659 - 0
Areas/Admin/Controllers/OperateServer/SysAdminOperateController.cs

@@ -0,0 +1,659 @@
+/*
+ * 运营中心
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.OpModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class SysAdminOperateController : BaseController
+    {
+        public SysAdminOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["OpSqlConnStr"].ToString();
+        }
+
+        #region 运营中心列表
+
+        /// <summary>
+        /// 根据条件查询运营中心列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(SysAdmin data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            string Condition = "";
+            Condition += "AdminName:\"" + data.AdminName + "\",";
+            Condition += "RealName:\"" + data.RealName + "\",";
+            Condition += "Role:\"" + data.Role + "\",";
+
+            if (!string.IsNullOrEmpty(Condition))
+            {
+                Condition = Condition.TrimEnd(',');
+                Condition = ", where: {" + Condition + "}";
+            }
+            ViewBag.Condition = Condition;
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询运营中心列表
+
+        /// <summary>
+        /// 运营中心列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(SysAdmin data, string OpCode, string RealName, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("RealName", "2"); //名称
+
+            string condition = " and Status>-1";
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                condition += " and Id in (select OpId from OperateForCode where OpCode='" + OpCode + "')";
+            }
+            // //运营中心名称
+            // if (!string.IsNullOrEmpty(RealName))
+            // {
+            //     condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            // }
+            //创建时间
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("SysAdmin", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //所属人信息
+                int Id = int.Parse(dic["Id"].ToString());
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id) ?? new SysAdmin();
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["MakerName"] = sysAdmin.MakerName;
+
+                //实缴额度
+                UserAccount userAccount = opdb.UserAccount.FirstOrDefault(m => m.UserId == Id) ?? new UserAccount();
+                dic["TotalAmt"] = userAccount.TotalAmt;
+
+                //当前额度
+                dic["ValidAmount"] = userAccount.ValidAmount;
+
+                //已提现金额
+                dic["WithdrawAmount"] = userAccount.WithdrawAmount;
+
+                //提现中金额
+                dic["WithdrawingAmount"] = userAccount.WithdrawingAmount;
+
+                //分仓数量 StoreForOperate
+                // dic["StoreCount"] = opdb.StoreForOperate.Where(m => m.OpId == Id).Count();
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加运营中心
+
+        /// <summary>
+        /// 增加或修改运营中心信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加运营中心
+
+        /// <summary>
+        /// 增加或修改运营中心信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(SysAdmin data, UserAccount userAccount, string Areas, string Address)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Dictionary<string, object> Field = new Dictionary<string, object>();
+
+            // Models.WebCMSEntities db = new Models.WebCMSEntities();
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == data.MakerCode) ?? new Models.UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var userInfo = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId && m.Mobile == data.MakerMobile) ?? new Models.Users();
+                if (userInfo.Id > 0)
+                {
+                    var check = opdb.SysAdmin.Any(m => m.AdminName == data.AdminName);
+                    var checks = opdb.SysAdmin.Any(m => m.UserId == userInfo.Id);
+                    if (check)
+                    {
+                        return "该用户名已存在,请重新输入";
+                    }
+                    if (checks)
+                    {
+                        return "该用户已存在运营中心,请重新输入";
+                    }
+                    Fields.Add("RealName", data.RealName); //运营中心名称
+                    Fields.Add("MakerCode", data.MakerCode); //创客编号
+                    Fields.Add("MakerMobile", data.MakerMobile); //手机号
+                    Fields.Add("UserId", userInfo.Id); //创客Id
+                    Fields.Add("MakerName", userInfo.RealName); //创客真实姓名
+                    Fields.Add("AdminName", data.AdminName); //用户名
+                    Fields.Add("Password", function.MD5_32(data.Password)); //密码
+                    Fields.Add("FilePath", data.FilePath); //附件
+
+                    int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("SysAdmin", Fields, 0);
+                    SysAdmin edit = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id);
+                    string No = Id.ToString();
+                    for (int i = 0; i < 7 - Id.ToString().Length; i++)
+                    {
+                        No = "0" + No;
+                    }
+                    No = "YZ" + No;
+                    edit.OpCode = No;
+                    edit.QueryCount = Id;
+                    AddSysLog(data.Id.ToString(), "SysAdmin", "add");
+                    opdb.SaveChanges();
+
+                    var info = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id);
+                    if (info != null)
+                    {
+                        Field.Add("TotalAmt", userAccount.TotalAmt); //初始额度
+                        Field.Add("ValidAmount", userAccount.TotalAmt); //可用额度
+                        Field.Add("UserId", Id); //运营中心Id
+                        int Ids = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("UserAccount", Field, 0);
+                        AddSysLog(userAccount.Id.ToString(), "UserAccount", "add");
+                        opdb.SaveChanges();
+                    }
+                    userInfo.UserType = 1;//设置创客为运营中心
+                    db.SaveChanges();
+
+                    var kqProduct = db.KqProducts.ToList();
+                    foreach (var item in kqProduct)
+                    {
+                        string Nos = "YC000" + item.Id + info.Id;
+                        var query = db.StoreHouse.Add(new Models.StoreHouse()
+                        {
+                            CreateDate = DateTime.Now, //创建时间
+                            CreateMan = SysUserName,
+                            ManageMobile = data.MakerMobile, //手机号
+                            UserId = info.UserId, //运营中心创客Id
+                            Address = Address,//仓库地址
+                            Areas = Areas,//所属地区
+                            ManageUserId = info.UserId,//仓库管理员
+                            StoreName = item.Name + "运营分仓", //仓库名称
+                            StoreNo = Nos, //仓库编号
+                            Sort = info.Id,//运营中心Id
+                            Status = 1,
+                            BrandId = item.Id.ToString(),
+
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                }
+                else
+                {
+                    return "创客编号和手机号不匹配";
+                }
+            }
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改运营中心
+
+        /// <summary>
+        /// 增加或修改运营中心信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            SysAdmin editData = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id) ?? new SysAdmin();
+            UserAccount editDatas = opdb.UserAccount.FirstOrDefault(m => m.UserId == Id) ?? new UserAccount();
+            ViewBag.data = editData;
+            ViewBag.datas = editDatas;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改运营中心
+
+        /// <summary>
+        /// 增加或修改运营中心信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(SysAdmin data, UserAccount userAccount, string Areas, string Address)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Dictionary<string, object> Field = new Dictionary<string, object>();
+
+            Models.WebCMSEntities db = new Models.WebCMSEntities();
+            var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == data.MakerCode) ?? new Models.UserForMakerCode();
+            if (userForMakerCode.UserId > 0)
+            {
+                var userInfo = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId && m.Mobile == data.MakerMobile) ?? new Models.Users();
+                if (userInfo.Id > 0)
+                {
+                    Fields.Add("RealName", data.RealName); //运营中心名称
+                    Fields.Add("MakerCode", data.MakerCode); //创客编号
+                    Fields.Add("MakerMobile", data.MakerMobile); //手机号
+                    Fields.Add("AdminName", data.AdminName); //用户名
+                    Fields.Add("UserId", userInfo.Id); //创客Id
+                    Fields.Add("MakerName", userInfo.RealName); //创客真实姓名
+                    if (!string.IsNullOrEmpty(data.Password)) //密码不为空就修改密码,否则不操作
+                    {
+                        Fields.Add("Password", function.MD5_32(data.Password)); //密码
+                    }
+                    Fields.Add("FilePath", data.FilePath); //附件
+                    Field.Add("TotalAmt", userAccount.TotalAmt); //初始额度
+                    Field.Add("ValidAmount", userAccount.TotalAmt); //可用额度
+                    Field.Add("UserId", data.Id); //运营中心Id
+
+                    var suser = opdb.SysAdmin.FirstOrDefault(m => m.Id == data.Id);
+                    var user = db.Users.FirstOrDefault(m => m.Id == suser.UserId) ?? new Models.Users();
+                    if (user.Id > 0)
+                    {
+                        user.UserType = 0;//取消运营中心标记
+                        var storeHouse = db.StoreHouse.Where(m => m.Sort == data.Id && m.Status == 1).ToList();
+                        foreach (var item in storeHouse)
+                        {
+                            var list = db.StoreHouse.FirstOrDefault(m => m.Sort == item.Sort && m.Status == 1 && m.UserId == user.Id) ?? new Models.StoreHouse();
+                            if (list.Id > 0)
+                            {
+                                list.UserId = userInfo.Id;
+                                list.ManageUserId = userInfo.Id;
+                                list.ManageMobile = userInfo.Mobile;
+                                list.UpdateDate = DateTime.Now;
+                                list.UpdateMan = SysUserName + "-" + SysRealName;
+                                db.SaveChanges();
+                            }
+                        }
+                        db.SaveChanges();
+                    }
+                    new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SysAdmin", Fields, data.Id);
+                    SysAdmin edit = opdb.SysAdmin.FirstOrDefault(m => m.Id == data.Id);
+                    edit.CreateDate = edit.CreateDate;
+                    AddSysLog(data.Id.ToString(), "SysAdmin", "update");
+                    opdb.SaveChanges();
+                    new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("UserAccount", Field, userAccount.Id);
+                    UserAccount edits = opdb.UserAccount.FirstOrDefault(m => m.UserId == data.Id);
+                    edits.CreateDate = edits.CreateDate;
+                    AddSysLog(userAccount.Id.ToString(), "UserAccount", "update");
+                    opdb.SaveChanges();
+
+                    userInfo.UserType = 1;//设置创客为运营中心
+                    db.SaveChanges();
+                }
+                else
+                {
+                    return "创客编号和手机号不匹配";
+                }
+            }
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除运营中心信息
+
+        /// <summary>
+        /// 删除运营中心信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SysAdmin", "del");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                var storeHouse = db.StoreHouse.Where(m => m.Sort == id && m.Status == 1).ToList();
+                foreach (var item in storeHouse)
+                {
+                    var list = db.StoreHouse.FirstOrDefault(m => m.Sort == id && m.Status == 1) ?? new Models.StoreHouse();
+                    if (list.Id > 0)
+                    {
+                        list.Status = -1;
+                        list.UpdateDate = DateTime.Now;
+                        list.UpdateMan = SysUserName + "-" + SysRealName;
+                        db.SaveChanges();
+                    }
+                }
+                var sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.UserId == id) ?? new OpModels.SysAdmin();
+                if (sysAdmin.Id > 0)
+                {
+                    sysAdmin.Status = -1;
+                    opdb.SaveChanges();
+                }
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", -1);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SysAdmin", Fields, id);
+            }
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SysAdmin", "open");
+            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.OpTables).Edit("SysAdmin", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SysAdmin", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SysAdmin", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Sort("SysAdmin", Sort, Id);
+
+            AddSysLog(Id.ToString(), "SysAdmin", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                opdb.SysAdmin.Add(new SysAdmin()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                opdb.SaveChanges();
+            }
+            AddSysLog("0", "SysAdmin", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(SysAdmin data)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("AdminName", "2"); //用户名
+            Fields.Add("RealName", "2"); //名称
+            Fields.Add("Role", "1"); //角色
+            Fields.Add("LastLoginDate", "3"); //最后登录时间
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("SysAdmin", Fields, "Id desc", "0", 1, 20000, "", "", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "SysAdmin", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 修改运营中心账户金额
+
+        public IActionResult EditAmt(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            SysAdmin editData = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id) ?? new SysAdmin();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+
+        #region 修改运营中心账户金额
+
+        [HttpPost]
+        public string EditAmt(SysAdmin data, string OperationAmount, string Note, int Kind)
+        {
+            int OpId = data.Id;
+            var account = opdb.UserAccount.FirstOrDefault(m => m.UserId == OpId);
+            //扣减
+            if (Kind == 1 && decimal.Parse(OperationAmount) > account.ValidAmount)
+            {
+                return "账号额度不足";
+            }
+            int OperateType = 0;
+            if (Kind == 1 && decimal.Parse(OperationAmount) <= account.ValidAmount)
+            {
+                account.ValidAmount -= decimal.Parse(OperationAmount);
+                OperateType = 1;//系统扣减
+            }
+            else if (Kind == 1 && decimal.Parse(OperationAmount) > account.ValidAmount)
+            {
+                return "扣减金额大于可用额度";
+            }
+            //增加
+            else if (Kind == 2)
+            {
+                account.ValidAmount += decimal.Parse(OperationAmount);
+                OperateType = 2;//系统增加
+            }
+            AmountRecord amountRecord = opdb.AmountRecord.Add(new AmountRecord()
+            {
+                CreateDate = DateTime.Now,
+                UserId = OpId, //运营中心Id
+                CreateMan = SysUserName + "-" + SysRealName,
+                UpdateMan = SysUserName + "-" + SysRealName,
+                UseAmount = decimal.Parse(OperationAmount),//操作金额
+                BeforeAmount = account.ValidAmount,//使用前剩余额度
+                AfterAmount = account.ValidAmount + decimal.Parse(OperationAmount),//使用后剩余额度
+                OperateType = OperateType,//操作类别
+            }).Entity;
+            opdb.SaveChanges();
+            RedisDbconn.Instance.Set("OpUserAccount:" + OpId, account);
+            AddSysLog(data.Id.ToString(), "SysAdmin", "EditAmt");
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 修改账户金额
+
+        public IActionResult EditBalance(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            SysAdmin editData = opdb.SysAdmin.FirstOrDefault(m => m.Id == Id) ?? new SysAdmin();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改账户金额
+
+        [HttpPost]
+        public string EditBalance(SysAdmin data, string OperationAmount, string Note, int Kind)
+        {
+            int OpId = data.Id;
+            var account = opdb.UserAccount.FirstOrDefault(m => m.UserId == OpId);
+            if ((Kind == 1 || Kind == 3) && decimal.Parse(OperationAmount) > account.BalanceAmount)
+            {
+                return "账号余额不足";
+            }
+            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+            int ChangeType = 0;
+            if (Kind == 1 && decimal.Parse(OperationAmount) <= account.BalanceAmount)
+            {
+                account.BalanceAmount -= decimal.Parse(OperationAmount);
+                account.FreezeAmount += decimal.Parse(OperationAmount);
+                ChangeType = 61;
+            }
+            else if (Kind == 1 && decimal.Parse(OperationAmount) > account.BalanceAmount)
+            {
+                return "冻结金额大于余额";
+            }
+            else if (Kind == 2 && decimal.Parse(OperationAmount) <= account.FreezeAmount)
+            {
+                account.BalanceAmount += decimal.Parse(OperationAmount);
+                account.FreezeAmount -= decimal.Parse(OperationAmount);
+                ChangeType = 62;
+            }
+            else if (Kind == 2 && decimal.Parse(OperationAmount) > account.FreezeAmount)
+            {
+                return "解冻金额大于冻结金额";
+            }
+            else if (Kind == 3 && decimal.Parse(OperationAmount) <= account.BalanceAmount)
+            {
+                account.TotalAmount -= decimal.Parse(OperationAmount);
+                account.BalanceAmount -= decimal.Parse(OperationAmount);
+                ChangeType = 63;
+            }
+            else if (Kind == 3 && decimal.Parse(OperationAmount) > account.BalanceAmount)
+            {
+                return "扣减金额大于余额";
+            }
+            else if (Kind == 4)
+            {
+                account.TotalAmount += decimal.Parse(OperationAmount);
+                account.BalanceAmount += decimal.Parse(OperationAmount);
+                ChangeType = 64;
+            }
+            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+            UserAccountRecord userAccountRecord = opdb.UserAccountRecord.Add(new UserAccountRecord()
+            {
+                CreateDate = DateTime.Now,
+                CreateMan = SysUserName + "-" + SysRealName,
+                UpdateMan = SysUserName + "-" + SysRealName,
+                UserId = OpId, //运营中心Id
+                ChangeType = ChangeType, //变动类型
+                ChangeAmount = decimal.Parse(OperationAmount), //变更金额
+                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                Remark = Note,
+            }).Entity;
+            opdb.SaveChanges();
+            RedisDbconn.Instance.Set("OpUserAccount:" + OpId, account);
+            AddSysLog(data.Id.ToString(), "SysAdmin", "EditBalance");
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+    }
+}

+ 312 - 0
Areas/Admin/Controllers/OperateServer/SysAdminRoleOperateController.cs

@@ -0,0 +1,312 @@
+/*
+ * 运营中心角色
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.OpModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class SysAdminRoleOperateController : BaseController
+    {
+        public SysAdminRoleOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["OpSqlConnStr"].ToString();
+        }
+
+        #region 运营中心角色列表
+
+        /// <summary>
+        /// 根据条件查询运营中心角色列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(SysAdminRole data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            string Condition = "";
+            Condition += "Name:\"" + data.Name + "\",";
+
+            if (!string.IsNullOrEmpty(Condition))
+            {
+                Condition = Condition.TrimEnd(',');
+                Condition = ", where: {" + Condition + "}";
+            }
+            ViewBag.Condition = Condition;
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询运营中心角色列表
+
+        /// <summary>
+        /// 运营中心角色列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(SysAdminRole data, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("Name", "2"); //名称
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("SysAdminRole", Fields, "Id desc", "0", page, limit, " and Status>-1");
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加运营中心角色
+
+        /// <summary>
+        /// 增加或修改运营中心角色信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加运营中心角色
+
+        /// <summary>
+        /// 增加或修改运营中心角色信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(SysAdminRole data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+            Fields.Add("Name", data.Name); //名称
+            Fields.Add("Details", data.Details); //描述
+            Fields.Add("RightInfo", "," + data.RightInfo + ","); //权限设置
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("SysAdminRole", Fields, 0);
+            AddSysLog(data.Id.ToString(), "SysAdminRole", "add");
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改运营中心角色
+
+        /// <summary>
+        /// 增加或修改运营中心角色信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            SysAdminRole editData = opdb.SysAdminRole.FirstOrDefault(m => m.Id == Id) ?? new SysAdminRole();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改运营中心角色
+
+        /// <summary>
+        /// 增加或修改运营中心角色信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(SysAdminRole data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+            Fields.Add("Name", data.Name); //名称
+            Fields.Add("Details", data.Details); //描述
+            Fields.Add("RightInfo", "," + data.RightInfo + ","); //权限设置
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SysAdminRole", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "SysAdminRole", "update");
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除运营中心角色信息
+
+        /// <summary>
+        /// 删除运营中心角色信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SysAdminRole", "del");
+            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.OpTables).Edit("SysAdminRole", Fields, id);
+            }
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SysAdminRole", "open");
+            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.OpTables).Edit("SysAdminRole", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SysAdminRole", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SysAdminRole", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Sort("SysAdminRole", Sort, Id);
+
+            AddSysLog(Id.ToString(), "SysAdminRole", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                opdb.SysAdminRole.Add(new SysAdminRole()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                opdb.SaveChanges();
+            }
+            AddSysLog("0", "SysAdminRole", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(SysAdminRole data)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("Name", "2"); //名称
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("SysAdminRole", Fields, "Id desc", "0", 1, 20000, "", "", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "SysAdminRole", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+    }
+}

+ 384 - 0
Areas/Admin/Controllers/OperateServer/SystemSetOperateController.cs

@@ -0,0 +1,384 @@
+/*
+ * 运营中心系统设置
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.OpModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class SystemSetOperateController : BaseController
+    {
+        public SystemSetOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["OpSqlConnStr"].ToString();
+        }
+
+        #region 运营中心系统设置列表
+
+        /// <summary>
+        /// 根据条件查询运营中心系统设置列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(SystemSet data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            string Condition = "";
+            Condition += "WebUrl:\"" + data.WebUrl + "\",";
+            Condition += "WebName:\"" + data.WebName + "\",";
+
+            if (!string.IsNullOrEmpty(Condition))
+            {
+                Condition = Condition.TrimEnd(',');
+                Condition = ", where: {" + Condition + "}";
+            }
+            ViewBag.Condition = Condition;
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询运营中心系统设置列表
+
+        /// <summary>
+        /// 运营中心系统设置列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(SystemSet data, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("WebUrl", "2"); //网站地址
+            Fields.Add("WebName", "2"); //网站名称
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("SystemSet", Fields, "Id desc", "False", page, limit);
+            //List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            //foreach (Dictionary<string, object> dic in diclist)
+            //{
+
+            //}
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加运营中心系统设置
+
+        /// <summary>
+        /// 增加或修改运营中心系统设置信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add()
+        {
+            ViewBag.right = _accessor.HttpContext.Request.Query["right"];
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加运营中心系统设置
+
+        /// <summary>
+        /// 增加或修改运营中心系统设置信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(SystemSet data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Fields.Add("WebUrl", data.WebUrl); //网站地址
+            Fields.Add("WebName", data.WebName); //网站名称
+            Fields.Add("IndexKeyword", data.IndexKeyword); //首页关键词
+            Fields.Add("IndexDescription", data.IndexDescription); //首页简介
+            Fields.Add("UploadExt", data.UploadExt); //允许上传类型
+            Fields.Add("UploadMaxSize", data.UploadMaxSize); //允许最大上传
+            Fields.Add("UploadAutoZoom", data.UploadAutoZoom); //自动缩略图
+            Fields.Add("UploadAutoZoomWidth", data.UploadAutoZoomWidth); //自动缩略图宽
+            Fields.Add("UploadAutoZoomHeight", data.UploadAutoZoomHeight); //自动缩略图高
+            Fields.Add("UploadAutoWater", data.UploadAutoWater); //自动水印
+            Fields.Add("UploadWaterPosition", data.UploadWaterPosition); //水印位置
+            Fields.Add("UploadWaterPath", data.UploadWaterPath); //水印图片
+            Fields.Add("RightInfo", data.RightInfo); //版权信息
+            Fields.Add("Address", data.Address); //企业地址
+            Fields.Add("Phone", data.Phone); //联系电话
+            Fields.Add("WebStatCode", data.WebStatCode); //网站统计代码
+            Fields.Add("Logo", data.Logo); //Logo图片
+
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("SystemSet", Fields, 0);
+            AddSysLog(data.Id.ToString(), "SystemSet", "add");
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改运营中心系统设置
+
+        /// <summary>
+        /// 增加或修改运营中心系统设置信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(int Id = 0)
+        {
+            ViewBag.right = _accessor.HttpContext.Request.Query["right"];
+
+            SystemSet editData = opdb.SystemSet.FirstOrDefault() ?? new SystemSet();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改运营中心系统设置
+
+        /// <summary>
+        /// 增加或修改运营中心系统设置信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(SystemSet data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Fields.Add("WebUrl", data.WebUrl); //网站地址
+            Fields.Add("WebName", data.WebName); //网站名称
+            Fields.Add("IndexKeyword", data.IndexKeyword); //首页关键词
+            Fields.Add("IndexDescription", data.IndexDescription); //首页简介
+            Fields.Add("UploadExt", data.UploadExt); //允许上传类型
+            Fields.Add("UploadMaxSize", data.UploadMaxSize); //允许最大上传
+            Fields.Add("UploadAutoZoom", data.UploadAutoZoom); //自动缩略图
+            Fields.Add("UploadAutoZoomWidth", data.UploadAutoZoomWidth); //自动缩略图宽
+            Fields.Add("UploadAutoZoomHeight", data.UploadAutoZoomHeight); //自动缩略图高
+            Fields.Add("UploadAutoZoomQuality", data.UploadAutoZoomQuality); //自动缩略图质量
+            Fields.Add("UploadAutoWater", data.UploadAutoWater); //自动水印
+            Fields.Add("UploadWaterPosition", data.UploadWaterPosition); //水印位置
+            Fields.Add("UploadWaterPath", data.UploadWaterPath); //水印图片
+            Fields.Add("RightInfo", data.RightInfo); //版权信息
+            Fields.Add("Address", data.Address); //企业地址
+            Fields.Add("Phone", data.Phone); //联系电话
+            Fields.Add("WebStatCode", data.WebStatCode); //网站统计代码
+            Fields.Add("Logo", data.Logo); //Logo图片
+            Fields.Add("StartAdPhoto", data.StartAdPhoto); //App启动图片
+            Fields.Add("UploadOss", data.UploadOss);
+
+            SystemSet check = opdb.SystemSet.FirstOrDefault();
+            if (check == null)
+            {
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("SystemSet", Fields, 0);
+            }
+            else
+            {
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SystemSet", Fields, data.Id);
+            }
+            AddSysLog(data.Id.ToString(), "SystemSet", "update");
+            opdb.SaveChanges();
+
+            return "success";
+        }
+        public IActionResult AppStart()
+        {
+            ViewBag.right = _accessor.HttpContext.Request.Query["right"];
+            return View();
+        }
+        [HttpPost]
+        public string AppStart(SystemSet data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();            
+            Fields.Add("StartAdPhoto", data.StartAdPhoto); //App启动图片
+            SystemSet check = opdb.SystemSet.FirstOrDefault();
+            if (check == null)
+            {
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("SystemSet", Fields, 0);
+            }
+            else
+            {
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SystemSet", Fields, data.Id);
+            }
+            AddSysLog(data.Id.ToString(), "SystemSet", "AppStart");
+
+            Models.FileUpdateInfo fileUpdateInfo = db.FileUpdateInfo.FirstOrDefault(m => m.FileName == data.StartAdPhoto);
+            if (fileUpdateInfo == null)
+            {
+                string Path = data.StartAdPhoto.Substring(0, data.StartAdPhoto.LastIndexOf("/") + 1);
+                if (Path.Contains("static"))
+                {
+                    Path = Path.Substring(Path.IndexOf("static"));
+                }
+                string FileName = data.StartAdPhoto.Substring(data.StartAdPhoto.LastIndexOf("/") + 1);
+                db.FileUpdateInfo.Add(new Models.FileUpdateInfo()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+                    FileName = FileName,
+                    Path = Path,
+                    VersionNum = 1,
+                });
+            }
+            opdb.SaveChanges();
+
+            return "success";
+        }
+        public JsonResult UploadPhoto([FromForm] IFormCollection rf)
+        {
+            IFormFile imgFile = rf.Files[0];
+            SystemSet set = opdb.SystemSet.FirstOrDefault() ?? new SystemSet();
+            string path = MySystemLib.SystemPublicFuction.GetPicPath(imgFile, "skin/app/default/static/images/", function.ReadInstance("/WebRootPath.txt"), "startadphoto" + DateTime.Now.ToString("yyMMddHHmm"));
+            return Json(new AppResultJson() { Status = "1", Info = "", Data = path.Replace("wwwroot/", "") });
+        }
+        #endregion
+
+        #region 删除运营中心系统设置信息
+
+        /// <summary>
+        /// 删除运营中心系统设置信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SystemSet", "del");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Delete("SystemSet", id);
+            }
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SystemSet", "open");
+            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.OpTables).Edit("SystemSet", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "SystemSet", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("SystemSet", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Sort("SystemSet", Sort, Id);
+
+            AddSysLog(Id.ToString(), "SystemSet", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                opdb.SystemSet.Add(new SystemSet()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                opdb.SaveChanges();
+            }
+            AddSysLog("0", "SystemSet", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(SystemSet data)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("WebUrl", "2"); //网站地址
+            Fields.Add("WebName", "2"); //网站名称
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("SystemSet", Fields, "Id desc", "False", 1, 20000, "", "", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "SystemSet", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+    }
+}

+ 482 - 0
Areas/Admin/Controllers/OperateServer/UserAccountRecordOperateController.cs

@@ -0,0 +1,482 @@
+/*
+ * 创客账户变动记录
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.OpModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class UserAccountRecordOperateController : BaseController
+    {
+        public UserAccountRecordOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["OpSqlConnStr"].ToString();
+        }
+
+        #region 创客账户变动记录列表
+
+        /// <summary>
+        /// 根据条件查询创客账户变动记录列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(UserAccountRecord data, string right, int UserId = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            ViewBag.UserId = UserId.ToString();
+
+            // List<Users> TopUsers = db.Users.Where(m => m.ParentUserId == 0).ToList();
+            // ViewBag.TopUsers = TopUsers;
+            var Brands = db.KqProducts.OrderBy(m => m.Id).ToList();
+            ViewBag.Brands = Brands;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询创客账户变动记录列表
+
+        /// <summary>
+        /// 创客账户变动记录列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(UserAccountRecord data, string MakerCode, string OpCode, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("ChangeType", "1"); //交易类型
+            Fields.Add("ProductType", "1"); //产品类型
+            Fields.Add("TransRecordNo", "3"); //交易流水编号
+
+            string condition = condition = " and Status>-1";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                condition += " and UserId in (select Id from SysAdmin where OpCode='" + OpCode + "')";
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                // string start = datelist[0];
+                // string end = datelist[1];
+                // condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+                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);
+                    condition += "  and Id >=" + sId;
+                }
+                if (checks)
+                {
+                    var eId = db.UserAccountRecord.Where(m => m.CreateDate <= end).Max(m => m.Id);
+                    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";
+                }
+                
+            }
+            if (data.ChangeType > 0)
+            {
+                condition += " and ChangeType=" + data.ChangeType;
+            }
+            if (data.ProductType > 0)
+            {
+                condition += " and ProductType=" + data.ProductType;
+            }
+            if (!string.IsNullOrEmpty(data.TransRecordNo))
+            {
+                condition += " and TransRecordNo='" + data.TransRecordNo + "'";
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("UserAccountRecord", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int UId = int.Parse(dic["UserId"].ToString());
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == UId) ?? new SysAdmin();
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["MakerName"] = sysAdmin.MakerName;
+                int ProductType = int.Parse(dic["ProductType"].ToString());
+                dic["ProductTypeName"] = RelationClass.GetKqProductBrandInfo(ProductType);
+                int ChangeType = int.Parse(dic["ChangeType"].ToString());
+                dic["ChangeTypeName"] = RelationClassForConst.GetChangeTypeInfo(ChangeType);
+
+                //获得盟主5元奖励的机具Sn
+                int SnId = int.Parse(dic["QueryCount"].ToString());
+                var pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == SnId) ?? new Models.PosMachinesTwo();
+                dic["PosSn"] = pos.PosSn;
+            }
+            Dictionary<string, object> other = new Dictionary<string, object>();
+
+            string ChangeTypeAmount0 = "0.00", ChangeTypeAmount1 = "0.00", ChangeTypeAmount2 = "0.00", ChangeTypeAmount3 = "0.00", ChangeTypeAmount4 = "0.00", ChangeTypeAmount5 = "0.00", ChangeTypeAmount6 = "0.00", ChangeTypeAmount61 = "0.00", ChangeTypeAmount62 = "0.00", ChangeTypeAmount63 = "0.00", ChangeTypeAmount64 = "0.00", ChangeTypeAmount50 = "0.00", ChangeTypeAmount111 = "0.00", ChangeTypeAmount112 = "0.00", ChangeTypeAmount60 = "0.00", ChangeTypeAmount31 = "0.00";
+            DataTable dt = OtherMySqlConn.dtable("select sum(if(ChangeType=0, ChangeAmount, 0)),sum(if(ChangeType=1, ChangeAmount, 0)),sum(if(ChangeType=2, ChangeAmount, 0)),sum(if(ChangeType=6, ChangeAmount, 0)),sum(if(ChangeType=61, ChangeAmount, 0)),sum(if(ChangeType=62, ChangeAmount, 0)),sum(if(ChangeType=63, ChangeAmount, 0)),sum(if(ChangeType=64, ChangeAmount, 0)),sum(if(ChangeType=50, ChangeAmount, 0)),sum(if(ChangeType=111, ChangeAmount, 0)),sum(if(ChangeType=112, ChangeAmount, 0)),sum(if(ChangeType=60, ChangeAmount, 0)),sum(if(ChangeType=31, ChangeAmount, 0)),sum(if(ChangeType=3, ChangeAmount, 0)),sum(if(ChangeType=4, ChangeAmount, 0)),sum(if(ChangeType=5, ChangeAmount, 0)) from UserAccountRecord where 1=1" + condition);
+            DataTable dts = OtherMySqlConn.dtable("select SUM(FluxProfitAmt) from FluxProfitDetail where ");
+            if (dt.Rows.Count > 0)
+            {
+                ChangeTypeAmount0 = dt.Rows[0][0].ToString();
+                ChangeTypeAmount1 = dt.Rows[0][1].ToString();
+                ChangeTypeAmount2 = dt.Rows[0][2].ToString();
+                ChangeTypeAmount3 = dt.Rows[0][13].ToString();
+                ChangeTypeAmount4 = dt.Rows[0][14].ToString();
+                ChangeTypeAmount5 = dt.Rows[0][15].ToString();
+                ChangeTypeAmount6 = dt.Rows[0][3].ToString();
+                ChangeTypeAmount61 = dt.Rows[0][4].ToString();
+                ChangeTypeAmount62 = dt.Rows[0][5].ToString();
+                ChangeTypeAmount63 = dt.Rows[0][6].ToString();
+                ChangeTypeAmount64 = dt.Rows[0][7].ToString();
+                ChangeTypeAmount50 = dt.Rows[0][8].ToString();
+                ChangeTypeAmount111 = dt.Rows[0][9].ToString();
+                ChangeTypeAmount112 = dt.Rows[0][10].ToString();
+                ChangeTypeAmount60 = dt.Rows[0][11].ToString();
+                ChangeTypeAmount31 = dt.Rows[0][12].ToString();
+            }
+            other.Add("ChangeTypeAmount0", ChangeTypeAmount0); //激活奖励
+            other.Add("ChangeTypeAmount1", ChangeTypeAmount1); //交易分润
+            other.Add("ChangeTypeAmount2", ChangeTypeAmount2); //提现申请
+            other.Add("ChangeTypeAmount3", ChangeTypeAmount3); //提现税点扣除
+            other.Add("ChangeTypeAmount4", ChangeTypeAmount4); //提现税点扣除
+            other.Add("ChangeTypeAmount5", ChangeTypeAmount5); //提现税点扣
+            other.Add("ChangeTypeAmount6", ChangeTypeAmount6); //提现失败,解冻
+            other.Add("ChangeTypeAmount61", ChangeTypeAmount61); //人工冻结
+            other.Add("ChangeTypeAmount62", ChangeTypeAmount62); //人工解冻
+            other.Add("ChangeTypeAmount63", ChangeTypeAmount63); //人工扣减
+            other.Add("ChangeTypeAmount64", ChangeTypeAmount64); //人工增加
+            other.Add("ChangeTypeAmount50", ChangeTypeAmount50); //开机奖励
+            other.Add("ChangeTypeAmount111", ChangeTypeAmount111); //分润补贴
+            other.Add("ChangeTypeAmount112", ChangeTypeAmount112); //推荐奖励
+            other.Add("ChangeTypeAmount60", ChangeTypeAmount60); //流量卡分佣
+            other.Add("ChangeTypeAmount31", ChangeTypeAmount31); //红包奖励
+            obj.Add("other", other);
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加创客账户变动记录
+
+        /// <summary>
+        /// 增加或修改创客账户变动记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加创客账户变动记录
+
+        /// <summary>
+        /// 增加或修改创客账户变动记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(UserAccountRecord data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("UserAccountRecord", Fields, 0);
+            AddSysLog(data.Id.ToString(), "UserAccountRecord", "add");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改创客账户变动记录
+
+        /// <summary>
+        /// 增加或修改创客账户变动记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            UserAccountRecord editData = opdb.UserAccountRecord.FirstOrDefault(m => m.Id == Id) ?? new UserAccountRecord();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改创客账户变动记录
+
+        /// <summary>
+        /// 增加或修改创客账户变动记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(UserAccountRecord data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("UserAccountRecord", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "UserAccountRecord", "update");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除创客账户变动记录信息
+
+        /// <summary>
+        /// 删除创客账户变动记录信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserAccountRecord", "del");
+            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("UserAccountRecord", Fields, id);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserAccountRecord", "open");
+            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("UserAccountRecord", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserAccountRecord", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("UserAccountRecord", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("UserAccountRecord", Sort, Id);
+
+            AddSysLog(Id.ToString(), "UserAccountRecord", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string Import(string ExcelData)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            for (int i = 1; i < list.Count; i++)
+            {
+                JsonData dr = list[i];
+
+                opdb.UserAccountRecord.Add(new UserAccountRecord()
+                {
+                    CreateDate = DateTime.Now,
+                    UpdateDate = DateTime.Now,
+
+                });
+                db.SaveChanges();
+            }
+            AddSysLog("0", "UserAccountRecord", "Import");
+            return "success";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(UserAccountRecord data, string MakerCode, string OpCode, string RealName, int TopUserId, int UserId)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("ChangeType", "1"); //交易类型
+            Fields.Add("ProductType", "1"); //产品类型
+            Fields.Add("TransRecordNo", "3"); //交易流水编号
+            Fields.Add("CreateDate", "3"); //交易时间
+
+            string condition = " and Status>-1";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                condition += " and UserId in (select Id from SysAdmin where OpCode='" + OpCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            }
+            //顶级创客
+            if (TopUserId > 0)
+            {
+                condition += " and UserId in (select Id from Users where ParentNav like '," + TopUserId + ",%')";
+            }
+            if (UserId > 0)
+            {
+                condition += " and UserId=" + UserId;
+            }
+
+            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>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int UId = int.Parse(dic["UserId"].ToString());
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == UId) ?? new SysAdmin();
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["MakerName"] = sysAdmin.MakerName;
+                int ProductType = int.Parse(dic["ProductType"].ToString());
+                dic["ProductTypeName"] = RelationClass.GetKqProductBrandInfo(ProductType);
+                int ChangeType = int.Parse(dic["ChangeType"].ToString());
+                dic["ChangeTypeName"] = RelationClassForConst.GetChangeTypeInfo(ChangeType);
+                dic.Remove("UserId");
+                dic.Remove("ChangeType");
+                dic.Remove("ProductType");
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+
+            ReturnFields.Add("OpCode", "运营中心编号");
+            ReturnFields.Add("MakerCode", "创客编号");
+            ReturnFields.Add("RealName", "创客姓名");
+            ReturnFields.Add("ProductTypeName", "产品类型");
+            ReturnFields.Add("TransRecordNo", "交易流水编号");
+            ReturnFields.Add("ChangeTypeName", "交易类型");
+            ReturnFields.Add("ChangeAmount", "交易金额");
+            ReturnFields.Add("Remark", "备注");
+            ReturnFields.Add("BeforeTotalAmount", "交易前总金额");
+            ReturnFields.Add("AfterTotalAmount", "交易后总金额");
+            ReturnFields.Add("BeforeFreezeAmount", "交易前冻结金额");
+            ReturnFields.Add("AfterFreezeAmount", "交易后冻结金额");
+            ReturnFields.Add("BeforeBalanceAmount", "交易前余额");
+            ReturnFields.Add("AfterBalanceAmount", "交易后余额");
+            ReturnFields.Add("CreateDate", "交易时间");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "UserAccountRecord", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+    }
+}

+ 1086 - 0
Areas/Admin/Controllers/OperateServer/UserCashRecordOperateController.cs

@@ -0,0 +1,1086 @@
+/*
+ * 提现记录
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.OpModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class UserCashRecordOperateController : BaseController
+    {
+        public UserCashRecordOperateController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["OpSqlConnStr"].ToString();
+        }
+
+        #region 提现记录列表
+
+        /// <summary>
+        /// 根据条件查询提现记录列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(UserCashRecord data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            string Condition = "";
+            Condition += "CashOrderNo:\"" + data.CashOrderNo + "\",";
+            Condition += "TradeType:\"" + data.TradeType + "\",";
+
+            if (!string.IsNullOrEmpty(Condition))
+            {
+                Condition = Condition.TrimEnd(',');
+                Condition = ", where: {" + Condition + "}";
+            }
+            ViewBag.Condition = Condition;
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询提现记录列表
+
+        /// <summary>
+        /// 提现记录列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(UserCashRecord data, string OpCode, string StatusSelect, string QueryCountSelect, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CashOrderNo", "1"); //提现单号
+            Fields.Add("TradeType", "0"); //交易类型
+
+            string condition = " and Status>-1 and TradeType<3";
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                condition += " and UserId in (select Id from SysAdmin where OpCode='" + OpCode + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect;
+            }
+            if (!string.IsNullOrEmpty(data.CashOrderNo))
+            {
+                condition += " and CashOrderNo='" + data.CashOrderNo + "'";
+            }
+            if (data.TradeType > 0)
+            {
+                condition += " and TradeType=" + data.TradeType;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(QueryCountSelect))
+            {
+                condition += " and QueryCount=" + QueryCountSelect;
+            }
+
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                // string start = datelist[0];
+                // string end = datelist[1];
+                // condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+                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 = opdb.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
+                var checks = opdb.UserCashRecord.Any(m => m.CreateDate <= end && m.TradeType < 3);
+                if (check)
+                {
+                    var sId = opdb.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
+                    condition += "  and Id >=" + sId;
+                }
+                if (checks)
+                {
+                    var eId = opdb.UserCashRecord.Where(m => m.CreateDate <= end && m.TradeType < 3).Max(m => m.Id);
+                    condition += " and Id <=" + eId;
+                }
+            }
+            else
+            {
+                var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
+                var check = opdb.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType < 3);
+                if (check)
+                {
+                    var minId = opdb.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType < 3).Min(m => m.Id);
+                    var Info = function.ReadInstance("/WritePage/OpUserCashRecord/OpUserCashRecord.txt");
+                    if (string.IsNullOrEmpty(Info.ToString()))
+                    {
+                        function.WritePage("/WritePage/OpUserCashRecord/", "OpUserCashRecord.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.OpTables).IndexData("UserCashRecord", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int OpId = int.Parse(dic["UserId"].ToString());
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new SysAdmin();
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["RealName"] = sysAdmin.MakerName;
+                dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "处理中";
+                if (Status == 1) dic["StatusName"] = "成功";
+                if (Status == 2) dic["StatusName"] = "失败";
+
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 0) dic["LockName"] = "待提交";
+                if (QueryCount == 1) dic["LockName"] = "已提交";
+            }
+            Dictionary<string, object> other = new Dictionary<string, object>();
+
+            string WaitAmount = "0.00";//待处理总金额
+            string SuccessAmount = "0.00";//提现成功总金额
+            string FailAmount = "0.00";//提现失败总金额
+            DataTable dt = OtherMySqlConn.dtable("SELECT SUM(if(Status=0,TradeAmount,0)),SUM(if(Status=1,TradeAmount,0)),SUM(if(Status=2,TradeAmount,0)) FROM UserCashRecord where 1=1 " + condition);
+            if (dt.Rows.Count > 0)
+            {
+                WaitAmount = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString())).ToString("f2");
+                SuccessAmount = decimal.Parse(function.CheckNum(dt.Rows[0][1].ToString())).ToString("f2");
+                FailAmount = decimal.Parse(function.CheckNum(dt.Rows[0][2].ToString())).ToString("f2");
+            }
+            other.Add("WaitAmount", WaitAmount);
+            other.Add("SuccessAmount", SuccessAmount);
+            other.Add("FailAmount", FailAmount);
+            obj.Add("other", other);
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加提现记录
+
+        /// <summary>
+        /// 增加或修改提现记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加提现记录
+
+        /// <summary>
+        /// 增加或修改提现记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(UserCashRecord data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+            Fields.Add("Remark", data.Remark); //备注
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Add("UserCashRecord", Fields, 0);
+            AddSysLog(data.Id.ToString(), "UserCashRecord", "add");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改提现记录
+
+        /// <summary>
+        /// 增加或修改提现记录信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            UserCashRecord editData = opdb.UserCashRecord.FirstOrDefault(m => m.Id == Id) ?? new UserCashRecord();
+            ViewBag.data = editData;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改提现记录
+
+        /// <summary>
+        /// 增加或修改提现记录信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(UserCashRecord data)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+
+            Fields.Add("Remark", data.Remark); //备注
+
+            Fields.Add("SeoTitle", data.SeoTitle);
+            Fields.Add("SeoKeyword", data.SeoKeyword);
+            Fields.Add("SeoDescription", data.SeoDescription);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("UserCashRecord", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "UserCashRecord", "update");
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 删除提现记录信息
+
+        /// <summary>
+        /// 删除提现记录信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserCashRecord", "del");
+            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.OpTables).Edit("UserCashRecord", Fields, id);
+            }
+            opdb.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserCashRecord", "open");
+            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.OpTables).Edit("UserCashRecord", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserCashRecord", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Edit("UserCashRecord", Fields, id);
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 批量设置成功
+
+        /// <summary>
+        /// 批量设置成功
+        /// </summary>
+        /// <returns></returns>
+        public string BatchSetting(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "OpUserCashRecord", "BatchSetting");
+            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.OpTables).Edit("UserCashRecord", Fields, id);
+                var userCashRecord = opdb.UserCashRecord.FirstOrDefault(m => m.Id == id) ?? new UserCashRecord();
+                if (userCashRecord.Id > 0)
+                {
+                    UserAccount account = opdb.UserAccount.FirstOrDefault(m => m.UserId == Convert.ToInt32(userCashRecord.UserId));
+                    if (account != null)
+                    {
+                        account.QueryCount = 1;
+                        decimal TradeAmount = userCashRecord.TradeAmount;
+                        decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+                        decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+                        decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+                        account.WithdrawAmount += userCashRecord.TradeAmount;
+                        account.FreezeAmount -= userCashRecord.TradeAmount;
+                        decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+                        decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+                        decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+                        opdb.UserAccountRecord.Add(new UserAccountRecord()
+                        {
+                            CreateDate = DateTime.Now,
+                            UserId = userCashRecord.UserId, //运营中心
+                            ChangeType = 3, //变动类型
+                            ProductType = 99, //产品类型
+                            ChangeAmount = userCashRecord.ActualTradeAmount, //变更金额
+                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                        });
+                        opdb.UserAccountRecord.Add(new UserAccountRecord()
+                        {
+                            CreateDate = DateTime.Now,
+                            UserId = userCashRecord.UserId, //运营中心
+                            ChangeType = 4, //变动类型
+                            ProductType = 99, //产品类型
+                            ChangeAmount = userCashRecord.TradeFee, //变更金额
+                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                        });
+                        opdb.UserAccountRecord.Add(new UserAccountRecord()
+                        {
+                            CreateDate = DateTime.Now,
+                            UserId = userCashRecord.UserId, //运营中心
+                            ChangeType = 5, //变动类型
+                            ProductType = 99, //产品类型
+                            ChangeAmount = userCashRecord.ManageFee, //变更金额
+                            BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+                            AfterTotalAmount = AfterTotalAmount, //变更后总金额
+                            BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+                            AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+                            BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                            AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                        });
+                        opdb.SaveChanges();
+                        RedisDbconn.Instance.Set("OpUserAccount:" + userCashRecord.UserId, account);
+                    }
+                }
+            }
+            opdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).Sort("UserCashRecord", Sort, Id);
+
+            AddSysLog(Id.ToString(), "UserCashRecord", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+
+        public IActionResult Import(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            return View();
+        }
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        [HttpPost]
+        public string ImportPost(string ExcelPath)
+        {
+            string key = function.MD5_16(Guid.NewGuid().ToString());
+            RedisDbconn.Instance.AddList("ExcelImportV3", ExcelPath + "#cut#OpUserCashRecord#cut#" + key + "#cut#" + SysUserName);
+            return "success|" + key;
+        }
+        public string CheckImport(string key)
+        {
+            string result = RedisDbconn.Instance.Get<string>("OpCheckImport:" + key);
+            if (!string.IsNullOrEmpty(result))
+            {
+                string[] datalist = result.Split('|');
+                if (datalist[0] == "success")
+                {
+                    return result;
+                }
+                return datalist[0];
+            }
+            return "0";
+        }
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(UserCashRecord data, string OpCode, string StatusSelect, string PayStatus)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CashOrderNo", "1"); //提现单号
+            Fields.Add("CreateDate", "3"); //创建时间
+            Fields.Add("TradeType", "0"); //交易类型
+
+            string condition = " and Status>-1 and TradeType<3";
+            //运营中心编号
+            if (!string.IsNullOrEmpty(OpCode))
+            {
+                condition += " and UserId in (select Id from SysAdmin where OpCode='" + OpCode + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(PayStatus))
+            {
+                int QueryCount = int.Parse(function.CheckInt(PayStatus));
+                if (QueryCount == 2)
+                {
+                    QueryCount = 0;
+                }
+                condition += " and QueryCount=" + QueryCount;
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("UserCashRecord", Fields, "Id desc", "0", 1, 20000, condition, "CashOrderNo,UserId,IdCardNo,ActualTradeAmount,Remark,Status,QueryCount,CreateDate", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int OpId = int.Parse(dic["UserId"].ToString());
+                SysAdmin sysAdmin = opdb.SysAdmin.FirstOrDefault(m => m.Id == OpId) ?? new SysAdmin();
+                var user = db.Users.FirstOrDefault(m => m.Id == sysAdmin.UserId) ?? new Models.Users();
+                dic["OpCode"] = sysAdmin.OpCode;
+                dic["MakerCode"] = sysAdmin.MakerCode;
+                dic["MakerName"] = sysAdmin.MakerName;
+                dic["RealName"] = sysAdmin.RealName;
+                dic["Mobile"] = sysAdmin.MakerMobile;
+                dic["SettleBankName"] = user.SettleBankName;
+                dic["SettleBankCardNo"] = user.SettleBankCardNo;
+                dic.Remove("UserId");
+                // dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "处理中";
+                if (Status == 1) dic["StatusName"] = "成功";
+                if (Status == 2) dic["StatusName"] = "失败";
+                dic.Remove("Status");
+
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 0) dic["LockName"] = "待提交";
+                if (QueryCount == 1) dic["LockName"] = "已提交";
+                dic.Remove("QueryCount");
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("CashOrderNo", "提现单号");
+            ReturnFields.Add("OpCode", "运营中心编号");
+            ReturnFields.Add("MakerCode", "创客编号");
+            ReturnFields.Add("MakerName", "创客姓名");
+            ReturnFields.Add("Mobile", "手机号");
+            ReturnFields.Add("IdCardNo", "身份证号");
+            ReturnFields.Add("SettleBankName", "开户行名称");
+            ReturnFields.Add("SettleBankCardNo", "开户行卡号");
+            ReturnFields.Add("ActualTradeAmount", "发佣金额(单位:元)");
+            ReturnFields.Add("LockName", "代付标记");
+            ReturnFields.Add("StatusName", "状态");
+            ReturnFields.Add("Remark", "备注");
+            ReturnFields.Add("CreateDate", "创建时间");
+
+            // ReturnFields.Add("CashOrderNo", "提现单号");
+            // ReturnFields.Add("MakerCode", "创客编码");
+            // ReturnFields.Add("RealName", "创客名称");
+            // ReturnFields.Add("IdCardNo", "身份证号");
+            // ReturnFields.Add("SettleBankCardNo", "提现卡号");
+            // ReturnFields.Add("SettleBankName", "银行名称");
+            // ReturnFields.Add("TradeType", "交易类型");
+            // ReturnFields.Add("TradeAmount", "交易金额(元)");
+            // ReturnFields.Add("Status", "订单状态");
+            // ReturnFields.Add("ReturnCode", "提现服务返回编码");
+            // ReturnFields.Add("ReturnMsg", "提现服务返回信息");
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "OpUserCashRecord", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+
+
+
+        #region 盟主提现记录列表
+
+        /// <summary>
+        /// 根据条件查询盟主提现记录列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult LeaderIndex(UserCashRecord data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            string Condition = "";
+            Condition += "CashOrderNo:\"" + data.CashOrderNo + "\",";
+            Condition += "TradeType:\"" + data.TradeType + "\",";
+
+            if (!string.IsNullOrEmpty(Condition))
+            {
+                Condition = Condition.TrimEnd(',');
+                Condition = ", where: {" + Condition + "}";
+            }
+            ViewBag.Condition = Condition;
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询盟主提现记录列表
+
+        /// <summary>
+        /// 盟主提现记录列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult LeaderIndexData(UserCashRecord data, string MakerCode, string RealName, string StatusSelect, string QueryCountSelect, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CashOrderNo", "1"); //提现单号
+
+            string condition = " and Status>-1 and TradeType=3";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+                // condition += " and UserId in (select Id from Users where RealName='" + RealName + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect;
+            }
+            if (!string.IsNullOrEmpty(data.CashOrderNo))
+            {
+                condition += " and CashOrderNo='" + data.CashOrderNo + "'";
+            }
+            if (data.TradeType > 0)
+            {
+                condition += " and TradeType=" + data.TradeType;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(QueryCountSelect))
+            {
+                condition += " and QueryCount=" + QueryCountSelect;
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                // string start = datelist[0];
+                // string end = datelist[1];
+                // condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+                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 = opdb.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType == 3);
+                var checks = opdb.UserCashRecord.Any(m => m.CreateDate <= end && m.TradeType == 3);
+                if (check)
+                {
+                    var sId = opdb.UserCashRecord.Where(m => m.CreateDate >= start && m.TradeType == 3).Min(m => m.Id);
+                    condition += "  and Id >=" + sId;
+                }
+                if (checks)
+                {
+                    var eId = opdb.UserCashRecord.Where(m => m.CreateDate <= end && m.TradeType == 3).Max(m => m.Id);
+                    condition += " and Id <=" + eId;
+                }
+            }
+            else
+            {
+                // var start = DateTime.Now.ToString("yyyy-MM") + "-01";
+                // var end = Convert.ToDateTime(start).AddMonths(1);
+                // condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<'" + end + " 00:00:00'";
+
+                var start = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01");
+                var check = opdb.UserCashRecord.Any(m => m.CreateDate >= start && m.TradeType == 3);
+                if (check)
+                {
+                    var minId = opdb.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
+                    {
+                        condition += " and Id >=" + Convert.ToInt32(Info);
+                    }
+                }
+                else
+                {
+                    condition += " and Id =0";
+                }
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("UserCashRecord", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int UserId = int.Parse(dic["UserId"].ToString());
+                var user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Models.Users();
+                dic["MakerCode"] = user.MakerCode;
+                dic["RealName"] = user.RealName;
+                dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "处理中";
+                if (Status == 1) dic["StatusName"] = "成功";
+                if (Status == 2) dic["StatusName"] = "失败";
+
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 0) dic["LockName"] = "待提交";
+                if (QueryCount == 1) dic["LockName"] = "已提交";
+            }
+            Dictionary<string, object> other = new Dictionary<string, object>();
+
+            string WaitAmount = "0.00";//待处理总金额
+            string SuccessAmount = "0.00";//提现成功总金额
+            string FailAmount = "0.00";//提现失败总金额
+            DataTable dt = OtherMySqlConn.dtable("SELECT SUM(if(Status=0,TradeAmount,0)),SUM(if(Status=1,TradeAmount,0)),SUM(if(Status=2,TradeAmount,0)) FROM UserCashRecord where 1=1 " + condition);
+            if (dt.Rows.Count > 0)
+            {
+                WaitAmount = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString())).ToString("f2");
+                SuccessAmount = decimal.Parse(function.CheckNum(dt.Rows[0][1].ToString())).ToString("f2");
+                FailAmount = decimal.Parse(function.CheckNum(dt.Rows[0][2].ToString())).ToString("f2");
+            }
+            other.Add("WaitAmount", WaitAmount);
+            other.Add("SuccessAmount", SuccessAmount);
+            other.Add("FailAmount", FailAmount);
+            obj.Add("other", other);
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 导出盟主Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult LeaderExportExcel(UserCashRecord data, string MakerCode, string RealName, string StatusSelect, string PayStatus)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CashOrderNo", "1"); //提现单号
+            Fields.Add("CreateDate", "3"); //创建时间
+
+            string condition = " and Status>-1 and TradeType=3";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(PayStatus))
+            {
+                int QueryCount = int.Parse(function.CheckInt(PayStatus));
+                if (QueryCount == 2)
+                {
+                    QueryCount = 0;
+                }
+                condition += " and QueryCount=" + QueryCount;
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("UserCashRecord", Fields, "Id desc", "0", 1, 20000, condition, "CashOrderNo,UserId,IdCardNo,ActualTradeAmount,Remark,Status,QueryCount,CreateDate", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int UserId = int.Parse(dic["UserId"].ToString());
+                var user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Models.Users();
+                dic["MakerCode"] = user.MakerCode;
+                dic["RealName"] = user.RealName;
+                dic["Mobile"] = user.Mobile;
+                dic["SettleBankName"] = user.SettleBankName;
+                dic["SettleBankCardNo"] = user.SettleBankCardNo;
+                dic.Remove("UserId");
+                // dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "处理中";
+                if (Status == 1) dic["StatusName"] = "成功";
+                if (Status == 2) dic["StatusName"] = "失败";
+                dic.Remove("Status");
+
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 0) dic["LockName"] = "待提交";
+                if (QueryCount == 1) dic["LockName"] = "已提交";
+                dic.Remove("QueryCount");
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("CashOrderNo", "提现单号");
+            ReturnFields.Add("MakerCode", "创客编号");
+            ReturnFields.Add("RealName", "灵工姓名");
+            ReturnFields.Add("Mobile", "手机号");
+            ReturnFields.Add("IdCardNo", "身份证号");
+            ReturnFields.Add("SettleBankName", "开户行名称");
+            ReturnFields.Add("SettleBankCardNo", "开户行卡号");
+            ReturnFields.Add("ActualTradeAmount", "发佣金额(单位:元)");
+            ReturnFields.Add("LockName", "代付标记");
+            ReturnFields.Add("StatusName", "状态");
+            ReturnFields.Add("Remark", "备注");
+            ReturnFields.Add("CreateDate", "创建时间");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "UserCashRecord", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 助利宝提现记录列表
+
+        /// <summary>
+        /// 根据条件查询助利宝提现记录列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult HelpProfitIndex(UserCashRecord data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            string Condition = "";
+            Condition += "CashOrderNo:\"" + data.CashOrderNo + "\",";
+            Condition += "TradeType:\"" + data.TradeType + "\",";
+
+            if (!string.IsNullOrEmpty(Condition))
+            {
+                Condition = Condition.TrimEnd(',');
+                Condition = ", where: {" + Condition + "}";
+            }
+            ViewBag.Condition = Condition;
+            return View();
+        }
+
+        #endregion
+
+
+        #region
+
+        /// <summary>
+        /// 助利宝提现记录列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult HelpProfitIndexData(UserCashRecord data, string MakerCode, string RealName, string StatusSelect, string QueryCountSelect, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CashOrderNo", "1"); //提现单号
+
+            string condition = " and Status>-1 and TradeType=4";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+                // condition += " and UserId in (select Id from Users where RealName='" + RealName + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect;
+            }
+            if (!string.IsNullOrEmpty(data.CashOrderNo))
+            {
+                condition += " and CashOrderNo='" + data.CashOrderNo + "'";
+            }
+            if (data.TradeType > 0)
+            {
+                condition += " and TradeType=" + data.TradeType;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(QueryCountSelect))
+            {
+                condition += " and QueryCount=" + QueryCountSelect;
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("UserCashRecord", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int UserId = int.Parse(dic["UserId"].ToString());
+                var user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Models.Users();
+                dic["MakerCode"] = user.MakerCode;
+                dic["RealName"] = user.RealName;
+                dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "处理中";
+                if (Status == 1) dic["StatusName"] = "成功";
+                if (Status == 2) dic["StatusName"] = "失败";
+
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 0) dic["LockName"] = "待提交";
+                if (QueryCount == 1) dic["LockName"] = "已提交";
+            }
+            Dictionary<string, object> other = new Dictionary<string, object>();
+
+            string WaitAmount = "0.00";//待处理总金额
+            string SuccessAmount = "0.00";//提现成功总金额
+            string FailAmount = "0.00";//提现失败总金额
+            DataTable dt = OtherMySqlConn.dtable("SELECT SUM(if(Status=0,TradeAmount,0)),SUM(if(Status=1,TradeAmount,0)),SUM(if(Status=2,TradeAmount,0)) FROM UserCashRecord where 1=1 " + condition);
+            if (dt.Rows.Count > 0)
+            {
+                WaitAmount = decimal.Parse(function.CheckNum(dt.Rows[0][0].ToString())).ToString("f2");
+                SuccessAmount = decimal.Parse(function.CheckNum(dt.Rows[0][1].ToString())).ToString("f2");
+                FailAmount = decimal.Parse(function.CheckNum(dt.Rows[0][2].ToString())).ToString("f2");
+            }
+            other.Add("WaitAmount", WaitAmount);
+            other.Add("SuccessAmount", SuccessAmount);
+            other.Add("FailAmount", FailAmount);
+            obj.Add("other", other);
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 导出助利宝Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult HelpProfitExportExcel(UserCashRecord data, string MakerCode, string RealName, string StatusSelect, string PayStatus)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("CashOrderNo", "1"); //提现单号
+            Fields.Add("CreateDate", "3"); //创建时间
+
+            string condition = " and Status>-1 and TradeType=4";
+            //创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')";
+            }
+            //创客名称
+            if (!string.IsNullOrEmpty(RealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + RealName + "')";
+            }
+            //提现状态
+            if (!string.IsNullOrEmpty(StatusSelect))
+            {
+                condition += " and Status=" + StatusSelect;
+            }
+            //提交到代付状态
+            if (!string.IsNullOrEmpty(PayStatus))
+            {
+                int QueryCount = int.Parse(function.CheckInt(PayStatus));
+                if (QueryCount == 2)
+                {
+                    QueryCount = 0;
+                }
+                condition += " and QueryCount=" + QueryCount;
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.OpTables).IndexData("UserCashRecord", Fields, "Id desc", "0", 1, 20000, condition, "CashOrderNo,UserId,IdCardNo,ActualTradeAmount,Remark,Status,QueryCount,CreateDate", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                int UserId = int.Parse(dic["UserId"].ToString());
+                var user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Models.Users();
+                dic["MakerCode"] = user.MakerCode;
+                dic["RealName"] = user.RealName;
+                dic["Mobile"] = user.Mobile;
+                dic["SettleBankName"] = user.SettleBankName;
+                dic["SettleBankCardNo"] = user.SettleBankCardNo;
+                dic.Remove("UserId");
+                // dic["TradeType"] = RelationClassForConst.GetTradeTypeInfo(int.Parse(dic["TradeType"].ToString()));
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 0) dic["StatusName"] = "处理中";
+                if (Status == 1) dic["StatusName"] = "成功";
+                if (Status == 2) dic["StatusName"] = "失败";
+                dic.Remove("Status");
+
+                int QueryCount = int.Parse(dic["QueryCount"].ToString());
+                if (QueryCount == 0) dic["LockName"] = "待提交";
+                if (QueryCount == 1) dic["LockName"] = "已提交";
+                dic.Remove("QueryCount");
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("CashOrderNo", "提现单号");
+            ReturnFields.Add("MakerCode", "创客编号");
+            ReturnFields.Add("RealName", "灵工姓名");
+            ReturnFields.Add("Mobile", "手机号");
+            ReturnFields.Add("IdCardNo", "身份证号");
+            ReturnFields.Add("SettleBankName", "开户行名称");
+            ReturnFields.Add("SettleBankCardNo", "开户行卡号");
+            ReturnFields.Add("ActualTradeAmount", "发佣金额(单位:元)");
+            ReturnFields.Add("LockName", "代付标记");
+            ReturnFields.Add("StatusName", "状态");
+            ReturnFields.Add("Remark", "备注");
+            ReturnFields.Add("CreateDate", "创建时间");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "UserCashRecord", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 提交代付平台
+
+        /// <summary>
+        /// 提交代付平台
+        /// </summary>
+        /// <returns></returns>
+        public string Cash(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "UserCashRecord", "cash");
+            opdb.SaveChanges();
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                UserCashRecord edit = opdb.UserCashRecord.FirstOrDefault(m => m.Id == id && m.QueryCount == 0);
+                if (edit != null)
+                {
+                    edit.QueryCount = 1;
+                    edit.UpdateDate = DateTime.Now;
+                    opdb.SaveChanges();
+                    RedisDbconn.Instance.AddList("CashPayApplyQueue", Newtonsoft.Json.JsonConvert.SerializeObject(edit));
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 解除
+
+        /// <summary>
+        /// 解除
+        /// </summary>
+        /// <returns></returns>
+        public string Cancel(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "WithdrawRecord", "Cancel");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                UserCashRecord edit = opdb.UserCashRecord.FirstOrDefault(m => m.Id == id);
+                if (edit != null)
+                {
+                    edit.QueryCount = 0;
+                    opdb.SaveChanges();
+                }
+            }
+
+            return "success";
+        }
+
+        #endregion
+
+    }
+}

+ 257 - 0
Areas/Admin/Views/MainServer/Leaders/Add.cshtml

@@ -0,0 +1,257 @@
+@{
+    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">
+
+        <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="" autocomplete="off" placeholder="请输入创客编号">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">盟主等级</label>
+                                <div class="layui-input-inline">
+                                    <select id="LeaderLevel" name="LeaderLevel" lay-search="">
+                                        <option value="">请选择</option>
+                                        <option value="1">小盟主</option>
+                                        <option value="2">大盟主</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="SeoKeyword" name="SeoKeyword" value=""
+                                            lay-verify="required|">
+                                        <button class="layui-btn" type="button" id="SeoKeywordBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">
+                                            @(new MySystem.PublicFunction().GetUploadHint("LeadersSeoKeyword"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="SeoKeywordFile">
+                                    </div>
+                                    <div style="width: 50%; margin-top:20px; display:none;" id="SeoKeywordProgressBar">
+                                        <div class="layui-progress" lay-showpercent="true"
+                                            lay-filter="SeoKeywordProgress">
+                                            <div class="layui-progress-bar" lay-percent="0%"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+
+
+        //编辑器
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('SeoKeywordBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("LeadersSeoKeyword"))), function (filename) {
+                $('#SeoKeywordFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#SeoKeyword').val(filename);
+                setTimeout(function () {
+                    $("#SeoKeywordProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#SeoKeywordProgressBar").css("display", "block");
+                element.progress('SeoKeywordProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 263 - 0
Areas/Admin/Views/MainServer/Leaders/Edit.cshtml

@@ -0,0 +1,263 @@
+@using MySystem.Models;
+@{
+    Leaders editData = ViewBag.data as Leaders;
+    Users editDatas = ViewBag.datas as Users;
+}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+
+        <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" value="@editDatas.MakerCode"
+                                        maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入创客编号">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">盟主等级</label>
+                                <div class="layui-input-inline">
+                                    <select id="LeaderLevel" name="LeaderLevel" lay-search="">
+                                        <option value="">请选择</option>
+                                        <option value="1">小盟主</option>
+                                        <option value="2">大盟主</option>
+                                    </select>
+                                    <script>$("#LeaderLevel").val("@editData.LeaderLevel");</script>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="SeoKeyword" name="SeoKeyword"
+                                            value="@editData.SeoKeyword">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">@(new MySystem.PublicFunction().GetUploadHint("LeadersSeoKeyword"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="FilePathFile">
+                                        @if (!string.IsNullOrEmpty(editData.SeoKeyword))
+                                        {
+                                            @editData.SeoKeyword<a
+                                            style="margin-left:20px;text-decoration:underline;color:cornflowerblue;"
+                                            href="@(MySystem.OssHelper.Instance.SourceHost)@editData.SeoKeyword"
+                                            target="_blank">点击查看附件</a>
+                                        }
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+
+
+        //编辑器
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('SeoKeywordBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("LeadersSeoKeyword"))), function (filename) {
+                $('#SeoKeywordFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#SeoKeyword').val(filename);
+                setTimeout(function () {
+                    $("#SeoKeywordProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#SeoKeywordProgressBar").css("display", "block");
+                element.progress('SeoKeywordProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 152 - 0
Areas/Admin/Views/MainServer/Leaders/Index.cshtml

@@ -0,0 +1,152 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="UserIdMakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDateData"
+                            placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">盟主等级</label>
+                        <div class="layui-input-inline">
+                            <select id="LeaderLevelSelect" name="LeaderLevelSelect" lay-search="">
+                                <option value="">全部...</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">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <button class="layui-btn" data-type="ExportExcel"><i
+                            class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+
+                    }
+                </div>
+
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                        <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,"))
+                    {
+
+                    }
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">模板下载</label>
+                <div class="layui-form-mid layui-word-aux" id="excelTemp">
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-form-mid layui-word-aux">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/Leaders_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 16 - 0
Areas/Admin/Views/MainServer/PosCoupons/Index.cshtml

@@ -51,6 +51,12 @@
                                 placeholder="" autocomplete="off">
                         </div>
                     </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="OpCode" autocomplete="off">
+                        </div>
+                    </div>
                     <div class="layui-inline">
                         <label class="layui-form-label">创客编号</label>
                         <div class="layui-input-inline">
@@ -63,6 +69,16 @@
                             <input class="layui-input" type="text" name="LeaderIdMakerCode" autocomplete="off">
                         </div>
                     </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">机具券类型</label>
+                        <div class="layui-input-inline">
+                            <select id="TypeSelect" name="TypeSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="1">电签</option>
+                                <option value="2">大POS</option>
+                            </select>
+                        </div>
+                    </div>
                     <div class="layui-inline">
                         <label class="layui-form-label">兑换码</label>
                         <div class="layui-input-inline">

+ 10 - 0
Areas/Admin/Views/MainServer/PosMachinesTwo/Index.cshtml

@@ -69,6 +69,16 @@
                             <input class="layui-input" type="text" name="StoreIdName" autocomplete="off">
                         </div>
                     </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">是否仓库机</label>
+                        <div class="layui-input-inline">
+                            <select id="IsStoreSelect" name="IsStoreSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
                     <div class="layui-inline">
                         <label class="layui-form-label">SN编号</label>
                         <div class="layui-input-inline">

+ 215 - 146
Areas/Admin/Views/MainServer/StoreHouse/Add.cshtml

@@ -1,160 +1,214 @@
 @{
     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">
+    <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>
     <style>
-        .layui-form-label{
+        .layui-form-label {
             width: 135px !important;
         }
-        .layui-form-item .layui-input-block{
+
+        .layui-form-item .layui-input-block {
             margin-left: 165px !important;
         }
     </style>
 </head>
+
 <body>
 
     <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
-        
+
         <div class="layui-card">
-          <div class="layui-card-body">
-            <div class="layui-tab" lay-filter="mytabbar">
-                <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="StoreName" name="StoreName" maxlength="32" lay-verify="required|" autocomplete="off"
-                                    placeholder="请输入仓库名称">
+            <div class="layui-card-body">
+                <div class="layui-tab" lay-filter="mytabbar">
+                    <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="StoreName" name="StoreName"
+                                        maxlength="32" lay-verify="required|" autocomplete="off" placeholder="请输入仓库名称">
+                                </div>
                             </div>
-                        </div>
-                        @{Dictionary<string, string> KqProductBrandDic = new MySystem.DictionaryClass().getKqProductBrandDic();}
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*产品类型</label>
-                            <div class="layui-input-block">
-                                <input class="layui-input" type="hidden" id="BrandId" name="BrandId" value="" lay-verify="required|" />
-                                <div id="BrandIdTransfer" class="demo-transfer"></div>
-                                @{string KqProductBrandJson = "[";}
-                                @foreach (string key in KqProductBrandDic.Keys)
-                                {
-                                    KqProductBrandJson += "{\"value\": \"" + key + "\", \"title\": \"" + KqProductBrandDic[key] + "\" },";
-                                }
-                                @{KqProductBrandJson = KqProductBrandJson.TrimEnd(','); KqProductBrandJson += "]";}
+                            @{
+                                Dictionary<string, string> KqProductBrandDic = new MySystem.DictionaryClass().getKqProductBrandDic();
+                            }
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*产品类型</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="hidden" id="BrandId" name="BrandId" value=""
+                                        lay-verify="required|" />
+                                    <div id="BrandIdTransfer" class="demo-transfer"></div>
+                                    @{
+                                        string KqProductBrandJson = "[";
+                                    }
+                                    @foreach (string key in KqProductBrandDic.Keys)
+                                    {
+                                        KqProductBrandJson += "{\"value\": \"" + key + "\", \"title\": \"" +
+                                        KqProductBrandDic[key] + "\" },";
+                                    }
+                                    @{
+                                        KqProductBrandJson = KqProductBrandJson.TrimEnd(','); KqProductBrandJson += "]";
+                                    }
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库负责人编号</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode" maxlength="30" lay-verify="required|" autocomplete="off" placeholder="请输入仓库负责人编号">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库负责人编号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
+                                        maxlength="30" lay-verify="required|" autocomplete="off"
+                                        placeholder="请输入仓库负责人编号">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库管理员</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManageRealName" name="ManageRealName" maxlength="20" lay-verify="required|" autocomplete="off" placeholder="请输入仓库管理员">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库管理员</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageRealName" name="ManageRealName"
+                                        maxlength="20" lay-verify="required|" autocomplete="off" placeholder="请输入仓库管理员">
+                                </div>
                             </div>
-                        </div>                        
-                        <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="30"  lay-verify="required|" autocomplete="off"
-                                    placeholder="请输入仓库归属创客编号(操作员)">
+                            <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="30" lay-verify="required|" autocomplete="off"
+                                        placeholder="请输入仓库归属创客编号(操作员)">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库归属类型</label>
-                            <div class="layui-input-inline">
-                                <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
-                                    <option value="">请选择</option>
-                                    <option value="0">分仓</option>
-                                    <option value="1">总仓</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库归属类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="0">分仓</option>
+                                        <option value="1">总仓</option>
+                                    </select>
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*管理者邮箱</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail" maxlength="32" lay-verify="required|email|" autocomplete="off" placeholder="请输入管理者邮箱">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者邮箱</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                        maxlength="32" lay-verify="required|email|" autocomplete="off"
+                                        placeholder="请输入管理者邮箱">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*管理者手机号</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile" maxlength="11" lay-verify="required|phone|" autocomplete="off" placeholder="请输入管理者手机号">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者手机号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile"
+                                        maxlength="11" lay-verify="required|phone|" autocomplete="off"
+                                        placeholder="请输入管理者手机号">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">限制创客编号</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">限制创客编号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId"
+                                        maxlength="100" lay-verify="" autocomplete="off"
+                                        placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库所属地区</label>
-                            <input type="hidden" id="Areas" name="Areas" />
-                            <div class="layui-input-inline">
-                                <select id="AreasProvince" lay-search="" lay-filter="AreasProvince" lay-verify="required|">
-                                    <option value="">省</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库所属地区</label>
+                                <input type="hidden" id="Areas" name="Areas" />
+                                <div class="layui-input-inline">
+                                    <select id="AreasProvince" lay-search="" lay-filter="AreasProvince"
+                                        lay-verify="required|">
+                                        <option value="">省</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                        <option value="">市</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                        <option value="">县/区</option>
+                                    </select>
+                                </div>
                             </div>
-                            <div class="layui-input-inline">
-                                <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
-                                    <option value="">市</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库地址</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Address" name="Address" maxlength="128"
+                                        lay-verify="required|" autocomplete="off" placeholder="请输入仓库地址">
+                                </div>
                             </div>
-                            <div class="layui-input-inline">
-                                <select id="AreasArea" lay-search="" lay-filter="AreasArea">
-                                    <option value="">县/区</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*押金</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="Deposit" name="Deposit"
+                                        value="" maxlength="32" lay-verify="required|" autocomplete="off"
+                                        placeholder="请输入押金">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库地址</label>
-                            <div class="layui-input-block">
-                                <input class="layui-input" type="text" id="Address" name="Address" maxlength="128" lay-verify="required|" autocomplete="off" placeholder="请输入仓库地址">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="FilePath" name="FilePath" value=""
+                                            lay-verify="required|">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">
+                                            @(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="FilePathFile">
+                                    </div>
+                                    <div style="width: 50%; margin-top:20px; display:none;" id="FilePathProgressBar">
+                                        <div class="layui-progress" lay-showpercent="true"
+                                            lay-filter="FilePathProgress">
+                                            <div class="layui-progress-bar" lay-percent="0%"></div>
+                                        </div>
+                                    </div>
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item layui-form-text">
-                            <label class="layui-form-label">备注</label>
-                            <div class="layui-input-block">
-                                <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
-                                    lay-verify="" placeholder="请输入备注"></textarea>
+                            <div class="layui-form-item layui-form-text">
+                                <label class="layui-form-label">备注</label>
+                                <div class="layui-input-block">
+                                    <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                        lay-verify="" placeholder="请输入备注"></textarea>
+                                </div>
                             </div>
+
+
                         </div>
-                        
 
                     </div>
-
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
                 </div>
             </div>
-            <div class="layui-form-item layui-hide">
-                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
-            </div>
-          </div>
         </div>
     </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/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>
-        
-                    
+
+
         //编辑器
         KindEditor.ready(function (K) {
-            
+
         });
 
         var ids = "";
@@ -260,7 +314,7 @@
             });
         }
 
-        
+
         var tree;
         var element;
         var upload;
@@ -280,77 +334,92 @@
             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');
             });
-    
+
             //日期
-            
+
 
             //上传文件
-            
+            WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#FilePath').val(filename);
+                setTimeout(function () {
+                    $("#FilePathProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#FilePathProgressBar").css("display", "block");
+                element.progress('FilePathProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
 
             //穿梭框
             transfer.render({
-            elem: '#BrandIdTransfer'
-            , data: @Html.Raw(KqProductBrandJson)
+                elem: '#BrandIdTransfer'
+                , data: @Html.Raw(KqProductBrandJson)
             , title: ['待选项', '选中项']
 
-            , showSearch: true
-            , onchange: function (obj, index) {
-            if (index == 0) {
-            var source = $("#BrandId").val();
-            $.each(obj, function (index, value) {
-            var val = obj[index].value;
-            if (source != "") {
-            source += "," + val;
-            } else {
-            source += val;
-            }
-            });
-            $("#BrandId").val(source);
-            } else if (index == 1) {
-            var source = "," + $("#BrandId").val() + ",";
-            $.each(obj, function (index, value) {
-            var val = obj[index].value;
-            source = source.replace("," + val + ",", ",");
-            });
-            if (source != "") {
-            if (source == ",") {
-            source = "";
-            } else {
-            source = source.substring(1, source.length - 1);
-            }
-            }
-            $("#BrandId").val(source);
-            }
-            }
+                , showSearch: true
+                , onchange: function (obj, index) {
+                    if (index == 0) {
+                        var source = $("#BrandId").val();
+                        $.each(obj, function (index, value) {
+                            var val = obj[index].value;
+                            if (source != "") {
+                                source += "," + val;
+                            } else {
+                                source += val;
+                            }
+                        });
+                        $("#BrandId").val(source);
+                    } else if (index == 1) {
+                        var source = "," + $("#BrandId").val() + ",";
+                        $.each(obj, function (index, value) {
+                            var val = obj[index].value;
+                            source = source.replace("," + val + ",", ",");
+                        });
+                        if (source != "") {
+                            if (source == ",") {
+                                source = "";
+                            } else {
+                                source = source.substring(1, source.length - 1);
+                            }
+                        }
+                        $("#BrandId").val(source);
+                    }
+                }
             });
-            
+
 
             //TreeView,比如权限管理
-            
+
 
             //省市区
             form.on('select(AreasProvince)', function (data) {
-            AreasProvinceSelected("Areas", "", form, data.value);
+                AreasProvinceSelected("Areas", "", form, data.value);
             });
             form.on('select(AreasCity)', function (data) {
-            AreasCitySelected("Areas", "", form, data.value)
+                AreasCitySelected("Areas", "", form, data.value)
             });
             form.on('select(AreasArea)', function (data) {
-            AreasAreaSelected("Areas", form)
+                AreasAreaSelected("Areas", form)
             });
             setTimeout(function () {
-            AreasProvinceInit("Areas", "", form);
+                AreasProvinceInit("Areas", "", form);
             }, 1000);
 
         })
 
     </script>
 </body>
+
 </html>

+ 216 - 0
Areas/Admin/Views/MainServer/StoreHouse/BatchCancle.cshtml

@@ -0,0 +1,216 @@
+@{
+    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>
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </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>
+
+
+        //编辑器
+        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>

+ 216 - 0
Areas/Admin/Views/MainServer/StoreHouse/BatchSetting.cshtml

@@ -0,0 +1,216 @@
+@{
+    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>
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </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>
+
+
+        //编辑器
+        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>

+ 193 - 141
Areas/Admin/Views/MainServer/StoreHouse/Edit.cshtml

@@ -1,179 +1,216 @@
 @using MySystem.Models;
-@{StoreHouse editData = ViewBag.data as StoreHouse;}
+@{
+    StoreHouse editData = ViewBag.data as StoreHouse;
+}
 @{
     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">
+    <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>
     <style>
-        .layui-form-label{
+        .layui-form-label {
             width: 135px !important;
         }
-        .layui-form-item .layui-input-block{
+
+        .layui-form-item .layui-input-block {
             margin-left: 165px !important;
         }
     </style>
 </head>
+
 <body>
 
     <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
         <input type="hidden" name="Id" value="@editData.Id" />
-        
+
         <div class="layui-card">
-          <div class="layui-card-body">
-            <div class="layui-tab" lay-filter="mytabbar">
-                <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="StoreName" name="StoreName"
-                                    value="@editData.StoreName" maxlength="32" lay-verify="required|" autocomplete="off"
-                                    placeholder="请输入仓库名称">
+            <div class="layui-card-body">
+                <div class="layui-tab" lay-filter="mytabbar">
+                    <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="StoreName" name="StoreName"
+                                        value="@editData.StoreName" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入仓库名称">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库状态</label>
-                            <div class="layui-input-inline">
-                                <select id="Status" name="Status" lay-search="" lay-verify="required|">
-                                    <option value="">请选择</option>
-                                    <option value="1">正常</option>
-                                    <option value="0">停用</option>
-                                </select>
-                                <script>
-                                    $("#Status").val("@editData.Status");
-                                </script>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库状态</label>
+                                <div class="layui-input-inline">
+                                    <select id="Status" name="Status" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="1">正常</option>
+                                        <option value="0">停用</option>
+                                    </select>
+                                    <script>
+                                        $("#Status").val("@editData.Status");
+                                    </script>
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库负责人编号</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
-                                    value="@ViewBag.ManageMakerCode" maxlength="30" lay-verify="required|" autocomplete="off"
-                                    placeholder="请输入仓库负责人编号">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库负责人编号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
+                                        value="@ViewBag.ManageMakerCode" maxlength="30" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入仓库负责人编号">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库管理员</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" readonly id="ManageRealName" name="ManageRealName"
-                                    value="@ViewBag.ManageRealName" maxlength="20" lay-verify="" autocomplete="off"
-                                    placeholder="请输入仓库负责人编号">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库管理员</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" readonly id="ManageRealName"
+                                        name="ManageRealName" value="@ViewBag.ManageRealName" maxlength="20"
+                                        lay-verify="" autocomplete="off" placeholder="请输入仓库负责人编号">
+                                </div>
                             </div>
-                        </div>                        
-                        <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"
-                                    value="@ViewBag.MakerCode" maxlength="30" lay-verify="" autocomplete="off"
-                                    placeholder="请输入仓库归属创客编号(操作员)">
+                            <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"
+                                        value="@ViewBag.MakerCode" maxlength="30" lay-verify="" autocomplete="off"
+                                        placeholder="请输入仓库归属创客编号(操作员)">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库归属类型</label>
-                            <div class="layui-input-inline">
-                                <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
-                                    <option value="">请选择</option>
-                                    <option value="0">分仓</option>
-                                    <option value="1">总仓</option>
-                                </select>
-                                <script>
-                                    $("#StoreKind").val("@editData.StoreKind");
-                                </script>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库归属类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="0">分仓</option>
+                                        <option value="1">总仓</option>
+                                    </select>
+                                    <script>
+                                        $("#StoreKind").val("@editData.StoreKind");
+                                    </script>
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*管理者邮箱</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
-                                    value="@editData.ManagerEmail" maxlength="32" lay-verify="required|email|"
-                                    autocomplete="off" placeholder="请输入管理者邮箱">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者邮箱</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                        value="@editData.ManagerEmail" maxlength="32" lay-verify="required|email|"
+                                        autocomplete="off" placeholder="请输入管理者邮箱">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*管理者手机号</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile"
-                                    value="@editData.ManageMobile" maxlength="11" lay-verify="required|phone|"
-                                    autocomplete="off" placeholder="请输入管理者手机号">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者手机号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile"
+                                        value="@editData.ManageMobile" maxlength="11" lay-verify="required|phone|"
+                                        autocomplete="off" placeholder="请输入管理者手机号">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">限制创客编号</label>
-                            <div class="layui-input-inline">
-                                <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId"
-                                    value="@editData.LimitTopUserId" maxlength="100" lay-verify="" autocomplete="off"
-                                    placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">限制创客编号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId"
+                                        value="@editData.LimitTopUserId" maxlength="100" lay-verify=""
+                                        autocomplete="off" placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库所属地区</label>
-                            <input type="hidden" id="Areas" name="Areas" value="@editData.Areas" />
-                            <div class="layui-input-inline">
-                                <select id="AreasProvince" lay-search="" lay-filter="AreasProvince" lay-verify="required|">
-                                    <option value="">省</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库所属地区</label>
+                                <input type="hidden" id="Areas" name="Areas" value="@editData.Areas" />
+                                <div class="layui-input-inline">
+                                    <select id="AreasProvince" lay-search="" lay-filter="AreasProvince"
+                                        lay-verify="required|">
+                                        <option value="">省</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                        <option value="">市</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                        <option value="">县/区</option>
+                                    </select>
+                                </div>
                             </div>
-                            <div class="layui-input-inline">
-                                <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
-                                    <option value="">市</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库地址</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Address" name="Address"
+                                        value="@editData.Address" maxlength="128" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入仓库地址">
+                                </div>
                             </div>
-                            <div class="layui-input-inline">
-                                <select id="AreasArea" lay-search="" lay-filter="AreasArea">
-                                    <option value="">县/区</option>
-                                </select>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*押金</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="Deposit" name="Deposit"
+                                        value="@editData.Deposit" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入押金">
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">*仓库地址</label>
-                            <div class="layui-input-block">
-                                <input class="layui-input" type="text" id="Address" name="Address"
-                                    value="@editData.Address" maxlength="128" lay-verify="required|" autocomplete="off"
-                                    placeholder="请输入仓库地址">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="FilePath" name="FilePath"
+                                            value="@editData.FilePath">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">@(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                    </div>
+                                    <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>
+                                        }
+                                    </div>
+                                </div>
                             </div>
-                        </div>
-                        <div class="layui-form-item layui-form-text">
-                            <label class="layui-form-label">备注</label>
-                            <div class="layui-input-block">
-                                <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
-                                    lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+                            <div class="layui-form-item layui-form-text">
+                                <label class="layui-form-label">备注</label>
+                                <div class="layui-input-block">
+                                    <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                        lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+                                </div>
                             </div>
+
+
                         </div>
-                        
 
                     </div>
-
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
                 </div>
             </div>
-            <div class="layui-form-item layui-hide">
-                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
-            </div>
-          </div>
         </div>
     </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/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>
-        
-        
+
+
         //编辑器
         KindEditor.ready(function (K) {
-            
+
         });
 
         var ids = "";
@@ -298,45 +335,60 @@
             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');
             });
-    
+
             //日期
-            
+
 
             //上传文件
-            
+            WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#FilePath').val(filename);
+                setTimeout(function () {
+                    $("#FilePathProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#FilePathProgressBar").css("display", "block");
+                element.progress('FilePathProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
 
             //穿梭框
-            
+
 
             //TreeView,比如权限管理
-            
+
 
             //省市区
             form.on('select(AreasProvince)', function (data) {
-AreasProvinceSelected("Areas", "@editData.Areas", form, data.value);
-});
-form.on('select(AreasCity)', function (data) {
-AreasCitySelected("Areas", "@editData.Areas", form, data.value)
-});
-form.on('select(AreasArea)', function (data) {
-AreasAreaSelected("Areas", form)
-});
-setTimeout(function () {
-AreasProvinceInit("Areas", "@(Html.Raw(editData.Areas))", form);
-AreasProvinceSelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasProvince").val());
-AreasCitySelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasCity").val());
-AreasAreaSelected("Areas", form);
-}, 1000);
+                AreasProvinceSelected("Areas", "@editData.Areas", form, data.value);
+            });
+            form.on('select(AreasCity)', function (data) {
+                AreasCitySelected("Areas", "@editData.Areas", form, data.value)
+            });
+            form.on('select(AreasArea)', function (data) {
+                AreasAreaSelected("Areas", form)
+            });
+            setTimeout(function () {
+                AreasProvinceInit("Areas", "@(Html.Raw(editData.Areas))", form);
+                AreasProvinceSelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasProvince").val());
+                AreasCitySelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasCity").val());
+                AreasAreaSelected("Areas", form);
+            }, 1000);
 
         })
 
     </script>
 </body>
+
 </html>

+ 35 - 3
Areas/Admin/Views/MainServer/StoreHouse/Index.cshtml

@@ -111,6 +111,28 @@
                                 placeholder="" autocomplete="off">
                         </div>
                     </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">伞下仓库所属创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="MakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="YZOpCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">是否关联</label>
+                        <div class="layui-input-inline">
+                            <select id="OpStatusSelect" name="OpStatusSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
                     <div class="layui-inline ml50">
                         <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
                             <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
@@ -168,6 +190,16 @@
                         <button class="layui-btn" data-type="SycnData"><i
                             class="layui-icon layui-icon-export layuiadmin-button-btn"></i>同步库存</button>
                     }
+                    @if (RightInfo.Contains("," + right + "_batchset,"))
+                    {
+                        <button class="layui-btn" data-type="BatchSetting"><i
+                            class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>关联分仓</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_batchcancle,"))
+                    {
+                        <button class="layui-btn" data-type="BatchCancle"><i
+                            class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>取消关联</button>
+                    }
                 </div>
 
                 <script type="text/html" id="ManageTpl">
@@ -180,15 +212,15 @@
                 <script type="text/html" id="table-list-tools">
                     @if (RightInfo.Contains("," + right + "_edit,"))
                     {
-                            <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>修改</a>
+                                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>修改</a>
                     }
                     @if (RightInfo.Contains("," + right + "_edits,"))
                     {
-                            <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edits"><i class="layui-icon layui-icon-add"></i>一键新建仓库</a>
+                                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edits"><i class="layui-icon layui-icon-add"></i>一键新建仓库</a>
                     }
                     @if (RightInfo.Contains("," + right + "_sycn,"))
                     {
-                            <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sycn"><i class="layui-icon layui-icon-edit"></i>同步库存</a>
+                                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sycn"><i class="layui-icon layui-icon-edit"></i>同步库存</a>
                     }
                 </script>
             </div>

+ 203 - 0
Areas/Admin/Views/OperateServer/PosCouponsLeader/Add.cshtml

@@ -0,0 +1,203 @@
+@{
+    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">
+        
+        <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>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+                    
+        //编辑器
+        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>

+ 216 - 0
Areas/Admin/Views/OperateServer/PosCouponsLeader/BatchCancle.cshtml

@@ -0,0 +1,216 @@
+@{
+    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>
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </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>
+
+
+        //编辑器
+        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>

+ 216 - 0
Areas/Admin/Views/OperateServer/PosCouponsLeader/BatchSetting.cshtml

@@ -0,0 +1,216 @@
+@{
+    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>
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </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>
+
+
+        //编辑器
+        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>

+ 205 - 0
Areas/Admin/Views/OperateServer/PosCouponsLeader/Edit.cshtml

@@ -0,0 +1,205 @@
+@using MySystem.Models;
+@{PosCouponOrders editData = ViewBag.data as PosCouponOrders;}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <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>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        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>

+ 185 - 0
Areas/Admin/Views/OperateServer/PosCouponsLeader/Index.cshtml

@@ -0,0 +1,185 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">使用时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="UseDateData" id="UseDate"
+                                placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="UserIdMakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">盟主编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="LeaderIdMakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">兑换码</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="ExchangeCode" id="ExchangeCode"
+                                autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">机具券类型</label>
+                        <div class="layui-input-inline">
+                            <select id="TypeSelect" name="TypeSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="1">电签</option>
+                                <option value="2">大POS</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">是否使用</label>
+                        <div class="layui-input-inline">
+                            <select id="ChangeKindSelect" name="IsUseSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">是否锁定</label>
+                        <div class="layui-input-inline">
+                            <select id="ChangeKindSelect" name="IsLockSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_batchset,"))
+                    {
+                        <button class="layui-btn" data-type="BatchSetting"><i
+                            class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>设置盟主券</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_batchcancle,"))
+                    {
+                        <button class="layui-btn" data-type="BatchCancle"><i
+                            class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>取消盟主券</button>
+                    }
+                </div>
+
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+                    }
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">模板下载</label>
+                <div class="layui-form-mid layui-word-aux" id="excelTemp">
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-form-mid layui-word-aux">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/PosCoupons_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 159 - 0
Areas/Admin/Views/OperateServer/PosCouponsLeader/SJQ.cshtml

@@ -0,0 +1,159 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">使用时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="UseDateData" id="UseDate"
+                                placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="UserIdMakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">兑换码</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="ExchangeCode" id="ExchangeCode"
+                                autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">是否使用</label>
+                        <div class="layui-input-inline">
+                            <select id="ChangeKindSelect" name="IsUseSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">是否锁定</label>
+                        <div class="layui-input-inline">
+                            <select id="ChangeKindSelect" name="IsLockSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                </div>
+
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+                    }
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">模板下载</label>
+                <div class="layui-form-mid layui-word-aux" id="excelTemp">
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-form-mid layui-word-aux">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/PosCouponsSjq_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 356 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/Add.cshtml

@@ -0,0 +1,356 @@
+@{
+    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>
+    <style>
+        .layui-form-label{
+            width: 135px !important;
+        }
+        .layui-form-item .layui-input-block{
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <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="StoreName" name="StoreName" maxlength="32" lay-verify="required|" autocomplete="off"
+                                    placeholder="请输入仓库名称">
+                            </div>
+                        </div>
+                        @{Dictionary<string, string> KqProductBrandDic = new MySystem.DictionaryClass().getKqProductBrandDic();}
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*产品类型</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="hidden" id="BrandId" name="BrandId" value="" lay-verify="required|" />
+                                <div id="BrandIdTransfer" class="demo-transfer"></div>
+                                @{string KqProductBrandJson = "[";}
+                                @foreach (string key in KqProductBrandDic.Keys)
+                                {
+                                    KqProductBrandJson += "{\"value\": \"" + key + "\", \"title\": \"" + KqProductBrandDic[key] + "\" },";
+                                }
+                                @{KqProductBrandJson = KqProductBrandJson.TrimEnd(','); KqProductBrandJson += "]";}
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库负责人编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode" maxlength="30" lay-verify="required|" autocomplete="off" placeholder="请输入仓库负责人编号">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库管理员</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageRealName" name="ManageRealName" 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">
+                                <input class="layui-input" type="text" id="MakerCode" name="MakerCode" maxlength="30"  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="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="0">分仓</option>
+                                    <option value="1">总仓</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*管理者邮箱</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail" maxlength="32" lay-verify="required|email|" autocomplete="off" placeholder="请输入管理者邮箱">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*管理者手机号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile" maxlength="11" lay-verify="required|phone|" autocomplete="off" placeholder="请输入管理者手机号">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">限制创客编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库所属地区</label>
+                            <input type="hidden" id="Areas" name="Areas" />
+                            <div class="layui-input-inline">
+                                <select id="AreasProvince" lay-search="" lay-filter="AreasProvince" lay-verify="required|">
+                                    <option value="">省</option>
+                                </select>
+                            </div>
+                            <div class="layui-input-inline">
+                                <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                    <option value="">市</option>
+                                </select>
+                            </div>
+                            <div class="layui-input-inline">
+                                <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                    <option value="">县/区</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库地址</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="Address" name="Address" maxlength="128" lay-verify="required|" autocomplete="off" placeholder="请输入仓库地址">
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">备注</label>
+                            <div class="layui-input-block">
+                                <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                    lay-verify="" placeholder="请输入备注"></textarea>
+                            </div>
+                        </div>
+                        
+
+                    </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+                    
+        //编辑器
+        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');
+            });
+    
+            //日期
+            
+
+            //上传文件
+            
+
+            //穿梭框
+            transfer.render({
+            elem: '#BrandIdTransfer'
+            , data: @Html.Raw(KqProductBrandJson)
+            , title: ['待选项', '选中项']
+
+            , showSearch: true
+            , onchange: function (obj, index) {
+            if (index == 0) {
+            var source = $("#BrandId").val();
+            $.each(obj, function (index, value) {
+            var val = obj[index].value;
+            if (source != "") {
+            source += "," + val;
+            } else {
+            source += val;
+            }
+            });
+            $("#BrandId").val(source);
+            } else if (index == 1) {
+            var source = "," + $("#BrandId").val() + ",";
+            $.each(obj, function (index, value) {
+            var val = obj[index].value;
+            source = source.replace("," + val + ",", ",");
+            });
+            if (source != "") {
+            if (source == ",") {
+            source = "";
+            } else {
+            source = source.substring(1, source.length - 1);
+            }
+            }
+            $("#BrandId").val(source);
+            }
+            }
+            });
+            
+
+            //TreeView,比如权限管理
+            
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+            AreasProvinceSelected("Areas", "", form, data.value);
+            });
+            form.on('select(AreasCity)', function (data) {
+            AreasCitySelected("Areas", "", form, data.value)
+            });
+            form.on('select(AreasArea)', function (data) {
+            AreasAreaSelected("Areas", form)
+            });
+            setTimeout(function () {
+            AreasProvinceInit("Areas", "", form);
+            }, 1000);
+
+        })
+
+    </script>
+</body>
+</html>

+ 216 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/BatchCancle.cshtml

@@ -0,0 +1,216 @@
+@{
+    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>
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </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>
+
+
+        //编辑器
+        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>

+ 216 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/BatchSetting.cshtml

@@ -0,0 +1,216 @@
+@{
+    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>
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </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>
+
+
+        //编辑器
+        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>

+ 342 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/Edit.cshtml

@@ -0,0 +1,342 @@
+@using MySystem.Models;
+@{StoreHouse editData = ViewBag.data as StoreHouse;}
+@{
+    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>
+    <style>
+        .layui-form-label{
+            width: 135px !important;
+        }
+        .layui-form-item .layui-input-block{
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <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="StoreName" name="StoreName"
+                                    value="@editData.StoreName" maxlength="32" 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="Status" name="Status" lay-search="" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="1">正常</option>
+                                    <option value="0">停用</option>
+                                </select>
+                                <script>
+                                    $("#Status").val("@editData.Status");
+                                </script>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库负责人编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
+                                    value="@ViewBag.ManageMakerCode" maxlength="30" lay-verify="required|" autocomplete="off"
+                                    placeholder="请输入仓库负责人编号">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库管理员</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" readonly id="ManageRealName" name="ManageRealName"
+                                    value="@ViewBag.ManageRealName" maxlength="20" lay-verify="" autocomplete="off"
+                                    placeholder="请输入仓库负责人编号">
+                            </div>
+                        </div>                        
+                        <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"
+                                    value="@ViewBag.MakerCode" maxlength="30" lay-verify="" autocomplete="off"
+                                    placeholder="请输入仓库归属创客编号(操作员)">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库归属类型</label>
+                            <div class="layui-input-inline">
+                                <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="0">分仓</option>
+                                    <option value="1">总仓</option>
+                                </select>
+                                <script>
+                                    $("#StoreKind").val("@editData.StoreKind");
+                                </script>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*管理者邮箱</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                    value="@editData.ManagerEmail" maxlength="32" lay-verify="required|email|"
+                                    autocomplete="off" placeholder="请输入管理者邮箱">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*管理者手机号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile"
+                                    value="@editData.ManageMobile" maxlength="11" lay-verify="required|phone|"
+                                    autocomplete="off" placeholder="请输入管理者手机号">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">限制创客编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId"
+                                    value="@editData.LimitTopUserId" maxlength="100" lay-verify="" autocomplete="off"
+                                    placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库所属地区</label>
+                            <input type="hidden" id="Areas" name="Areas" value="@editData.Areas" />
+                            <div class="layui-input-inline">
+                                <select id="AreasProvince" lay-search="" lay-filter="AreasProvince" lay-verify="required|">
+                                    <option value="">省</option>
+                                </select>
+                            </div>
+                            <div class="layui-input-inline">
+                                <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                    <option value="">市</option>
+                                </select>
+                            </div>
+                            <div class="layui-input-inline">
+                                <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                    <option value="">县/区</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库地址</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="Address" name="Address"
+                                    value="@editData.Address" maxlength="128" lay-verify="required|" autocomplete="off"
+                                    placeholder="请输入仓库地址">
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">备注</label>
+                            <div class="layui-input-block">
+                                <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                    lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+                            </div>
+                        </div>
+                        
+
+                    </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        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,比如权限管理
+            
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+AreasProvinceSelected("Areas", "@editData.Areas", form, data.value);
+});
+form.on('select(AreasCity)', function (data) {
+AreasCitySelected("Areas", "@editData.Areas", form, data.value)
+});
+form.on('select(AreasArea)', function (data) {
+AreasAreaSelected("Areas", form)
+});
+setTimeout(function () {
+AreasProvinceInit("Areas", "@(Html.Raw(editData.Areas))", form);
+AreasProvinceSelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasProvince").val());
+AreasCitySelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasCity").val());
+AreasAreaSelected("Areas", form);
+}, 1000);
+
+        })
+
+    </script>
+</body>
+</html>

+ 355 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/Edits.cshtml

@@ -0,0 +1,355 @@
+@using MySystem.Models;
+@{StoreHouse editData = ViewBag.data as StoreHouse;}
+@{
+    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>
+    <style>
+        .layui-form-label{
+            width: 135px !important;
+        }
+        .layui-form-item .layui-input-block{
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <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="StoreName" name="StoreName"
+                                    value="@editData.StoreName" maxlength="32" lay-verify="required|" autocomplete="off"
+                                    placeholder="请输入仓库名称">
+                            </div>
+                        </div>
+                        @{Dictionary<string, string> KqProductsDic = new MySystem.DictionaryClass().getKqProductBrandDic();}
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">产品类型</label>
+                            <div class="layui-input-inline">
+                                <select id="BrandId" name="BrandId" lay-search="">
+                                    <option value="">全部...</option>
+                                    @foreach (string key in KqProductsDic.Keys)
+                                    {
+                                    <option value="@key" @(editData.BrandId.ToString() == key ? "selected" : "")>@KqProductsDic[key]</option>
+                                    }
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库状态</label>
+                            <div class="layui-input-inline">
+                                <select id="Status" name="Status" lay-search="" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="1">正常</option>
+                                    <option value="0">停用</option>
+                                </select>
+                                <script>
+                                    $("#Status").val("@editData.Status");
+                                </script>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库负责人编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
+                                    value="@ViewBag.ManageMakerCode" maxlength="30" lay-verify="required|" autocomplete="off"
+                                    placeholder="请输入仓库负责人编号">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库管理员</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" readonly id="ManageRealName" name="ManageRealName"
+                                    value="@ViewBag.ManageRealName" maxlength="20" lay-verify="" autocomplete="off"
+                                    placeholder="请输入仓库负责人编号">
+                            </div>
+                        </div>                        
+                        <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"
+                                    value="@ViewBag.MakerCode" maxlength="30" lay-verify="" autocomplete="off"
+                                    placeholder="请输入仓库归属创客编号(操作员)">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库归属类型</label>
+                            <div class="layui-input-inline">
+                                <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="0">分仓</option>
+                                    <option value="1">总仓</option>
+                                </select>
+                                <script>
+                                    $("#StoreKind").val("@editData.StoreKind");
+                                </script>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*管理者邮箱</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                    value="@editData.ManagerEmail" maxlength="32" lay-verify="required|email|"
+                                    autocomplete="off" placeholder="请输入管理者邮箱">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*管理者手机号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="ManageMobile" name="ManageMobile"
+                                    value="@editData.ManageMobile" maxlength="11" lay-verify="required|phone|"
+                                    autocomplete="off" placeholder="请输入管理者手机号">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">限制创客编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="LimitTopUserId" name="LimitTopUserId"
+                                    value="@editData.LimitTopUserId" maxlength="100" lay-verify="" autocomplete="off"
+                                    placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库所属地区</label>
+                            <input type="hidden" id="Areas" name="Areas" value="@editData.Areas" />
+                            <div class="layui-input-inline">
+                                <select id="AreasProvince" lay-search="" lay-filter="AreasProvince" lay-verify="required|">
+                                    <option value="">省</option>
+                                </select>
+                            </div>
+                            <div class="layui-input-inline">
+                                <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                    <option value="">市</option>
+                                </select>
+                            </div>
+                            <div class="layui-input-inline">
+                                <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                    <option value="">县/区</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">*仓库地址</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="Address" name="Address"
+                                    value="@editData.Address" maxlength="128" lay-verify="required|" autocomplete="off"
+                                    placeholder="请输入仓库地址">
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">备注</label>
+                            <div class="layui-input-block">
+                                <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                    lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+                            </div>
+                        </div>
+                        
+
+                    </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        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,比如权限管理
+            
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+AreasProvinceSelected("Areas", "@editData.Areas", form, data.value);
+});
+form.on('select(AreasCity)', function (data) {
+AreasCitySelected("Areas", "@editData.Areas", form, data.value)
+});
+form.on('select(AreasArea)', function (data) {
+AreasAreaSelected("Areas", form)
+});
+setTimeout(function () {
+AreasProvinceInit("Areas", "@(Html.Raw(editData.Areas))", form);
+AreasProvinceSelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasProvince").val());
+AreasCitySelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasCity").val());
+AreasAreaSelected("Areas", form);
+}, 1000);
+
+        })
+
+    </script>
+</body>
+</html>

+ 144 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/Import.cshtml

@@ -0,0 +1,144 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string ExcelKind = ViewBag.ExcelKind 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>
+    <style>
+        .layui-form-label{
+            width: 135px !important;
+        }
+        .layui-form-item .layui-input-block{
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Kind" value="@ExcelKind" />
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <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-form-mid layui-word-aux" id="excelTemp">
+                                @if(ExcelKind == "1")
+                                {
+                                <a href="/users/客小爽入库模版.xlsx">点击下载入库模版</a>
+                                }
+                                @if(ExcelKind == "2")
+                                {
+                                <a href="/users/客小爽仓库调拨模版.xlsx">点击下载仓库调拨模版</a>
+                                }
+                                @if(ExcelKind == "3")
+                                {
+                                <a href="/users/客小爽仓库发货至创客模版.xlsx">点击下载仓库发货至创客模版</a>
+                                }
+                                @* @if(ExcelKind == "4")
+                                {
+                                <a href="/users/创客机具驳回仓库.xlsx">点击下载创客机具驳回仓库模版</a>
+                                } *@
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">excel文件</label>
+                            <div class="layui-input-block">
+                                <div class="layui-upload">
+                                    <input type="hidden" id="ExcelPath" name="ExcelPath" value="">
+                                    <button class="layui-btn" type="button" id="ExcelPathBtn">选择</button>
+                                    <div class="layui-inline layui-word-aux"></div>
+                                </div>
+                                <div class="mt10" id="ExcelPathFile">
+                                </div>
+                            </div>
+                        </div>
+                        
+                    </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min.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>
+        
+                    
+        //编辑器
+        KindEditor.ready(function (K) {
+            
+        });
+
+        
+        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');
+            });
+    
+            //日期
+            
+
+            //上传文件
+            WebUploadJs('ExcelPathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', {width:0,height:0,quality:0},{max_file_size:1048576},  function (filename) {
+                $('#ExcelPathFile').html(filename);
+                $('#ExcelPath').val(filename);
+            });
+
+            //穿梭框
+            
+            
+
+            //TreeView,比如权限管理
+            
+
+            //省市区
+
+        });
+
+    </script>
+</body>
+</html>

+ 190 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/Index.cshtml

@@ -0,0 +1,190 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 128px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <input class="layui-input" type="hidden" name="ShowFlag" autocomplete="off">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreNo" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="OpCode" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_export,"))
+                    {
+                        <button class="layui-btn" data-type="ExportExcel"><i
+                            class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_import1,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportMachine"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>机具入库</button>
+                    }
+                    @* @if (RightInfo.Contains("," + right + "_import2,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportChange"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>仓库调拨</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_import3,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportSend"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>仓库发货至创客</button>
+
+                    }
+                    @if (RightInfo.Contains("," + right + "_import4,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportRejectStore"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>机具驳回仓库</button>
+
+                    }
+                    @if (RightInfo.Contains("," + right + "_sycn,"))
+                    {
+                        <button class="layui-btn" data-type="SycnData"><i
+                            class="layui-icon layui-icon-export layuiadmin-button-btn"></i>同步库存</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_batchset,"))
+                    {
+                        <button class="layui-btn" data-type="BatchSetting"><i
+                            class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>关联分仓</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_batchcancle,"))
+                    {
+                        <button class="layui-btn" data-type="BatchCancle"><i
+                            class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>取消关联</button>
+                    } *@
+                </div>
+
+                <script type="text/html" id="ManageTpl">
+                    <a lay-href="/Admin/Users/Index?right=@right&MakerCode={{d.ManageUserIdMakerCode}}" style="color: #428bca;">{{d.ManageUserIdMakerCode}}</a>
+                </script>
+                <script type="text/html" id="MakerCodeTpl">
+                    <a lay-href="/Admin/Users/Index?right=@right&MakerCode={{d.UserIdMakerCode}}" style="color: #428bca;">{{d.UserIdMakerCode}}</a>
+                </script>
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    @* @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>修改</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_edits,"))
+                    {
+                                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edits"><i class="layui-icon layui-icon-add"></i>一键新建仓库</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_sycn,"))
+                    {
+                                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sycn"><i class="layui-icon layui-icon-edit"></i>同步库存</a>
+                    } *@
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">模板下载</label>
+                <div class="layui-form-mid layui-word-aux" id="excelTemp">
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-form-mid layui-word-aux">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmRejectImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/StoreHouse_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 99 - 0
Areas/Admin/Views/OperateServer/StoreHouseOperate/Stat.cshtml

@@ -0,0 +1,99 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string MakerCode = ViewBag.MakerCode 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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline{
+            width: 175px !important;
+        }
+        .layui-form-label{
+            width: 128px !important;
+        }
+        .layui-inline{
+            margin-right: 0px !important;
+        }
+        .w100{
+            width: 100px !important;
+        }
+        .ml50{
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                            <label class="layui-form-label">创客编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" name="MakerCode" value="@MakerCode" autocomplete="off">
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <label class="layui-form-label">创客名称</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" name="RealName" autocomplete="off">
+                            </div>
+                        </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreNo" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreName" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    <button class="layui-btn" data-type="ExportExcel"><i class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                </div>                
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/StoreHouseStat_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+        var MakerCode = '@MakerCode';
+    </script>
+</body>
+</html>

+ 274 - 0
Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/Add.cshtml

@@ -0,0 +1,274 @@
+@{
+    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">
+        
+        <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><li lay-id="8">发货SN</li>
+                </ul>
+                <div class="layui-tab-content mt20">
+                    <div class="layui-tab-item layui-show">
+@{Dictionary<string, string> KqProductsDic = new MySystem.DictionaryClass().getKqProductsDic();}
+<div class="layui-form-item">
+<label class="layui-form-label">品牌</label>
+<div class="layui-input-inline">
+<select id="BrandId" name="BrandId" lay-search="">
+<option value="">请选择</option>
+@foreach (string key in KqProductsDic.Keys)
+{
+<option value="@key">@KqProductsDic[key]</option>
+}
+</select>
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">申请单号</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="ApplyNo" name="ApplyNo" 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-inline">
+<input class="layui-input" type="text" id="ApplyNum" name="ApplyNum" maxlength="20" lay-verify="" autocomplete="off" placeholder="请输入申请台数">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">发货台数</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="SendNum" name="SendNum" maxlength="20" lay-verify="" autocomplete="off" placeholder="请输入发货台数">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">使用额度</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="UseAmount" name="UseAmount" maxlength="20" lay-verify="" autocomplete="off" placeholder="请输入使用额度">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">发货方式</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="SendMode" name="SendMode" maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入发货方式">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">快递单号</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="ErpCode" name="ErpCode" maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入快递单号">
+</div>
+</div>
+@{Dictionary<string, string> UsersDic = new MySystem.DictionaryClass().getUsersDic();}
+<div class="layui-form-item">
+<label class="layui-form-label">创客</label>
+<div class="layui-input-inline">
+<select id="UserId" name="UserId" lay-search="">
+<option value="">请选择</option>
+@foreach (string key in UsersDic.Keys)
+{
+<option value="@key">@UsersDic[key]</option>
+}
+</select>
+</div>
+</div>
+
+</div>
+<div class="layui-tab-item">
+<div class="layui-form-item layui-form-text">
+<label class="layui-form-label">发货SN数据</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="SendSn" name="SendSn" maxlength="" lay-verify="" placeholder="请输入发货SN数据"></textarea>
+</div>
+</div>
+
+</div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+                    
+        //编辑器
+        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>

+ 217 - 0
Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/AuditSend.cshtml

@@ -0,0 +1,217 @@
+@using MySystem.OpModels;
+@{
+    StoreMachineApply editData = ViewBag.data as StoreMachineApply;
+}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        <input type="hidden" name="ExcelData" id="ExcelData" value="" />
+
+        <div class="layui-card">
+            <div class="layui-card-body">
+                <div class="layui-tab" lay-filter="mytabbar">
+                    <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" readonly id="RealName" name="RealName"
+                                        value="@ViewBag.RealName" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">申请单号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" readonly id="ApplyNo" name="ApplyNo"
+                                        value="@editData.ApplyNo" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">申请数量</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" readonly id="ApplyNum" name="ApplyNum"
+                                        value="@editData.ApplyNum" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div>
+                            @* <div class="layui-form-item">
+                                <label class="layui-form-label">发货数量</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="SendNum" name="SendNum"
+                                        value="@editData.SendNum" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div> *@
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">快递单号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ErpCode" name="ErpCode"
+                                        value="@editData.ErpCode" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">发货方式</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="SendMode" name="SendMode"
+                                        value="@editData.SendMode" maxlength="32" 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="Status" name="Status" lay-verify="required|" lay-search="">
+                                        <option value="">请选择</option>
+                                        <option value="0">待审核</option>
+                                        <option value="1">审核通过</option>
+                                        <option value="2">审核不通过</option>
+                                    </select>
+                                    <script>
+                                        $("#Status").val("@editData.Status");
+                                    </script>
+                                </div>
+                            </div> *@
+                            <div class="layui-form-item layui-form-text">
+                                <label class="layui-form-label">描述</label>
+                                <div class="layui-input-block">
+                                    <textarea class="layui-textarea" id="SeoKeyword" name="SeoKeyword" maxlength="max"
+                                        lay-verify="required|" placeholder="请输入申请描述"></textarea>
+                                </div>
+                            </div>
+                            <div class="layui-form-item"">
+                            <div class=" layui-tab-item layui-show">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">模板下载</label>
+                                    <div class="layui-form-mid layui-word-aux">
+                                        <a href="/users/批量添加机具SN模版.xlsx">点击下载批量添加机具SN模版</a>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-form-item"">
+                            <label class=" layui-form-label">导入机具SN</label>
+                                <div class=" layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                                        <div class="layui-inline layui-word-aux"></div>
+                                    </div>
+                                    <div class="mt10" id="ExcelPathFile">
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
+                </div>
+            </div>
+        </div>
+    </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>
+
+
+        //编辑器
+        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);
+                }
+            });
+        }
+
+        var tree;
+        var element;
+        var upload;
+        var excel;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util', 'excel'], 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');
+            });
+
+            //excel导入
+            excel = layui.excel;
+            $('#ExcelFile').change(function (e) {
+                var files = e.target.files;
+                excel.importExcel(files, {}, function (data) {
+                    $("#ExcelData").val(JSON.stringify(data[0].Sheet1));
+                });
+            });
+
+            //日期
+
+
+            //上传文件
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 257 - 0
Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/Edit.cshtml

@@ -0,0 +1,257 @@
+@using MySystem.OpModels;
+@{
+    StoreMachineApply editData = ViewBag.data as StoreMachineApply;
+}
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    List<Dictionary<string, object>> KsProductList = ViewBag.KsProductList as List<Dictionary<string, object>>;
+
+}
+<!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>
+    <style>
+        .layui-form-label {
+            width: 135px !important;
+        }
+
+        .layui-form-item .layui-input-block {
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Id" value="@editData.Id" />
+
+        <div class="layui-card">
+            <div class="layui-card-body">
+                <div class="layui-tab" lay-filter="mytabbar">
+                    <div class="layui-tab-content mt20">
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-form-item">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">创客名称</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" readonly id="RealName" name="RealName"
+                                        value="@ViewBag.RealName" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                        <input class="layui-input" type="hidden" readonly id="UserId" name="UserId"
+                                        value="@ViewBag.UserId" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                        <input class="layui-input" type="hidden" readonly id="UseAmount" name="UseAmount"
+                                        value="@ViewBag.UseAmount" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">申请单号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" readonly id="ApplyNo" name="ApplyNo"
+                                        value="@editData.ApplyNo" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="">
+                                </div>
+                            </div>
+                            <fieldset class="layui-elem-field layui-field-title">
+                                <legend>申请信息</legend>
+                            </fieldset>
+                            <input type="hidden" id="SendSn" name="SendSn" value="@editData.SendSn">
+                            @foreach (Dictionary<string, object> item in KsProductList)
+                            {
+                                <div class="layui-form-item">
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label">@item["Name"]:</label>
+                                        <div class="layui-input-inline productlist">
+                                            <input type="hidden" name="BrandId" value="@item["BrandId"]">
+                                            <input class="layui-input" type="text" @(editData.Status == 1 ? "readonly" : "") name="ApplyNum" placeholder=""
+                                            autocomplete="off" value="@item["Num"]">
+                                        </div>
+                                    </div>
+                                </div>
+                            }
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </div>
+                </div>
+            </div>
+        </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>
+
+
+            //编辑器
+            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>

+ 188 - 0
Areas/Admin/Views/OperateServer/StoreMachineApplyOperate/Index.cshtml

@@ -0,0 +1,188 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    @{
+                        Dictionary<string, string> KqProductsDic = new MySystem.DictionaryClass().getKqProductsDic();
+                    }
+                    @* <div class="layui-inline">
+                        <label class="layui-form-label">品牌</label>
+                        <div class="layui-input-inline">
+                            <select id="BrandIdSelect" name="BrandIdSelect" lay-search="">
+                                <option value="">全部...</option>
+                                @foreach (string key in KqProductsDic.Keys)
+                                {
+                                    <option value="@key">@KqProductsDic[key]</option>
+                                }
+                            </select>
+                        </div>
+                    </div> *@
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <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">
+                            <input class="layui-input" type="text" name="ApplyNo" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">发货方式</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="SendMode" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="MakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="OpCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">发货状态</label>
+                        <div class="layui-input-inline">
+                            <select id="StatusSelect" name="StatusSelect" 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">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <button class="layui-btn" data-type="Open">开启</button>
+                        <button class="layui-btn" data-type="Close">关闭</button>
+                        <button class="layui-btn" data-type="ExportExcel"><i
+                            class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+
+                    }
+                </div>
+
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>订单信息</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_audit,"))
+                    {
+                        @("{{# if(d.Status == 0 ) { }}")
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="audit"><i class="layui-icon layui-icon-edit"></i>审核发货</a>
+                        @("{{# } }}")
+                    }
+                    {{# if(d.Status == 0) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="Close"><i class="layui-icon layui-icon-edit"></i>驳回</a>
+                    {{# } }}
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">模板下载</label>
+                <div class="layui-form-mid layui-word-aux" id="excelTemp">
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-form-mid layui-word-aux">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/StoreMachineApply_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

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

@@ -0,0 +1,322 @@
+@{
+    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">
+
+        <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="RealName" name="RealName" 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-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-inline">
+                                    <input class="layui-input" type="text" id="MakerMobile" name="MakerMobile"
+                                        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-inline">
+                                    <input class="layui-input" type="text" id="TotalAmt" name="TotalAmt" 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">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="FilePath" name="FilePath" value=""
+                                            lay-verify="required|">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">
+                                            @(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="FilePathFile">
+                                    </div>
+                                    <div style="width: 50%; margin-top:20px; display:none;" id="FilePathProgressBar">
+                                        <div class="layui-progress" lay-showpercent="true"
+                                            lay-filter="FilePathProgress">
+                                            <div class="layui-progress-bar" lay-percent="0%"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库所属地区</label>
+                                <input type="hidden" id="Areas" name="Areas" />
+                                <div class="layui-input-inline">
+                                    <select id="AreasProvince" lay-search="" lay-filter="AreasProvince"
+                                        lay-verify="required|">
+                                        <option value="">省</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                        <option value="">市</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                        <option value="">县/区</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库地址</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Address" name="Address" maxlength="128"
+                                        lay-verify="required|" autocomplete="off" placeholder="请输入仓库地址">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">用户名</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="AdminName" name="AdminName"
+                                        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-inline">
+                                    <input class="layui-input" type="password" id="Password" name="Password"
+                                        lay-verify="required|" autocomplete="off" placeholder="请输入密码">
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
+                </div>
+            </div>
+        </div>
+    </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>
+
+
+        //编辑器
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#FilePath').val(filename);
+                setTimeout(function () {
+                    $("#FilePathProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#FilePathProgressBar").css("display", "block");
+                element.progress('FilePathProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+            AreasProvinceSelected("Areas", "", form, data.value);
+            });
+            form.on('select(AreasCity)', function (data) {
+            AreasCitySelected("Areas", "", form, data.value)
+            });
+            form.on('select(AreasArea)', function (data) {
+            AreasAreaSelected("Areas", form)
+            });
+            setTimeout(function () {
+            AreasProvinceInit("Areas", "", form);
+            }, 1000);
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 289 - 0
Areas/Admin/Views/OperateServer/SysAdminOperate/Edit.cshtml

@@ -0,0 +1,289 @@
+@using MySystem.OpModels;
+@{
+    SysAdmin editData = ViewBag.data as SysAdmin;
+    UserAccount editDatas = ViewBag.datas as UserAccount;
+}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+
+        <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-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="RealName" name="RealName" value="@editData.RealName"
+                                            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-inline">
+                                        <input class="layui-input" type="text" id="MakerCode" name="MakerCode" value="@editData.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-inline">
+                                        <input class="layui-input" type="text" id="MakerMobile" name="MakerMobile" value="@editData.MakerMobile"
+                                            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-inline">
+                                        <input class="layui-input" type="text" readonly id="TotalAmt" name="TotalAmt" value="@editDatas.TotalAmt"
+                                            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">
+                                        <div class="layui-upload">
+                                            <input type="hidden" id="FilePath" name="FilePath" value="@editData.FilePath">
+                                            <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                            <div class="layui-inline layui-word-aux">@(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                        </div>
+                                        <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>
+                                            }
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">用户名</label>
+                                    <div class="layui-input-inline">
+                                        <input class="layui-input" type="text" id="AdminName" name="AdminName" value="@editData.AdminName" 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-inline">
+                                        <input class="layui-input" type="password" id="Password" name="Password" value="@editData.Password" lay-verify="required|"
+                                            autocomplete="off" placeholder="请输入密码">
+                                    </div>
+                                </div>
+                            </div>
+
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-hide">
+                        <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                            value="确认">
+                    </div>
+                </div>
+            </div>
+        </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>
+
+
+            //编辑器
+            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');
+                });
+
+                //日期
+
+
+                //上传文件
+                WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                    $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                    $('#FilePath').val(filename);
+                    setTimeout(function () {
+                        $("#FilePathProgressBar").css("display", "none");
+                    }, 1000);
+                }, function (file) {
+                    $("#FilePathProgressBar").css("display", "block");
+                    element.progress('FilePathProgress', file.percent + '%');
+                });
+                WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                    $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                    $('#HeadPhoto').val(filename);
+                });
+
+
+                //穿梭框
+
+
+                //TreeView,比如权限管理
+
+
+                //省市区
+
+            })
+
+        </script>
+</body>
+
+</html>

+ 115 - 0
Areas/Admin/Views/OperateServer/SysAdminOperate/EditAmt.cshtml

@@ -0,0 +1,115 @@
+@using MySystem.OpModels;
+@{
+    SysAdmin editData = ViewBag.data as SysAdmin;
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        <div class="layui-card">
+          <div class="layui-card-body">
+        <div class="layui-tab" lay-filter="mytabbar">
+            <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" readonly value="@editData.OpCode">
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">运营中心名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly value="@editData.RealName">
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <div class="layui-inline">
+                            <label class="layui-form-label">*操作类别</label>
+                            <div class="layui-input-inline">
+                                <select id="Kind" name="Kind" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="1">扣减</option>
+                                    <option value="2">增加</option>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">*金额</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" id="OperationAmount" name="OperationAmount" maxlength="20" lay-verify="required|number|" autocomplete="off" placeholder="请输入操作金额">
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-form-text">
+                        <label class="layui-form-label">*备注</label>
+                        <div class="layui-input-block">
+                            <textarea class="layui-textarea" id="Note" name="Note" lay-verify="required" placeholder="请输入备注"></textarea>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </div>
+        <div class="layui-form-item layui-hide">
+            <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+        </div>
+    </div>
+    </div>
+    </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>
+        var element;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'layedit', 'laydate', 'element', 'util'], function () {
+            var $ = layui.$
+                , form = layui.form
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , util = layui.util;
+            element = layui.element;
+
+            //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>

+ 117 - 0
Areas/Admin/Views/OperateServer/SysAdminOperate/EditBalance.cshtml

@@ -0,0 +1,117 @@
+@using MySystem.OpModels;
+@{
+    SysAdmin editData = ViewBag.data as SysAdmin;
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        <div class="layui-card">
+          <div class="layui-card-body">
+        <div class="layui-tab" lay-filter="mytabbar">
+            <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" readonly value="@editData.OpCode">
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">运营中心名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly value="@editData.RealName">
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <div class="layui-inline">
+                            <label class="layui-form-label">*操作类别</label>
+                            <div class="layui-input-inline">
+                                <select id="Kind" name="Kind" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    <option value="1">冻结</option>
+                                    <option value="2">解冻</option>
+                                    <option value="3">扣减</option>
+                                    <option value="4">增加</option>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">*金额</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" id="OperationAmount" name="OperationAmount" maxlength="20" lay-verify="required|number|" autocomplete="off" placeholder="请输入操作金额">
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-form-text">
+                        <label class="layui-form-label">*备注</label>
+                        <div class="layui-input-block">
+                            <textarea class="layui-textarea" id="Note" name="Note" lay-verify="required" placeholder="请输入备注"></textarea>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </div>
+        <div class="layui-form-item layui-hide">
+            <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+        </div>
+    </div>
+    </div>
+    </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>
+        var element;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'layedit', 'laydate', 'element', 'util'], function () {
+            var $ = layui.$
+                , form = layui.form
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , util = layui.util;
+            element = layui.element;
+
+            //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>

+ 139 - 0
Areas/Admin/Views/OperateServer/SysAdminOperate/Index.cshtml

@@ -0,0 +1,139 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline{
+            width: 175px !important;
+        }
+        .layui-form-label{
+            width: 85px !important;
+        }
+        .layui-inline{
+            margin-right: 0px !important;
+        }
+        .w100{
+            width: 100px !important;
+        }
+        .ml50{
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="AdminName" placeholder=""
+                                autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="RealName" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDateData"
+                            placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                    <button class="layui-btn" data-type="batchdel"><i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <button class="layui-btn" data-type="Open">开启</button>
+                        <button class="layui-btn" data-type="Close">关闭</button>
+                    }
+                </div>
+                
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="imgTpl">
+                    <img style="display: inline-block; width: 50%; height: 100%;" src={{ d.avatar }}>
+                </script>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                    <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 + "_EditAmt,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="EditAmt"><i class="layui-icon layui-icon-edit"></i>修改可用额度</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_EditBalance,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="EditBalance"><i class="layui-icon layui-icon-edit"></i>修改账户余额</a>
+                    }
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-input-block">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/SysAdminOperate_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+        
+    </script>
+</body>
+</html>

+ 229 - 0
Areas/Admin/Views/OperateServer/SysAdminOperateRole/Add.cshtml

@@ -0,0 +1,229 @@
+@{
+    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">
+        
+        <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-block">
+<input class="layui-input" type="text" id="Name" name="Name" maxlength="50" lay-verify="required|" autocomplete="off" placeholder="请输入名称">
+</div>
+</div>
+<div class="layui-form-item layui-form-text">
+<label class="layui-form-label">描述</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="Details" name="Details" maxlength="max" lay-verify="required|" placeholder="请输入描述"></textarea>
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">权限设置</label>
+<div class="layui-input-block">
+<input type="hidden" id="RightInfo" name="RightInfo" value="" />
+<div id="RightInfoTree" class="demo-tree-more"><div style="padding-top: 8px;">加载中...</div></div>
+</div>
+</div>
+
+</div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+                    
+        //编辑器
+        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,比如权限管理
+            var RightInfoData = @(Html.Raw(new MySystem.PublicFunction().GetRightJson()));
+tree.render({
+elem: '#RightInfoTree'
+, data: RightInfoData
+, showCheckbox: true
+, id: 'RightInfoTreeID'
+});
+
+
+            //省市区
+            
+        })
+
+    </script>
+</body>
+</html>

+ 236 - 0
Areas/Admin/Views/OperateServer/SysAdminOperateRole/Edit.cshtml

@@ -0,0 +1,236 @@
+@using MySystem.BsModels;
+@{SysAdminRole editData = ViewBag.data as SysAdminRole;}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <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-block">
+                                <input class="layui-input" type="text" id="Name" name="Name" value="@editData.Name"
+                                    maxlength="50" lay-verify="required|" autocomplete="off" placeholder="请输入名称">
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">描述</label>
+                            <div class="layui-input-block">
+                                <textarea class="layui-textarea" id="Details" name="Details" maxlength="max"
+                                    lay-verify="required|" placeholder="请输入描述">@editData.Details</textarea>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">权限设置</label>
+                            <div class="layui-input-block">
+                                <input type="hidden" id="RightInfo" name="RightInfo" value="@editData.RightInfo" />
+                                <div id="RightInfoTree" class="demo-tree-more">
+                                    <div style="padding-top: 8px;">加载中...</div>
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        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,比如权限管理
+            var RightInfoData = @(Html.Raw(new MySystem.PublicFunction().GetRightJson()));
+            tree.render({
+                elem: '#RightInfoTree'
+                , data: RightInfoData
+                , showCheckbox: true
+                , id: 'RightInfoTreeID'
+            });
+            tree.setChecked('RightInfoTreeID', ['@(Html.Raw(new MySystem.PublicFunction().TranslateRightString(editData.RightInfo).Replace(",","','")))']);
+
+
+            //省市区
+            
+        })
+
+    </script>
+</body>
+</html>

+ 98 - 0
Areas/Admin/Views/OperateServer/SysAdminOperateRole/Index.cshtml

@@ -0,0 +1,98 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+<div class="layui-input-inline">
+<input class="layui-input" type="text" name="Name" placeholder="名称" autocomplete="off">
+</div>
+</div>
+                    <div class="layui-inline">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                    <button class="layui-btn" data-type="batchdel"><i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                    
+                    }
+                </div>
+                
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="imgTpl">
+                    <img style="display: inline-block; width: 50%; height: 100%;" src={{ d.avatar }}>
+                </script>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+                    }
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-input-block">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/SysAdminRoleOperate_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+        
+    </script>
+</body>
+</html>

+ 291 - 0
Areas/Admin/Views/OperateServer/SystemSetOperate/Add.cshtml

@@ -0,0 +1,291 @@
+@{
+    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">
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <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><li lay-id="5">上传</li><li lay-id="18">高级设置</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-block">
+<input class="layui-input" type="text" id="WebUrl" name="WebUrl" maxlength="200" lay-verify="" autocomplete="off" placeholder="请输入网站地址">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">网站名称</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="WebName" name="WebName" maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入网站名称">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">首页关键词</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="IndexKeyword" name="IndexKeyword" maxlength="200" lay-verify="" autocomplete="off" placeholder="请输入首页关键词">
+</div>
+</div>
+<div class="layui-form-item layui-form-text">
+<label class="layui-form-label">首页简介</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="IndexDescription" name="IndexDescription" lay-verify="" placeholder="请输入首页简介"></textarea>
+</div>
+</div>
+<div class="layui-form-item layui-form-text">
+<label class="layui-form-label">版权信息</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="RightInfo" name="RightInfo" lay-verify="" placeholder="请输入版权信息"></textarea>
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">企业地址</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="Address" name="Address" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入企业地址">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">联系电话</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="Phone" name="Phone" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入联系电话">
+</div>
+</div>
+<div class="layui-form-item layui-form-text">
+<label class="layui-form-label">网站统计代码</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="WebStatCode" name="WebStatCode" lay-verify="" placeholder="请输入网站统计代码"></textarea>
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">Logo图片</label>
+<div class="layui-input-block">
+<div class="layui-upload">
+<input type="hidden" id="Logo" name="Logo" value="">
+<button class="layui-btn" type="button" id="LogoBtn">选择图片</button>
+<div class="layui-inline layui-word-aux"></div>
+</div>
+<div class="mt10" id="LogoImage">
+</div>
+</div>
+</div>
+
+</div>
+<div class="layui-tab-item">
+<div class="layui-form-item">
+<label class="layui-form-label">允许上传类型</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="UploadExt" name="UploadExt" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入允许上传类型">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">允许最大上传</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="UploadMaxSize" name="UploadMaxSize" maxlength="20" lay-verify="integer;" autocomplete="off" placeholder="请输入允许最大上传">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">自动缩略图</label>
+<div class="layui-input-block">
+<input type="checkbox" id="UploadAutoZoom" name="UploadAutoZoom" value="True" lay-skin="switch" lay-filter="switchTest" title="开关">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">自动缩略图宽</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="UploadAutoZoomWidth" name="UploadAutoZoomWidth" maxlength="20" lay-verify="required;integer;" autocomplete="off" placeholder="请输入自动缩略图宽">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">自动缩略图高</label>
+<div class="layui-input-inline">
+<input class="layui-input" type="text" id="UploadAutoZoomHeight" name="UploadAutoZoomHeight" maxlength="20" lay-verify="required;integer;" autocomplete="off" placeholder="请输入自动缩略图高">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">自动水印</label>
+<div class="layui-input-block">
+<input type="checkbox" id="UploadAutoWater" name="UploadAutoWater" value="True" lay-skin="switch" lay-filter="switchTest" title="开关">
+</div>
+</div>
+<div class="layui-form-item">
+<div class="layui-inline">
+<label class="layui-form-label">水印位置</label>
+<div class="layui-input-inline">
+<select id="UploadWaterPosition" name="UploadWaterPosition" lay-search="">
+<option value="">请选择</option>
+</select>
+</div>
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">水印图片</label>
+<div class="layui-input-block">
+<div class="layui-upload">
+<input type="hidden" id="UploadWaterPath" name="UploadWaterPath" value="">
+<button class="layui-btn" type="button" id="UploadWaterPathBtn">选择图片</button>
+<div class="layui-inline layui-word-aux"></div>
+</div>
+<div class="mt10" id="UploadWaterPathImage">
+</div>
+</div>
+</div>
+
+</div>
+<div class="layui-tab-item">
+<div class="layui-form-item">
+<label class="layui-form-label">网页标题</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="SeoTitle" name="SeoTitle" maxlength="50" autocomplete="off" placeholder="请输入网页标题">
+</div>
+</div>
+<div class="layui-form-item">
+<label class="layui-form-label">网页关键字</label>
+<div class="layui-input-block">
+<input class="layui-input" type="text" id="SeoKeyword" name="SeoKeyword" maxlength="50" autocomplete="off" placeholder="请输入网页关键字">
+</div>
+</div>
+<div class="layui-form-item layui-form-text">
+<label class="layui-form-label">网页描述</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" name="SeoDescription" id="SeoDescription" placeholder="请输入网页描述"></textarea>
+</div>
+</div>
+
+</div>
+
+            </div>
+        </div>
+        <div class="layui-form-item layui-hide">
+            <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+        </div>
+    </div>
+    </div>
+    </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>
+        
+                    
+        //编辑器
+        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 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") + "|";
+            });
+            $("#" + 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 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;" />'
+            });
+        }
+
+
+        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
+                , element = layui.element
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , croppers = layui.croppers
+                , upload = layui.upload
+                , transfer = layui.transfer
+                , util = layui.util
+                , tree = layui.tree;
+        
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+    
+            //日期
+            
+
+            //上传文件
+            WebUploadJs('UploadWaterPathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', {}, {},  function (filename) {
+$('#UploadWaterPathImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+$('#UploadWaterPath').val(filename);
+});
+WebUploadJs('LogoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', {}, {},  function (filename) {
+$('#LogoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+$('#Logo').val(filename);
+});
+
+
+            //穿梭框
+            
+
+            //TreeView,比如权限管理
+            
+        })
+
+    </script>
+</body>
+</html>

+ 178 - 0
Areas/Admin/Views/OperateServer/SystemSetOperate/AppStart.cshtml

@@ -0,0 +1,178 @@
+@using MySystem.BsModels;
+@{SystemSet editData = ViewBag.data as SystemSet;}
+@{
+    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>
+</head>
+<body style="background-color:#fff;">
+
+    <div class="layui-form" style="padding: 20px 0 0 0;">
+        <form class="layui-form" id="confirmFrm">
+            <input type="hidden" name="Id" value="@editData.Id" />
+            <div class="layui-card">
+          <div class="layui-card-body">
+        <div class="layui-tab" lay-filter="mytabbar">
+                <div class="layui-tab-content mt20">
+                    <div class="layui-tab-item layui-show">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">App启动图片</label>
+                            <div class="layui-input-block">
+                                <div class="layui-upload">
+                                    <input type="hidden" id="StartAdPhoto" name="StartAdPhoto" value="@editData.StartAdPhoto">
+                                    <button class="layui-btn" type="button" id="StartAdPhotoBtn">选择图片</button>
+                                    <div class="layui-inline layui-word-aux"></div>
+                                </div>
+                                <div class="mt10" id="StartAdPhotoImage">
+                                    @if (!string.IsNullOrEmpty(editData.StartAdPhoto))
+                                    {
+                                        <img src="@editData.StartAdPhoto" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic('@editData.StartAdPhoto')">
+                                    }
+                                </div>
+                            </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>
+        </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 index = layer.load(1, {
+                shade: [0.5, '#000']
+            });
+            var userdata = $("#confirmFrm").serialize();
+            $.ajax({
+                type: "POST",
+                url: "/Admin/SystemSet/AppStart?r=" + Math.random(1),
+                data: userdata,
+                dataType: "text",
+                success: function (data) {
+                    layer.close(index); //关闭弹层
+                    if (data == "success") {
+                        layer.msg("修改成功");
+                    } else {
+                        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 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") + "|";
+            });
+            $("#" + 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 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 upload;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util'], function () {
+            var $ = layui.$;
+            var 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');
+            });
+
+            //日期
+
+
+            //上传文件
+            upload.render({
+                elem: '#StartAdPhotoBtn',
+                url: '/Admin/SystemSet/UploadPhoto',
+                multiple: false,
+                done: function (res) {
+                    $('#StartAdPhotoImage').html('<img src="' + res.obj + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(' + res.obj + ')">')
+                    $('#StartAdPhoto').val(res.obj);
+                }
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+        })</script>
+</body>
+</html>

+ 350 - 0
Areas/Admin/Views/OperateServer/SystemSetOperate/Edit.cshtml

@@ -0,0 +1,350 @@
+@using MySystem.BsModels;
+@{SystemSet editData = ViewBag.data as SystemSet;}
+@{
+    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>
+</head>
+<body style="background-color:#fff;">
+
+    <div class="layui-form" style="padding: 20px 0 0 0;">
+        <form class="layui-form" id="confirmFrm">
+            <input type="hidden" name="Id" value="@editData.Id" />
+            <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>
+                    <li lay-id="2">上传</li>
+                    <!-- <li lay-id="3">模板设置</li>
+                    <li lay-id="4">App设置</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-block">
+                                <input class="layui-input" type="text" id="WebUrl" name="WebUrl" value="@editData.WebUrl" maxlength="200" lay-verify="" autocomplete="off" placeholder="请输入网站地址">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">网站名称</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="WebName" name="WebName" value="@editData.WebName" maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入网站名称">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">首页关键词</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="IndexKeyword" name="IndexKeyword" value="@editData.IndexKeyword" maxlength="200" lay-verify="" autocomplete="off" placeholder="请输入首页关键词">
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">首页简介</label>
+                            <div class="layui-input-block">
+<textarea class="layui-textarea" id="IndexDescription" name="IndexDescription" lay-verify="" placeholder="请输入首页简介">@editData.IndexDescription</textarea>
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">版权信息</label>
+                            <div class="layui-input-block">
+<textarea class="layui-textarea" id="RightInfo" name="RightInfo" lay-verify="" placeholder="请输入版权信息">@editData.RightInfo</textarea>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">企业地址</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="Address" name="Address" value="@editData.Address" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入企业地址">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">联系电话</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="Phone" name="Phone" value="@editData.Phone" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入联系电话">
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">网站统计代码</label>
+                            <div class="layui-input-block">
+<textarea class="layui-textarea" id="WebStatCode" name="WebStatCode" lay-verify="" placeholder="请输入网站统计代码">@editData.WebStatCode</textarea>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">Logo图片</label>
+                            <div class="layui-input-block">
+                                <div class="layui-upload">
+                                    <input type="hidden" id="Logo" name="Logo" value="@editData.Logo">
+                                    <button class="layui-btn" type="button" id="LogoBtn">选择图片</button>
+                                    <div class="layui-inline layui-word-aux"></div>
+                                </div>
+                                <div class="mt10" id="LogoImage">
+                                    @if (!string.IsNullOrEmpty(editData.Logo))
+                                    {
+                                        <img src="@(MySystem.OssHelper.Instance.SourceHost)@editData.Logo" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic('@(MySystem.OssHelper.Instance.SourceHost)@editData.Logo')">
+                                    }
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+                    <div class="layui-tab-item">                        
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">是否上传到OSS</label>
+                            <div class="layui-input-block">
+                                <input type="checkbox" id="UploadOss" name="UploadOss" value="1" @(editData.UploadOss == 1 ? "checked=checked" : "") lay-skin="switch" lay-filter="switchTest" title="开关">
+                            </div>
+                        </div>
+                        <!-- <div class="layui-form-item">
+                            <label class="layui-form-label">允许上传类型</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="UploadExt" name="UploadExt" value="@editData.UploadExt" maxlength="100" lay-verify="" autocomplete="off" placeholder="请输入允许上传类型">
+                            </div>
+                        </div> -->
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">允许最大上传</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="UploadMaxSize" name="UploadMaxSize" value="@editData.UploadMaxSize" maxlength="20" lay-verify="integer;" autocomplete="off" placeholder="请输入允许最大上传">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">自动缩略图</label>
+                            <div class="layui-input-block">
+                                <input type="checkbox" id="UploadAutoZoom" name="UploadAutoZoom" value="1" @(editData.UploadAutoZoom == 1 ? "checked=checked" : "") lay-skin="switch" lay-filter="switchTest" title="开关">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">自动缩略图宽</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="UploadAutoZoomWidth" name="UploadAutoZoomWidth" value="@editData.UploadAutoZoomWidth" maxlength="20" lay-verify="required;integer;" autocomplete="off" placeholder="请输入自动缩略图宽">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">自动缩略图高</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="UploadAutoZoomHeight" name="UploadAutoZoomHeight" value="@editData.UploadAutoZoomHeight" maxlength="20" lay-verify="required;integer;" autocomplete="off" placeholder="请输入自动缩略图高">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">自动缩略图质量</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" id="UploadAutoZoomQuality" name="UploadAutoZoomQuality" value="@editData.UploadAutoZoomQuality" maxlength="20" lay-verify="required;integer;" autocomplete="off" placeholder="自动缩略图质量">
+                            </div>
+                        </div>
+                        <!-- <div class="layui-form-item">
+                            <label class="layui-form-label">自动水印</label>
+                            <div class="layui-input-block">
+                                <input type="checkbox" id="UploadAutoWater" name="UploadAutoWater" value="1" @(editData.UploadAutoWater == 1 ? "checked=checked" : "") lay-skin="switch" lay-filter="switchTest" title="开关">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <div class="layui-inline">
+                                <label class="layui-form-label">水印位置</label>
+                                <div class="layui-input-inline">
+                                    <select id="UploadWaterPosition" name="UploadWaterPosition" lay-search="">
+                                        <option value="">请选择</option>
+                                    </select>
+                                    <script>$("#UploadWaterPosition").val("@editData.UploadWaterPosition");</script>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">水印图片</label>
+                            <div class="layui-input-block">
+                                <div class="layui-upload">
+                                    <input type="hidden" id="UploadWaterPath" name="UploadWaterPath" value="@editData.UploadWaterPath">
+                                    <button class="layui-btn" type="button" id="UploadWaterPathBtn">选择图片</button>
+                                    <div class="layui-inline layui-word-aux"></div>
+                                </div>
+                                <div class="mt10" id="UploadWaterPathImage">
+                                    @if (!string.IsNullOrEmpty(editData.UploadWaterPath))
+                                    {
+                                        <img src="@(MySystem.OssHelper.Instance.SourceHost)@editData.UploadWaterPath" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic('@(MySystem.OssHelper.Instance.SourceHost)@editData.UploadWaterPath')">
+                                    }
+                                </div>
+                            </div>
+                        </div> -->
+                    </div>
+                    @*<div class="layui-tab-item">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">主题目录</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="TempPath" name="TempPath" value="@editData.TempPath" maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入主题目录">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">主题目录(移动)</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="TempPathM" name="TempPathM" value="@editData.TempPathM" maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入主题目录(移动)">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-tab-item">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">App启动图片</label>
+                            <div class="layui-input-block">
+                                <div class="layui-upload">
+                                    <input type="hidden" id="StartAdPhoto" name="StartAdPhoto" value="@editData.StartAdPhoto">
+                                    <button class="layui-btn" type="button" id="StartAdPhotoBtn">选择图片</button>
+                                    <div class="layui-inline layui-word-aux"></div>
+                                </div>
+                                <div class="mt10" id="StartAdPhotoImage">
+                                    @if (!string.IsNullOrEmpty(editData.StartAdPhoto))
+                                    {
+                                        <img src="@editData.StartAdPhoto" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic('@editData.StartAdPhoto')">
+                                    }
+                                </div>
+                            </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>
+        </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 index = layer.load(1, {
+                shade: [0.5, '#000']
+            });
+            var userdata = $("#confirmFrm").serialize();
+            $.ajax({
+                type: "POST",
+                url: "/Admin/SystemSet/Edit?r=" + Math.random(1),
+                data: userdata,
+                dataType: "text",
+                success: function (data) {
+                    layer.close(index); //关闭弹层
+                    if (data == "success") {
+                        layer.msg("修改成功");
+                    } else {
+                        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 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") + "|";
+            });
+            $("#" + 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 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 upload;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util'], function () {
+            var $ = layui.$;
+            var 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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('UploadWaterPathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', {}, {},  function (filename) {
+                $('#UploadWaterPathImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#UploadWaterPath').val(filename);
+            });
+            WebUploadJs('LogoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', {}, {},  function (filename) {
+                $('#LogoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#Logo').val(filename);
+            });
+            upload.render({
+                elem: '#StartAdPhotoBtn',
+                url: '/Admin/SystemSet/UploadPhoto',
+                multiple: false,
+                done: function (res) {
+                    $('#StartAdPhotoImage').html('<img src="' + res.obj + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(' + res.obj + ')">')
+                    $('#StartAdPhoto').val(res.obj);
+                }
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+        })</script>
+</body>
+</html>

+ 104 - 0
Areas/Admin/Views/OperateServer/SystemSetOperate/Index.cshtml

@@ -0,0 +1,104 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="WebUrl" placeholder="网站地址" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="WebName" placeholder="网站名称" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                    @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,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+
+                    }
+                </div>
+
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="imgTpl">
+                    <img style="display: inline-block; width: 50%; height: 100%;" src={{ d.avatar }}>
+                </script>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+                    }
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-input-block">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/SystemSetOperate_Admin.js"></script>
+</body>
+
+</html>

+ 203 - 0
Areas/Admin/Views/OperateServer/UserAccountRecordOperate/Add.cshtml

@@ -0,0 +1,203 @@
+@{
+    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">
+        
+        <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>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+                    
+        //编辑器
+        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>

+ 205 - 0
Areas/Admin/Views/OperateServer/UserAccountRecordOperate/Edit.cshtml

@@ -0,0 +1,205 @@
+@using MySystem.Models;
+@{UserAccountRecord editData = ViewBag.data as UserAccountRecord;}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <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>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        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>

+ 142 - 0
Areas/Admin/Views/OperateServer/UserAccountRecordOperate/Index.cshtml

@@ -0,0 +1,142 @@
+@using MySystem.Models;
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string UserId = ViewBag.UserId as string;
+    List<Users> TopUsers = ViewBag.TopUsers as List<Users>;
+    List<KqProducts> Brands = ViewBag.Brands as List<KqProducts>;
+    
+}
+<!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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline{
+            width: 175px !important;
+        }
+        .layui-form-label{
+            width: 85px !important;
+        }
+        .layui-inline{
+            margin-right: 0px !important;
+        }        
+        .w100{
+            width: 100px !important;
+        }
+        .ml50{
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="OpCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="MakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">交易时间</label>
+                        <div class="layui-input-inline">
+                            <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="ChangeType" name="ChangeType" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">激活奖励</option>
+                                <option value="1">交易分润</option>
+                                <option value="11">月月红</option>
+                                <option value="2">提现申请</option>
+                                <option value="3">提现代付</option>
+                                <option value="4">提现手续费</option>
+                                <option value="5">提现税点扣除</option>
+                                <option value="6">提现失败,解冻</option>
+                                <option value="61">人工冻结</option>
+                                <option value="62">人工解冻</option>
+                                <option value="63">人工扣减</option>
+                                <option value="64">人工增加</option>
+                                <option value="7">系统扣除</option>
+                                <option value="10">办卡奖励</option>
+                                <option value="20">余额支付</option>
+                                <option value="21">余额退款</option>
+                                <option value="22">余额退款手续费</option>
+                                <option value="30">红包奖励</option>
+                                <option value="31">活动奖励</option>
+                                <option value="40">商户达标返</option>
+                                <option value="50">开机奖励</option>
+                                <option value="60">流量卡分佣</option>
+                                <option value="111">分润补贴</option>
+                                <option value="112">直推奖励</option>
+                                <option value="116">大盟主奖励</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">产品类型</label>
+                        <div class="layui-input-inline">
+                            <select id="ProductType" name="ProductType" lay-search="">
+                                <option value="">全部...</option>
+                                @foreach(KqProducts Brand in Brands)
+                                {
+                                <option value="@Brand.Id">@Brand.Name</option>
+                                }
+                            </select>
+                        </div>
+                    </div>                    
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                        @if (RightInfo.Contains("," + right + "_export,"))
+                        {
+                            <button class="layui-btn" data-type="ExportExcel"><i class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                        }
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <blockquote class="layui-elem-quote layui-text">
+                    激活奖励(元):<span style="color: #f00;" id="ChangeTypeAmount0">0.00</span> | 交易分润(元):<span style="color: #f00;" id="ChangeTypeAmount1">0.00</span> | 创客开机奖励(元):<span style="color: #f00;" id="ChangeTypeAmount50">0.00</span> | 分润补贴(元):<span style="color: #f00;" id="ChangeTypeAmount111">0.00</span> | 直推奖励(元):<span style="color: #f00;" id="ChangeTypeAmount112">0.00</span> | 流量卡分佣(元):<span style="color: #f00;" id="ChangeTypeAmount60">0.00</span> | 红包奖励(元):<span style="color: #f00;" id="ChangeTypeAmount31">0.00</span>
+                    <br />
+                    提现申请(元):<span style="color: #f00;" id="ChangeTypeAmount2">0.00</span> | 提现失败,解冻(元):<span style="color: #f00;" id="ChangeTypeAmount6">0.00</span> | 人工冻结(元):<span style="color: #f00;" id="ChangeTypeAmount61">0.00</span> | 人工解冻(元):<span style="color: #f00;" id="ChangeTypeAmount62">0.00</span> | 人工扣减(元):<span style="color: #f00;" id="ChangeTypeAmount63">0.00</span> | 人工增加(元):<span style="color: #f00;" id="ChangeTypeAmount64">0.00</span> | 提现代付(元):<span style="color: #f00;" id="ChangeTypeAmount3">0.00</span> | 提现手续费(元):<span style="color: #f00;" id="ChangeTypeAmount4">0.00</span> | 提现税点扣除(元):<span style="color: #f00;" id="ChangeTypeAmount5">0.00</span>
+                </blockquote>
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                </script>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/UserAccountRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+        var UserId = '@UserId';
+    </script>
+</body>
+</html>

+ 209 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/Add.cshtml

@@ -0,0 +1,209 @@
+@{
+    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">
+        
+        <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 layui-form-text">
+<label class="layui-form-label">备注</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128" lay-verify="" placeholder="请输入备注"></textarea>
+</div>
+</div>
+
+</div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+                    
+        //编辑器
+        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>

+ 211 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/Edit.cshtml

@@ -0,0 +1,211 @@
+@using MySystem.Models;
+@{UserCashRecord editData = ViewBag.data as UserCashRecord;}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <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 layui-form-text">
+<label class="layui-form-label">备注</label>
+<div class="layui-input-block">
+<textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128" lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+</div>
+</div>
+
+</div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        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>

+ 147 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/HelpProfitIndex.cshtml

@@ -0,0 +1,147 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">提现单号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="CashOrderNo" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="MakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="RealName" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">提现状态</label>
+                        <div class="layui-input-inline">
+                            <select id="StatusSelect" name="StatusSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">处理中</option>
+                                <option value="2">失败</option>
+                                <option value="1">成功</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="创建时间" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                        @* @if (RightInfo.Contains("," + right + "_reduce,"))
+                        {
+                            <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduce"><i
+                                class="layui-icon layui-icon-edit"></i>驳回</button>
+                        } *@
+                        @if (RightInfo.Contains("," + right + "_export,"))
+                        {
+                            <button class="layui-btn" data-type="ExportExcel"><i
+                                class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                        }
+                        @if (RightInfo.Contains("," + right + "_import,"))
+                        {
+                            <button class="layui-btn" data-type="ImportData"><i
+                                class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>提现结果导入</button>
+                        }
+                        @if (RightInfo.Contains("," + right + "_cash,"))
+                        {
+                            <button class="layui-btn" data-type="Cash"><i
+                                class="layui-icon layui-icon-up layuiadmin-button-btn"></i>提交到代付平台</button>
+                        }
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <blockquote class="layui-elem-quote layui-text">
+                    待处理总金额(元):<span style="color: #f00;" id="WaitAmount">0.00</span> | 提现成功总金额(元):<span
+                        style="color: #f00;" id="SuccessAmount">0.00</span> | 提现失败总金额(元):<span style="color: #f00;"
+                        id="FailAmount">0.00</span>
+                </blockquote>
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="StatusTpl">
+                    {{# if(d.Status == 2) { }}
+                    {{ d.StatusName }} <a href="javascript:;" style="color:cornflowerblue" onclick="layer.msg('{{ d.Remark }}')">点击查看原因</a>
+                    {{# } else { }}
+                    {{ d.StatusName }}
+                    {{# } }}
+                </script>
+                <script type="text/html" id="table-list-tools">
+                    {{# if(d.Status == 0) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduce"><i class="layui-icon layui-icon-edit"></i>驳回</a>
+                    {{# } }}
+                    {{# if(d.QueryCount == 1 && d.Status == 2) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="cancel"><i class="layui-icon layui-icon-edit"></i>解冻</a>
+                    {{# } }}
+                </script>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/UserCashHelpRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 134 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/Import.cshtml

@@ -0,0 +1,134 @@
+@{
+    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>
+    <style>
+        .layui-form-label {
+            width: 135px !important;
+        }
+
+        .layui-form-item .layui-input-block {
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+
+        <div class="layui-card">
+            <div class="layui-card-body">
+                <div class="layui-tab" lay-filter="mytabbar">
+                    <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-form-mid layui-word-aux" id="excelTemp">
+                                    <a href="/users/提现结果模板.xlsx">点击下载入库模版</a>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">excel文件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="ExcelPath" name="ExcelPath" value="">
+                                        <button class="layui-btn" type="button" id="ExcelPathBtn">选择</button>
+                                        <div class="layui-inline layui-word-aux"></div>
+                                    </div>
+                                    <div class="mt10" id="ExcelPathFile">
+                                    </div>
+                                </div>
+                            </div>
+
+                        </div>
+
+                    </div>
+                </div>
+                <div class="layui-form-item layui-hide">
+                    <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit"
+                        value="确认">
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min.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>
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('ExcelPathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', { width: 0, height: 0, quality: 0 }, { max_file_size: 1048576 }, function (filename) {
+                var fName = (filename.substring(filename.lastIndexOf("/"))).split("/");
+                $('#ExcelPathFile').html(fName);
+                $('#ExcelPath').val(filename);
+            });
+
+            //穿梭框
+
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+
+        });
+
+    </script>
+</body>
+
+</html>

+ 167 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/Index.cshtml

@@ -0,0 +1,167 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">提现单号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="CashOrderNo" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">运营中心编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="OpCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">提现状态</label>
+                        <div class="layui-input-inline">
+                            <select id="StatusSelect" name="StatusSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">处理中</option>
+                                <option value="2">失败</option>
+                                <option value="1">成功</option>
+                            </select>
+                        </div>
+                    </div>
+
+                    <div class="layui-inline">
+                        <label class="layui-form-label">交易类型</label>
+                        <div class="layui-input-inline">
+                            <select id="TradeType" name="TradeType" lay-search="">
+                                <option value="">全部...</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="QueryCountSelect" name="QueryCountSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">待提交</option>
+                                <option value="1">已提交</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="创建时间" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                        @* @if (RightInfo.Contains("," + right + "_reduce,"))
+                            {
+                            <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduce"><i
+                            class="layui-icon layui-icon-edit"></i>驳回</a>
+                            } *@
+                        @if (RightInfo.Contains("," + right + "_export,"))
+                        {
+                            <button class="layui-btn" data-type="ExportExcel"><i
+                                class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                        }
+                        @if (RightInfo.Contains("," + right + "_import,"))
+                        {
+                            <button class="layui-btn" data-type="ImportData"><i
+                                class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>提现结果导入</button>
+                        }
+                        @if (RightInfo.Contains("," + right + "_cash,"))
+                        {
+                            <button class="layui-btn" data-type="Cash"><i
+                                class="layui-icon layui-icon-up layuiadmin-button-btn"></i>提交到代付平台</button>
+                        }
+                        @if (RightInfo.Contains("," + right + "_batchset,"))
+                        {
+                            <button class="layui-btn" data-type="BatchSetting"><i
+                                class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>批量设置成功</button>
+                        }
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <blockquote class="layui-elem-quote layui-text">
+                    待处理总金额(元):<span style="color: #f00;" id="WaitAmount">0.00</span> | 提现成功总金额(元):<span
+                        style="color: #f00;" id="SuccessAmount">0.00</span> | 提现失败总金额(元):<span style="color: #f00;"
+                        id="FailAmount">0.00</span>
+                </blockquote>
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="StatusTpl">
+                    {{# if(d.Status == 2) { }}
+                    {{ d.StatusName }} <a href="javascript:;" style="color:cornflowerblue" onclick="layer.msg('{{ d.Remark }}')">点击查看原因</a>
+                    {{# } else { }}
+                    {{ d.StatusName }}
+                    {{# } }}
+                </script>
+                <script type="text/html" id="table-list-tools">
+                    {{# if(d.Status == 0) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduce"><i class="layui-icon layui-icon-edit"></i>驳回</a>
+                    {{# } }}
+                    {{# if(d.QueryCount == 1 && d.Status == 2) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="cancel"><i class="layui-icon layui-icon-edit"></i>解除</a>
+                    {{# } }}
+                </script>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_operate/UserCashRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 142 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/LeaderIndex.cshtml

@@ -0,0 +1,142 @@
+@{
+    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">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline {
+            width: 175px !important;
+        }
+
+        .layui-form-label {
+            width: 85px !important;
+        }
+
+        .layui-inline {
+            margin-right: 0px !important;
+        }
+
+        .w100 {
+            width: 100px !important;
+        }
+
+        .ml50 {
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">提现单号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="CashOrderNo" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="MakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创客名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="RealName" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">提现状态</label>
+                        <div class="layui-input-inline">
+                            <select id="StatusSelect" name="StatusSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="0">处理中</option>
+                                <option value="2">失败</option>
+                                <option value="1">成功</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="创建时间" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                        @* @if (RightInfo.Contains("," + right + "_reduce,"))
+                        {
+                            <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduce"><i
+                                class="layui-icon layui-icon-edit"></i>驳回</button>
+                        } *@
+                        @if (RightInfo.Contains("," + right + "_export,"))
+                        {
+                            <button class="layui-btn" data-type="ExportExcel"><i
+                                class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                        }
+                        @if (RightInfo.Contains("," + right + "_import,"))
+                        {
+                            <button class="layui-btn" data-type="ImportData"><i
+                                class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>提现结果导入</button>
+                        }
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <blockquote class="layui-elem-quote layui-text">
+                    待处理总金额(元):<span style="color: #f00;" id="WaitAmount">0.00</span> | 提现成功总金额(元):<span
+                        style="color: #f00;" id="SuccessAmount">0.00</span> | 提现失败总金额(元):<span style="color: #f00;"
+                        id="FailAmount">0.00</span>
+                </blockquote>
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="StatusTpl">
+                    {{# if(d.Status == 2) { }}
+                    {{ d.StatusName }} <a href="javascript:;" style="color:cornflowerblue" onclick="layer.msg('{{ d.Remark }}')">点击查看原因</a>
+                    {{# } else { }}
+                    {{ d.StatusName }}
+                    {{# } }}
+                </script>
+                <script type="text/html" id="table-list-tools">
+                    {{# if(d.Status == 0) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduce"><i class="layui-icon layui-icon-edit"></i>驳回</a>
+                    {{# } }}
+                    {{# if(d.QueryCount == 1 && d.Status == 2) { }}
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="cancel"><i class="layui-icon layui-icon-edit"></i>解冻</a>
+                    {{# } }}
+                </script>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/UserCashLeaderRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 107 - 0
Areas/Admin/Views/OperateServer/UserCashRecordOperate/Reduce.cshtml

@@ -0,0 +1,107 @@
+@using MySystem.Models;
+@{UserCashRecord editData = ViewBag.data as UserCashRecord;}
+@{
+    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">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <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 layui-form-text">
+                            <label class="layui-form-label">驳回原因</label>
+                            <div class="layui-input-block">
+                                <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128" lay-verify=""
+                                    placeholder="请输入驳回原因">@editData.Remark</textarea>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </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>
+        
+        
+        //编辑器
+        KindEditor.ready(function (K) {
+            
+        });
+
+        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>

+ 23 - 0
Models/HelpProfitAmountSummary.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class HelpProfitAmountSummary
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public decimal TradeAmount { get; set; }
+        public decimal MaxAmount { get; set; }
+        public int MerCount { get; set; }
+        public string TradeMonth { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 22 - 0
Models/HelpProfitMerTradeMonthSummay.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class HelpProfitMerTradeMonthSummay
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int BrandId { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeMonth { get; set; }
+        public int MerchantId { get; set; }
+    }
+}

+ 20 - 0
Models/Leaders.cs

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

+ 1 - 0
Models/MachineApply.cs

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

+ 1 - 0
Models/PosCoupons.cs

@@ -23,5 +23,6 @@ namespace MySystem.Models
         public int HelpProfitMerchantId { get; set; }
         public int HelpProfitStatus { get; set; }
         public ulong HelpProfitFlag { get; set; }
+        public int OpId { get; set; }
     }
 }

+ 1 - 0
Models/PosMachinesTwo.cs

@@ -52,5 +52,6 @@ namespace MySystem.Models
         public DateTime? UpFeeDate { get; set; }
         public ulong DownFeeFlag { get; set; }
         public ulong UpFeeFlag { get; set; }
+        public int OpId { get; set; }
     }
 }

+ 47 - 0
Models/PosMerchantInfoBak.cs

@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class PosMerchantInfoBak
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int TopUserId { get; set; }
+        public int MerUserType { get; set; }
+        public string Remark { get; set; }
+        public string City { get; set; }
+        public string Province { get; set; }
+        public int BrandId { get; set; }
+        public int SnStoreId { get; set; }
+        public string ActTypeDesc { get; set; }
+        public int ActType { get; set; }
+        public int RebateQual { get; set; }
+        public DateTime? MerStandardDate { get; set; }
+        public DateTime? KqRegTime { get; set; }
+        public DateTime? MatchTime { get; set; }
+        public int SnApplyUserId { get; set; }
+        public int SnType { get; set; }
+        public int MerUserId { get; set; }
+        public int UserId { get; set; }
+        public string MgrName { get; set; }
+        public string MgrNo { get; set; }
+        public int DirectUserId { get; set; }
+        public int ActiveStatus { get; set; }
+        public int MerStatus { get; set; }
+        public string KqSnNo { get; set; }
+        public string KqMerNo { get; set; }
+        public string MerIdcardNo { get; set; }
+        public string MerRealName { get; set; }
+        public string MerchantMobile { get; set; }
+        public string MerchantName { get; set; }
+        public string MerchantNo { get; set; }
+    }
+}

+ 38 - 0
Models/ProfitRecordCopy1.cs

@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class ProfitRecordCopy1
+    {
+        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 TradeId { get; set; }
+        public string ParentNav { get; set; }
+        public string Remark { get; set; }
+        public int BrandId { get; set; }
+        public ulong DirectFlag { get; set; }
+        public int CapFlag { get; set; }
+        public int QrPayFlag { get; set; }
+        public decimal ProfitAmount { get; set; }
+        public DateTime? ClearDate { get; set; }
+        public DateTime? TradeDate { get; set; }
+        public string SnNo { get; set; }
+        public int MerBuddyType { get; set; }
+        public int HelpMonthCount { get; set; }
+        public ulong MerHelpFlag { get; set; }
+        public string MerNo { get; set; }
+        public int MerchantId { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 2 - 0
Models/ProfitRewardExport.cs

@@ -35,5 +35,7 @@ namespace MySystem.Models
         public int UserLevel { get; set; }
         public string RealName { get; set; }
         public string MakerCode { get; set; }
+        public decimal ProfitCreditTradeProfit { get; set; }
+        public decimal ProfitCreditTradeAmt { get; set; }
     }
 }

+ 6 - 0
Models/ProfitRewardRecord.cs

@@ -73,5 +73,11 @@ namespace MySystem.Models
         public int BrandId { get; set; }
         public int MerchantId { get; set; }
         public int UserId { get; set; }
+        public decimal ProfitDebitProfitRate { get; set; }
+        public decimal ProfitCreditProfitRate { get; set; }
+        public decimal ProfitDebitNonTradeCapProfit { get; set; }
+        public decimal ProfitCreditTradeProfit { get; set; }
+        public decimal ProfitDebitNonCapTradeAmt { get; set; }
+        public decimal ProfitCreditTradeAmt { get; set; }
     }
 }

+ 1 - 0
Models/StoreBalance.cs

@@ -29,5 +29,6 @@ namespace MySystem.Models
         public int TransType { get; set; }
         public string TransRecordNo { get; set; }
         public int StoreId { get; set; }
+        public int OpId { get; set; }
     }
 }

+ 1 - 0
Models/StoreChangeHistory.cs

@@ -37,5 +37,6 @@ namespace MySystem.Models
         public string ChangeRecordNo { get; set; }
         public int BrandId { get; set; }
         public int UserId { get; set; }
+        public int OpId { get; set; }
     }
 }

+ 4 - 0
Models/StoreHouse.cs

@@ -39,5 +39,9 @@ namespace MySystem.Models
         public string StoreNo { get; set; }
         public DateTime? AuthDate { get; set; }
         public ulong AuthFlag { get; set; }
+        public int ThisMonthSendCount { get; set; }
+        public string FilePath { get; set; }
+        public decimal Deposit { get; set; }
+        public int OpId { get; set; }
     }
 }

+ 1 - 0
Models/StoreStockChange.cs

@@ -44,5 +44,6 @@ namespace MySystem.Models
         public string ProductName { get; set; }
         public int BrandId { get; set; }
         public int StoreId { get; set; }
+        public int OpId { get; set; }
     }
 }

+ 35 - 0
Models/SubsidyRecordCopy1.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class SubsidyRecordCopy1
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int TradeId { get; set; }
+        public string ParentNav { get; set; }
+        public string Remark { get; set; }
+        public int BrandId { get; set; }
+        public ulong DirectFlag { get; set; }
+        public int CapFlag { get; set; }
+        public int QrPayFlag { get; set; }
+        public decimal ProfitAmount { get; set; }
+        public DateTime? ClearDate { get; set; }
+        public DateTime? TradeDate { get; set; }
+        public string SnNo { get; set; }
+        public int MerBuddyType { get; set; }
+        public int HelpMonthCount { get; set; }
+        public ulong MerHelpFlag { get; set; }
+        public string MerNo { get; set; }
+        public int MerchantId { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 472 - 0
Models/WebCMSEntities.cs

@@ -52,9 +52,11 @@ namespace MySystem.Models
         public virtual DbSet<FluxProfitDetail> FluxProfitDetail { get; set; }
         public virtual DbSet<FluxProfitSummary> FluxProfitSummary { get; set; }
         public virtual DbSet<HelpProfitAccountRecord> HelpProfitAccountRecord { get; set; }
+        public virtual DbSet<HelpProfitAmountSummary> HelpProfitAmountSummary { get; set; }
         public virtual DbSet<HelpProfitExchange> HelpProfitExchange { get; set; }
         public virtual DbSet<HelpProfitExchangeDetail> HelpProfitExchangeDetail { get; set; }
         public virtual DbSet<HelpProfitMerIds> HelpProfitMerIds { get; set; }
+        public virtual DbSet<HelpProfitMerTradeMonthSummay> HelpProfitMerTradeMonthSummay { get; set; }
         public virtual DbSet<HelpProfitMerTradeSummay> HelpProfitMerTradeSummay { get; set; }
         public virtual DbSet<HelpProfitMerchantForUser> HelpProfitMerchantForUser { get; set; }
         public virtual DbSet<HelpProfitRebateDetail> HelpProfitRebateDetail { get; set; }
@@ -67,6 +69,7 @@ namespace MySystem.Models
         public virtual DbSet<KqProducts> KqProducts { get; set; }
         public virtual DbSet<LeaderAccountRecord> LeaderAccountRecord { get; set; }
         public virtual DbSet<LeaderReserveRecord> LeaderReserveRecord { get; set; }
+        public virtual DbSet<Leaders> Leaders { get; set; }
         public virtual DbSet<MachineApply> MachineApply { get; set; }
         public virtual DbSet<MachineApplyDetail> MachineApplyDetail { get; set; }
         public virtual DbSet<MachineChange> MachineChange { get; set; }
@@ -126,6 +129,7 @@ namespace MySystem.Models
         public virtual DbSet<PosMachinesFeeChangeRecord> PosMachinesFeeChangeRecord { get; set; }
         public virtual DbSet<PosMachinesTwo> PosMachinesTwo { get; set; }
         public virtual DbSet<PosMerchantInfo> PosMerchantInfo { get; set; }
+        public virtual DbSet<PosMerchantInfoBak> PosMerchantInfoBak { get; set; }
         public virtual DbSet<PosMerchantOtherInfo> PosMerchantOtherInfo { get; set; }
         public virtual DbSet<PosMerchantTradeSummay> PosMerchantTradeSummay { get; set; }
         public virtual DbSet<PreSendStockDetail> PreSendStockDetail { get; set; }
@@ -153,6 +157,7 @@ namespace MySystem.Models
         public virtual DbSet<ProfitReceiveRecord> ProfitReceiveRecord { get; set; }
         public virtual DbSet<ProfitReceives> ProfitReceives { get; set; }
         public virtual DbSet<ProfitRecord> ProfitRecord { get; set; }
+        public virtual DbSet<ProfitRecordCopy1> ProfitRecordCopy1 { get; set; }
         public virtual DbSet<ProfitRewardExport> ProfitRewardExport { get; set; }
         public virtual DbSet<ProfitRewardRecord> ProfitRewardRecord { get; set; }
         public virtual DbSet<ProfitRewardRecordCopy1> ProfitRewardRecordCopy1 { get; set; }
@@ -193,6 +198,7 @@ namespace MySystem.Models
         public virtual DbSet<StoreSwapSn> StoreSwapSn { get; set; }
         public virtual DbSet<SubsidyCheck> SubsidyCheck { get; set; }
         public virtual DbSet<SubsidyRecord> SubsidyRecord { get; set; }
+        public virtual DbSet<SubsidyRecordCopy1> SubsidyRecordCopy1 { get; set; }
         public virtual DbSet<SysAdmin> SysAdmin { get; set; }
         public virtual DbSet<SysAdminRole> SysAdminRole { get; set; }
         public virtual DbSet<SysLog> SysLog { get; set; }
@@ -2988,6 +2994,49 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<HelpProfitAmountSummary>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.MaxAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.MerCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                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)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TradeAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.TradeMonth)
+                    .HasColumnType("varchar(6)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+            });
+
             modelBuilder.Entity<HelpProfitExchange>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -3097,6 +3146,47 @@ namespace MySystem.Models
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<HelpProfitMerTradeMonthSummay>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.MerchantId).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                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)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TradeAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.TradeMonth)
+                    .HasColumnType("varchar(6)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+            });
+
             modelBuilder.Entity<HelpProfitMerTradeSummay>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -3949,6 +4039,40 @@ namespace MySystem.Models
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<Leaders>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.LeaderLevel).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                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)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+            });
+
             modelBuilder.Entity<MachineApply>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -4019,6 +4143,8 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.OperateId).HasColumnType("int(11)");
+
                 entity.Property(e => e.OrderExpand)
                     .HasColumnType("mediumtext")
                     .HasCharSet("utf8")
@@ -8193,6 +8319,8 @@ namespace MySystem.Models
 
                 entity.Property(e => e.LeaderUserId).HasColumnType("int(11)");
 
+                entity.Property(e => e.OpId).HasColumnType("int(11)");
+
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.SeoDescription)
@@ -8477,6 +8605,8 @@ namespace MySystem.Models
 
                 entity.Property(e => e.LeaderUserId).HasColumnType("int(11)");
 
+                entity.Property(e => e.OpId).HasColumnType("int(11)");
+
                 entity.Property(e => e.OrderId).HasColumnType("int(11)");
 
                 entity.Property(e => e.PosSn)
@@ -8674,6 +8804,133 @@ namespace MySystem.Models
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<PosMerchantInfoBak>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.ActType).HasColumnType("int(11)");
+
+                entity.Property(e => e.ActTypeDesc)
+                    .HasColumnType("varchar(64)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ActiveStatus).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId).HasColumnType("int(11)");
+
+                entity.Property(e => e.City)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.DirectUserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.KqMerNo)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.KqRegTime).HasColumnType("datetime");
+
+                entity.Property(e => e.KqSnNo)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MatchTime).HasColumnType("datetime");
+
+                entity.Property(e => e.MerIdcardNo)
+                    .HasColumnType("varchar(18)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MerRealName)
+                    .HasColumnType("varchar(16)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MerStandardDate).HasColumnType("datetime");
+
+                entity.Property(e => e.MerStatus).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerUserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerUserType).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerchantMobile)
+                    .HasColumnType("varchar(11)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MerchantName)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MerchantNo)
+                    .HasColumnType("varchar(16)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MgrName)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MgrNo)
+                    .HasColumnType("varchar(16)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Province)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.RebateQual).HasColumnType("int(11)");
+
+                entity.Property(e => e.Remark)
+                    .HasColumnType("varchar(64)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                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.SnApplyUserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.SnStoreId).HasColumnType("int(11)");
+
+                entity.Property(e => e.SnType).HasColumnType("int(11)");
+
+                entity.Property(e => e.Sort).HasColumnType("int(11)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TopUserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+            });
+
             modelBuilder.Entity<PosMerchantOtherInfo>(entity =>
             {
                 entity.HasKey(e => e.CertId)
@@ -10332,6 +10589,100 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<ProfitRecordCopy1>(entity =>
+            {
+                entity.ToTable("ProfitRecord_copy1");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId).HasColumnType("int(11)");
+
+                entity.Property(e => e.CapFlag).HasColumnType("int(11)");
+
+                entity.Property(e => e.ClearDate).HasColumnType("datetime");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.DirectFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.HelpMonthCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerBuddyType).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerHelpFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.MerNo)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MerchantId).HasColumnType("int(11)");
+
+                entity.Property(e => e.ParentNav)
+                    .HasColumnType("varchar(1000)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ProfitAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.QrPayFlag).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.Remark)
+                    .HasColumnType("varchar(64)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                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)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort).HasColumnType("int(11)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TradeDate).HasColumnType("datetime");
+
+                entity.Property(e => e.TradeId).HasColumnType("int(11)");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.Version).HasColumnType("int(11)");
+            });
+
             modelBuilder.Entity<ProfitRewardExport>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10378,6 +10729,10 @@ namespace MySystem.Models
 
                 entity.Property(e => e.NotHelpCreditTradeProfit).HasColumnType("decimal(18,2)");
 
+                entity.Property(e => e.ProfitCreditTradeAmt).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.ProfitCreditTradeProfit).HasColumnType("decimal(18,2)");
+
                 entity.Property(e => e.QrCreditTradeAmt).HasColumnType("decimal(18,2)");
 
                 entity.Property(e => e.QrCreditTradeProfit).HasColumnType("decimal(18,2)");
@@ -10509,6 +10864,18 @@ namespace MySystem.Models
 
                 entity.Property(e => e.OtherTradeAmt).HasColumnType("decimal(18,2)");
 
+                entity.Property(e => e.ProfitCreditProfitRate).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.ProfitCreditTradeAmt).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.ProfitCreditTradeProfit).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.ProfitDebitNonCapTradeAmt).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.ProfitDebitNonTradeCapProfit).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.ProfitDebitProfitRate).HasColumnType("decimal(18,2)");
+
                 entity.Property(e => e.ProfitType).HasColumnType("int(11)");
 
                 entity.Property(e => e.QrCreditAddOrSubRate).HasColumnType("decimal(18,2)");
@@ -12306,6 +12673,8 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.OpId).HasColumnType("int(11)");
+
                 entity.Property(e => e.OpStoreNum).HasColumnType("int(11)");
 
                 entity.Property(e => e.OpSymbol)
@@ -12400,6 +12769,8 @@ namespace MySystem.Models
 
                 entity.Property(e => e.FromUserId).HasColumnType("int(11)");
 
+                entity.Property(e => e.OpId).HasColumnType("int(11)");
+
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.SeoDescription)
@@ -12517,6 +12888,13 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.Deposit).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.FilePath)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
                 entity.Property(e => e.LaveNum).HasColumnType("int(11)");
 
                 entity.Property(e => e.LimitTopUserId)
@@ -12536,6 +12914,8 @@ namespace MySystem.Models
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
+                entity.Property(e => e.OpId).HasColumnType("int(11)");
+
                 entity.Property(e => e.OutNum).HasColumnType("int(11)");
 
                 entity.Property(e => e.ParentNav)
@@ -12592,6 +12972,8 @@ namespace MySystem.Models
 
                 entity.Property(e => e.StoreType).HasColumnType("int(11)");
 
+                entity.Property(e => e.ThisMonthSendCount).HasColumnType("int(11)");
+
                 entity.Property(e => e.TotalNum).HasColumnType("int(11)");
 
                 entity.Property(e => e.UpdateDate).HasColumnType("datetime");
@@ -12979,6 +13361,8 @@ namespace MySystem.Models
 
                 entity.Property(e => e.FromUserId).HasColumnType("int(11)");
 
+                entity.Property(e => e.OpId).HasColumnType("int(11)");
+
                 entity.Property(e => e.ProductName)
                     .HasColumnType("varchar(32)")
                     .HasCharSet("utf8")
@@ -13159,6 +13543,94 @@ namespace MySystem.Models
 
             modelBuilder.Entity<SubsidyRecord>(entity =>
             {
+                entity.HasIndex(e => new { e.UserId, e.SeoTitle, e.BrandId })
+                    .HasName("SubsidyRecordIndex");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId).HasColumnType("int(11)");
+
+                entity.Property(e => e.CapFlag).HasColumnType("int(11)");
+
+                entity.Property(e => e.ClearDate).HasColumnType("datetime");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.DirectFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.HelpMonthCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerBuddyType).HasColumnType("int(11)");
+
+                entity.Property(e => e.MerHelpFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.MerNo)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.MerchantId).HasColumnType("int(11)");
+
+                entity.Property(e => e.ParentNav)
+                    .HasColumnType("varchar(1000)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ProfitAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.QrPayFlag).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.Remark)
+                    .HasColumnType("varchar(64)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                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)
+                    .HasColumnType("varchar(32)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort).HasColumnType("int(11)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.TradeDate).HasColumnType("datetime");
+
+                entity.Property(e => e.TradeId).HasColumnType("int(11)");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+            });
+
+            modelBuilder.Entity<SubsidyRecordCopy1>(entity =>
+            {
+                entity.ToTable("SubsidyRecord_copy1");
+
+                entity.HasIndex(e => new { e.UserId, e.SeoTitle, e.BrandId })
+                    .HasName("SubsidyRecordIndex");
+
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
                 entity.Property(e => e.BrandId).HasColumnType("int(11)");

+ 25 - 0
OpModels/ActMerDaySummary.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class ActMerDaySummary
+    {
+        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 ActCount { get; set; }
+        public int BrandId { get; set; }
+        public string TradeDate { get; set; }
+        public int OpId { get; set; }
+    }
+}

+ 25 - 0
OpModels/ActMerMonthSummary.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class ActMerMonthSummary
+    {
+        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 ActCount { get; set; }
+        public int BrandId { get; set; }
+        public string TradeMonth { get; set; }
+        public int OpId { get; set; }
+    }
+}

+ 26 - 0
OpModels/Advertisment.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class Advertisment
+    {
+        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 string Url { get; set; }
+        public string Contents { get; set; }
+        public string PicPath { get; set; }
+        public string ColId { get; set; }
+        public string Title { get; set; }
+    }
+}

+ 27 - 0
OpModels/AmountRecord.cs

@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class AmountRecord
+    {
+        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 OperateType { get; set; }
+        public decimal AfterAmount { get; set; }
+        public decimal BeforeAmount { get; set; }
+        public decimal UseAmount { get; set; }
+        public int ApplyId { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 30 - 0
OpModels/Col.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class Col
+    {
+        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 ParentId { get; set; }
+        public string Url { get; set; }
+        public string Contents { get; set; }
+        public string ColEnName { get; set; }
+        public ulong Recommend { get; set; }
+        public string ColDetail { get; set; }
+        public string ColPicPath { get; set; }
+        public string ColName { get; set; }
+        public string ColId { get; set; }
+    }
+}

+ 26 - 0
OpModels/MachineApplyOpRecord.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MachineApplyOpRecord
+    {
+        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 OpType { get; set; }
+        public string TargetSn { get; set; }
+        public string SourceSn { get; set; }
+        public int ApplyId { get; set; }
+        public int OpId { get; set; }
+    }
+}

+ 11 - 0
OpModels/MenuRight.cs

@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MenuRight
+    {
+        public string MenuId { get; set; }
+        public string Name { get; set; }
+    }
+}

+ 28 - 0
OpModels/MsgBlackList.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgBlackList
+    {
+        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 string Extend { get; set; }
+        public string Remark { get; set; }
+        public string Reason { get; set; }
+        public string Ip { get; set; }
+        public string Mobile { get; set; }
+        public int TemplateId { get; set; }
+        public string ColId { get; set; }
+    }
+}

+ 34 - 0
OpModels/MsgPersonal.cs

@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgPersonal
+    {
+        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 string Remark { get; set; }
+        public string ExtendColumn { get; set; }
+        public string PushParam { get; set; }
+        public ulong ReadFlag { get; set; }
+        public int PushFlag { get; set; }
+        public string Summary { get; set; }
+        public string Url { get; set; }
+        public string Content { get; set; }
+        public string Title { get; set; }
+        public string BgPic { get; set; }
+        public int MsgType { get; set; }
+        public int UserId { get; set; }
+        public int TemplateId { get; set; }
+    }
+}

+ 37 - 0
OpModels/MsgPlacard.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgPlacard
+    {
+        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 string Url { get; set; }
+        public string Remark { get; set; }
+        public string ExtendColumn { get; set; }
+        public DateTime? PushTime { get; set; }
+        public string PushParam { get; set; }
+        public int PushFlag { get; set; }
+        public int PushType { get; set; }
+        public string BgPic { get; set; }
+        public DateTime? EffectEndDate { get; set; }
+        public DateTime? EffectStartDate { get; set; }
+        public int ShowType { get; set; }
+        public ulong IsTop { get; set; }
+        public string Content { get; set; }
+        public string Summary { get; set; }
+        public string Title { get; set; }
+        public int MsgType { get; set; }
+    }
+}

+ 25 - 0
OpModels/MsgPlacardRead.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgPlacardRead
+    {
+        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 string Remark { get; set; }
+        public ulong ReadFlag { get; set; }
+        public string UserId { get; set; }
+        public int PlacardId { get; set; }
+    }
+}

+ 31 - 0
OpModels/MsgPush.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgPush
+    {
+        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 string Mobiles { get; set; }
+        public string MessageId { get; set; }
+        public DateTime? AutoPushDate { get; set; }
+        public int TemplateId { get; set; }
+        public string Devices { get; set; }
+        public ulong IsSilent { get; set; }
+        public string Details { get; set; }
+        public string Title { get; set; }
+        public string Url { get; set; }
+        public string ClientType { get; set; }
+    }
+}

+ 38 - 0
OpModels/MsgSms.cs

@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgSms
+    {
+        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 SendStatus { get; set; }
+        public string Kind { get; set; }
+        public int Code { get; set; }
+        public int VerifyStatus { get; set; }
+        public int ErrorNum { get; set; }
+        public string VerifyCode { get; set; }
+        public string RespCode { get; set; }
+        public string RespContent { get; set; }
+        public DateTime? SendTime { get; set; }
+        public string SignName { get; set; }
+        public string Content { get; set; }
+        public int SmsType { get; set; }
+        public int SendType { get; set; }
+        public string Ip { get; set; }
+        public string Mobile { get; set; }
+        public int TemplateId { get; set; }
+        public string ColId { get; set; }
+    }
+}

+ 27 - 0
OpModels/MsgSmsSet.cs

@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgSmsSet
+    {
+        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 string Params { get; set; }
+        public string ReqUrl { get; set; }
+        public int SmsType { get; set; }
+        public string AuthPwd { get; set; }
+        public string UserName { get; set; }
+        public string Name { get; set; }
+    }
+}

+ 29 - 0
OpModels/MsgTemplate.cs

@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class MsgTemplate
+    {
+        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 string SignName { get; set; }
+        public string Extend { get; set; }
+        public string Remark { get; set; }
+        public int MsgType { get; set; }
+        public int TemplateType { get; set; }
+        public string ColId { get; set; }
+        public string Content { get; set; }
+        public string Title { get; set; }
+    }
+}

+ 11 - 0
OpModels/OperateForCode.cs

@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class OperateForCode
+    {
+        public string OpCode { get; set; }
+        public int OpId { get; set; }
+    }
+}

+ 26 - 0
OpModels/OperateLog.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class OperateLog
+    {
+        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 string OpMode { get; set; }
+        public string AfterOperate { get; set; }
+        public string BeforeOperate { get; set; }
+        public string OperateMan { get; set; }
+        public string TableEnName { get; set; }
+    }
+}

+ 23 - 0
OpModels/OperateRightList.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.OpModels
+{
+    public partial class OperateRightList
+    {
+        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 string EnName { get; set; }
+        public string Name { get; set; }
+    }
+}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików