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

Merge branch 'feature-dgy-后台新功能批量处理' into feature-dgy-后台测试

DuGuYang 3 лет назад
Родитель
Сommit
e788ce8c82

+ 115 - 0
Areas/Admin/Controllers/MainServer/SetMerchantTypeRecordController.cs

@@ -0,0 +1,115 @@
+/*
+ * 设置商户型创客记录
+ */
+
+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 SetMerchantTypeRecordController : BaseController
+    {
+        public SetMerchantTypeRecordController(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(StoreSwapSn data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询设置商户型创客记录
+
+        /// <summary>
+        /// 设置商户型创客记录
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(SetMerchantTypeRecord data, string PosSn, string MerUserTypeMakerCode, string PosFromMakerCode, string OperateTypeSelect, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("PosSn", "1"); //SN号
+
+            string condition = " and Status>-1";
+            //商户型创客编号
+            if (!string.IsNullOrEmpty(MerUserTypeMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + MerUserTypeMakerCode + "')";
+            }
+            //机具所属创客编号
+            if (!string.IsNullOrEmpty(PosFromMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + PosFromMakerCode + "')";
+            }
+            //操作类型
+            if(!string.IsNullOrEmpty(OperateTypeSelect))
+            {
+                condition += " and OperateType=" + OperateTypeSelect;
+            }
+            //操作时间
+            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("SetMerchantTypeRecord", 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["BrandName"] = RelationClass.GetKqProductBrandInfo(int.Parse(dic["BrandId"].ToString()));
+
+                //商户型创客信息
+                int ToUserId = int.Parse(dic["ToUserId"].ToString());
+                Users tuser = db.Users.FirstOrDefault(m => m.Id == ToUserId) ?? new Users();
+                dic["MerUserTypeMakerCode"] = tuser.MakerCode;
+                dic["MerUserTypeName"] = tuser.RealName;
+
+                //机具所属创客信息
+                int FromUserId = int.Parse(dic["FromUserId"].ToString());
+                Users fuser = db.Users.FirstOrDefault(m => m.Id == FromUserId) ?? new Users();
+                dic["PosFromMakerCode"] = fuser.MakerCode;
+                dic["PosFromName"] = fuser.RealName;
+                
+                //业务状态
+                int OperateType = int.Parse(dic["OperateType"].ToString());
+                if(OperateType == 1) dic["OperateTypeName"] = "设置";
+                if(OperateType == 2) dic["OperateTypeName"] = "取消";
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+    }
+}

+ 64 - 24
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -842,6 +842,7 @@ namespace MySystem.Areas.Admin.Controllers
             db.SetMerchantTypeRecord.Add(new SetMerchantTypeRecord()
             {
                 CreateDate = DateTime.Now,
+                SeoTitle = SysUserName + "_" + SysRealName,
                 IsRecyc = (ulong)pos.IsPurchase,
                 CreditAmount = pos.CreditTrade,
                 PosSnType = pos.PosSnType,
@@ -854,6 +855,8 @@ namespace MySystem.Areas.Admin.Controllers
                 Note = "后台设置商户型创客",
                 ToUserId = user.Id,
                 FromUserId = pos.BuyUserId,
+                OperateType = 1,
+                BuyUserId = pos.BuyUserId,
             });
             db.SaveChanges();
             string text = string.Format("设置商户代理,创客编号: " + MakerCode + ",机具SN:" + PosSn + ",商户:" + MerNo + ",操作人:" + SysRealName + ",Time:" + DateTime.Now + "");
@@ -875,7 +878,7 @@ namespace MySystem.Areas.Admin.Controllers
         }
 
         [HttpPost]
-        public string CancelMerAgentDo(string MakerCode, string PosSn, int IsSend = 0)
+        public string CancelMerAgentDo(string MakerCode, string PosSn, string MerNo, int IsSend = 0)
         {
             if (string.IsNullOrEmpty(MakerCode))
             {
@@ -885,6 +888,10 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 return "请输入机具SN";
             }
+            if (string.IsNullOrEmpty(MerNo))
+            {
+                return "请输入商户编号";
+            }
             PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn);
             KqProducts kqProducts = db.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId);
             if (pos == null)
@@ -896,30 +903,59 @@ namespace MySystem.Areas.Admin.Controllers
             {
                 return "创客编号不存在";
             }
-            PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == PosSn);
-            pos.UserId = pos.BuyUserId;
-            merchant.UserId = pos.BuyUserId;
-            merchant.MerUserType = 0;
-            user.MerchantType = 0;
-            db.SaveChanges();
-            if (pos.BindMerchantId == 0)
+            PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo);
+            if (merchant == null)
             {
-                pos.BindMerchantId = merchant.Id;
-                if (IsSend == 1)
+                return "商户编号不存在";
+            }
+            else if (merchant.MerUserType == 1 && merchant.UserId == user.Id)
+            {
+                pos.UserId = pos.BuyUserId;
+                merchant.UserId = pos.BuyUserId;
+                merchant.MerUserType = 0;
+                user.MerchantType = 0;
+                db.SetMerchantTypeRecord.Add(new SetMerchantTypeRecord()
                 {
-                    RedisDbconn.Instance.AddList("MsgPersonalQueue", Newtonsoft.Json.JsonConvert.SerializeObject(new MsgPersonal()
+                    CreateDate = DateTime.Now,
+                    SeoTitle = SysUserName + "_" + SysRealName,
+                    IsRecyc = (ulong)pos.IsPurchase,
+                    CreditAmount = pos.CreditTrade,
+                    PosSnType = pos.PosSnType,
+                    ActDate = pos.ActivationTime,
+                    BindDate = pos.BindingTime,
+                    ActStatus = (ulong)pos.ActivationState,
+                    BindStatus = (ulong)pos.BindingState,
+                    MerNo = MerNo,
+                    PosSn = pos.PosSn,
+                    Note = "后台取消商户型创客",
+                    ToUserId = user.Id,
+                    FromUserId = pos.BuyUserId,
+                    OperateType = 2,
+                    BuyUserId = pos.BuyUserId,
+                });
+                db.SaveChanges();
+                if (pos.BindMerchantId == 0)
+                {
+                    pos.BindMerchantId = merchant.Id;
+                    if (IsSend == 1)
                     {
-                        UserId = pos.BuyUserId, //接收创客
-                        MsgType = 2,
-                        Title = "商户型代理取消成功", //标题
-                        Summary = "您的 " + kqProducts.Name + " SN:" + pos.PosSn + "已给下级代理" + user.RealName + "" + MakerCode + "取消成功",
-                        CreateDate = DateTime.Now,
-                    }));
+                        RedisDbconn.Instance.AddList("MsgPersonalQueue", Newtonsoft.Json.JsonConvert.SerializeObject(new MsgPersonal()
+                        {
+                            UserId = pos.BuyUserId, //接收创客
+                            MsgType = 2,
+                            Title = "商户型代理取消成功", //标题
+                            Summary = "您的 " + kqProducts.Name + " SN:" + pos.PosSn + "已给下级代理" + user.RealName + "" + MakerCode + "取消成功",
+                            CreateDate = DateTime.Now,
+                        }));
+                    }
                 }
+                string text = string.Format("取消商户代理,创客编号: " + user.MakerCode + ",机具SN:" + pos.PosSn + ",操作人:" + SysRealName + ",Time:" + DateTime.Now + "");
+                function.WriteLog(text, "CancelMerAgent");//取消商户型代理日志
+            }
+            else
+            {
+                return "未找到相关信息";
             }
-            string text = string.Format("取消商户代理,创客编号: " + user.MakerCode + ",机具SN:" + pos.PosSn + ",操作人:" + SysRealName + ",Time:" + DateTime.Now + "");
-            function.WriteLog(text, "CancelMerAgent");//取消商户型代理日志
-
             return "success";
         }
 
@@ -4270,6 +4306,10 @@ namespace MySystem.Areas.Admin.Controllers
                 {
                     return "机具券" + PosCouponCode + "已使用";
                 }
+                if (item.QueryCount != int.Parse(Kind))
+                {
+                    return "机具券" + PosCouponCode + "类型和您选择的类型不同";
+                }
                 item.UserId = tUserId.Id;
                 if (LeaderUserId > 0 && item.LeaderUserId == 0)
                 {
@@ -4289,7 +4329,7 @@ namespace MySystem.Areas.Admin.Controllers
             int CouponCount = PosCouponList.Length;
             PosCouponOrders stat = db.PosCouponOrders.Add(new PosCouponOrders()
             {
-                QueryCount = 2,
+                QueryCount = int.Parse(Kind),
                 CreateDate = DateTime.Now,
                 ChangeKind = 2,
                 ChangeCount = CouponCount,
@@ -4305,7 +4345,7 @@ namespace MySystem.Areas.Admin.Controllers
             }).Entity;
             PosCouponOrders tostat = db.PosCouponOrders.Add(new PosCouponOrders()
             {
-                QueryCount = 1,
+                QueryCount = int.Parse(Kind),
                 CreateDate = DateTime.Now,
                 ChangeKind = 1,
                 ChangeCount = CouponCount,
@@ -4315,9 +4355,9 @@ namespace MySystem.Areas.Admin.Controllers
                 // BeforeOut = BeforeOut,
                 // BeforeTotal = BeforeTotal,
                 // BeforeStock = BeforeStock,
-                OrderNo = ChangeRecordNo,
-                FromUserId = tUserId.Id,
+                // OrderNo = ChangeRecordNo,
                 ToUserId = fUserId.Id,
+                FromUserId = tUserId.Id,
             }).Entity;
             db.SaveChanges();
             db.Dispose();

+ 134 - 0
Areas/Admin/Views/MainServer/SetMerchantTypeRecord/Index.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">
+    <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: 115px !important;
+        }
+        .layui-inline{
+            margin-right: 0px !important;
+        }
+        .w100{
+            width: 100px !important;
+        }
+        .ml50{
+            margin-left: 50px !important;
+        }
+        tbody .layui-table-cell{
+            height: 60px !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">机具SN</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="PosSn" 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="MerUserTypeMakerCode" 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="PosFromMakerCode" placeholder=""
+                                autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">操作类别</label>
+                        <div class="layui-input-inline">
+                            <select id="OperateTypeSelect" name="OperateTypeSelect" 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">
+                            <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">
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                </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/SetMerchantTypeRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 31 - 19
Areas/Admin/Views/MainServer/SysTools/CancelMerAgent.cshtml

@@ -1,20 +1,23 @@
 @{
     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>
 </head>
+
 <body>
 
     <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
@@ -38,9 +41,15 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">机具SN</label>
                                     <div class="layui-input-inline">
-                                        <input class="layui-input" type="text" id="PosSn"
-                                            name="PosSn" maxlength="50" lay-verify="required|"
-                                            autocomplete="off" placeholder="请输入机具SN">
+                                        <input class="layui-input" type="text" id="PosSn" name="PosSn" maxlength="50"
+                                            lay-verify="required|" autocomplete="off" placeholder="请输入机具SN">
+                                    </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="MerNo" name="MerNo" maxlength="50"
+                                            lay-verify="required|" autocomplete="off" placeholder="请输入商户编号">
                                     </div>
                                 </div>
                                 <div class="layui-form-item">
@@ -65,7 +74,8 @@
     </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>
@@ -76,24 +86,25 @@
             var userdata = $("#confirmFrm").serialize();
             $.ajax({
                 type: "POST",
-                url: "/Admin/SysTools/SetMerAgentDo?r=" + Math.random(1),
+                url: "/Admin/SysTools/CancelMerAgentDo?r=" + Math.random(1),
                 data: userdata,
                 dataType: "text",
                 success: function (data) {
                     layer.close(index); //关闭弹层
                     if (data == "success") {
-                        layer.msg("重置成功");
+                        layer.msg("取消成功");
+                        window.location.reload();
                     } else {
                         layer.msg(data);
                     }
                 }
             });
         }
-        
-                    
+
+
         //编辑器
         KindEditor.ready(function (K) {
-            
+
         });
 
         var ids = "";
@@ -199,7 +210,7 @@
             });
         }
 
-        
+
         var tree;
         var element;
         var upload;
@@ -219,30 +230,31 @@
             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>

+ 25 - 21
Areas/Admin/Views/MainServer/SysTools/SetMerAgent.cshtml

@@ -1,20 +1,23 @@
 @{
     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>
 </head>
+
 <body>
 
     <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
@@ -38,17 +41,15 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">机具SN</label>
                                     <div class="layui-input-inline">
-                                        <input class="layui-input" type="text" id="PosSn"
-                                            name="PosSn" maxlength="50" lay-verify="required|"
-                                            autocomplete="off" placeholder="请输入机具SN">
+                                        <input class="layui-input" type="text" id="PosSn" name="PosSn" maxlength="50"
+                                            lay-verify="required|" autocomplete="off" placeholder="请输入机具SN">
                                     </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="MerNo"
-                                            name="MerNo" maxlength="50" lay-verify="required|"
-                                            autocomplete="off" placeholder="请输入商户编号">
+                                        <input class="layui-input" type="text" id="MerNo" name="MerNo" maxlength="50"
+                                            lay-verify="required|" autocomplete="off" placeholder="请输入商户编号">
                                     </div>
                                 </div>
                                 <div class="layui-form-item">
@@ -73,7 +74,8 @@
     </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>
@@ -90,18 +92,19 @@
                 success: function (data) {
                     layer.close(index); //关闭弹层
                     if (data == "success") {
-                        layer.msg("重置成功");
+                        layer.msg("设置成功");
+                        window.location.reload();
                     } else {
                         layer.msg(data);
                     }
                 }
             });
         }
-        
-                    
+
+
         //编辑器
         KindEditor.ready(function (K) {
-            
+
         });
 
         var ids = "";
@@ -207,7 +210,7 @@
             });
         }
 
-        
+
         var tree;
         var element;
         var upload;
@@ -227,30 +230,31 @@
             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>

+ 9 - 0
Areas/Admin/Views/MainServer/SysTools/TransferPosCoupon.cshtml

@@ -30,6 +30,15 @@
                         </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">
+                                        <select id="Kind" name="Kind" lay-search="">
+                                            <option value="1">电签券</option>
+                                            <option value="2">大POS券</option>
+                                        </select>
+                                    </div>
+                                </div>
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">机具券码</label>
                                     <div class="layui-input-block">

+ 26 - 0
Models/LeaderCompPrize.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class LeaderCompPrize
+    {
+        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 SecDirectCount { get; set; }
+        public int NotDirectCount { get; set; }
+        public int DirectCount { get; set; }
+        public int UserId { get; set; }
+        public string StatMonth { get; set; }
+    }
+}

+ 81 - 0
Models/WebCMSEntities.cs

@@ -70,6 +70,7 @@ namespace MySystem.Models
         public virtual DbSet<KqProductRuleSet> KqProductRuleSet { get; set; }
         public virtual DbSet<KqProducts> KqProducts { get; set; }
         public virtual DbSet<LeaderAccountRecord> LeaderAccountRecord { get; set; }
+        public virtual DbSet<LeaderCompPrize> LeaderCompPrize { get; set; }
         public virtual DbSet<LeaderReserveRecord> LeaderReserveRecord { get; set; }
         public virtual DbSet<Leaders> Leaders { get; set; }
         public virtual DbSet<MachineApply> MachineApply { get; set; }
@@ -4186,6 +4187,86 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<LeaderCompPrize>(entity =>
+            {
+                entity.HasComment("领导人达标奖");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.DirectCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("直推达标人数");
+
+                entity.Property(e => e.NotDirectCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("简推达标人数");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.SecDirectCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("次直推达标人数");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.StatMonth)
+                    .HasColumnType("varchar(6)")
+                    .HasComment("统计月份")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("更新时间");
+
+                entity.Property(e => e.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<LeaderReserveRecord>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");

+ 409 - 0
wwwroot/layuiadmin/modules_main/SetMerchantTypeRecord_Admin.js

@@ -0,0 +1,409 @@
+var ExcelData, ExcelKind;
+function ConfirmImport() {
+    $.ajax({
+        type: "POST",
+        url: "/Admin/SetMerchantTypeRecord/Import?r=" + Math.random(1),
+        data: "ExcelData=" + encodeURIComponent(JSON.stringify(ExcelData)),
+        dataType: "text",
+        success: function (data) {
+            if (data == "success") {
+                layer.msg("导入成功", { time: 2000 }, function () {
+                    window.location.reload();
+                });
+            } else {
+                layer.msg(data);
+            }
+        }
+    });
+}
+
+var excel;
+layui.config({
+    base: '/layuiadmin/' //静态资源所在路径
+}).extend({
+    myexcel: 'layui/lay/modules/excel',
+    index: 'lib/index' //主入口模块
+}).use(['index', 'table', 'excel', 'laydate'], function () {
+    var $ = layui.$
+        , form = layui.form
+        , table = layui.table;
+
+    //- 筛选条件-日期
+    var laydate = layui.laydate;
+    var layCreateDate = laydate.render({
+        elem: '#CreateDate',
+        type: 'date',
+        range: true,
+        trigger: 'click',
+        change: function (value, date, endDate) {
+            var op = true;
+            if (date.year == endDate.year && endDate.month - date.month <= 1) {
+                if (endDate.month - date.month == 1 && endDate.date > date.date) {
+                    op = false;
+                    layCreateDate.hint('日期范围请不要超过1个月');
+                    setTimeout(function () {
+                        $(".laydate-btns-confirm").addClass("laydate-disabled");
+                    }, 1);
+                }
+            } else {
+                op = false;
+                layCreateDate.hint('日期范围请不要超过1个月');
+                setTimeout(function () {
+                    $(".laydate-btns-confirm").addClass("laydate-disabled");
+                }, 1);
+            }
+            if (op) {
+                $('#CreateDate').val(value);
+            }
+        }
+    });
+
+
+    //excel导入
+    excel = layui.excel;
+    $('#ExcelFile').change(function (e) {
+        var files = e.target.files;
+        excel.importExcel(files, {}, function (data) {
+            ExcelData = data[0].sheet1;
+        });
+    });
+
+    //监听单元格编辑
+    table.on('edit(LAY-list-manage)', function (obj) {
+        var value = obj.value //得到修改后的值
+            , data = obj.data //得到所在行所有键值
+            , field = obj.field; //得到字段
+        if (field == "Sort") {
+            $.ajax({
+                type: "POST",
+                url: "/Admin/SetMerchantTypeRecord/Sort?r=" + Math.random(1),
+                data: "Id=" + data.Id + "&Sort=" + value,
+                dataType: "text",
+                success: function (data) {
+                }
+            });
+        }
+    });
+
+    //列表数据
+    table.render({
+        elem: '#LAY-list-manage'
+        , url: '/Admin/SetMerchantTypeRecord/IndexData' //模拟接口
+        , cols: [[
+            { type: 'checkbox', fixed: 'left' }
+            , { field: 'PosSn', width: 200, title: 'SN编号', sort: true }
+            // , { field: 'BrandName', width: 200, title: '产品类型', sort: true }
+            , { field: 'OperateTypeName', width: 200, title: '操作类别', sort: true }
+            , { field: 'MerUserTypeName', width: 200, title: '商户型创客姓名', sort: true }
+            , { field: 'MerUserTypeMakerCode', width: 200, title: '商户型创客编码', sort: true }
+            , { field: 'PosFromName', width: 200, title: '机具所属创客姓名', sort: true }
+            , { field: 'PosFromMakerCode', width: 200, title: '机具所属创客编码', sort: true }
+            , { field: 'CreateDate', width: 200, title: '操作时间', sort: true }
+            , { field: 'SeoTitle', width: 200, title: '操作人', sort: true }
+        ]]
+        , where: {
+
+        }
+        , page: true
+        , limit: 30
+        , height: 'full-' + String($('.layui-card-header').height() + 130)
+        , text: '对不起,加载出现异常!'
+        , done: function (res, curr, count) {
+            $(".layui-none").text("无数据");
+        }
+    });
+
+    //监听工具条
+    table.on('tool(LAY-list-manage)', function (obj) {
+        var data = obj.data;
+        if (obj.event === 'del') {
+            var index = layer.confirm('确定要删除吗?删除后不能恢复!', function (index) {
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/SetMerchantTypeRecord/Delete?r=" + Math.random(1),
+                    data: "Id=" + data.Id,
+                    dataType: "text",
+                    success: function (data) {
+                        if (data == "success") {
+                            obj.del();
+                            layer.close(index);
+                        } else {
+                            parent.layer.msg(data);
+                        }
+                    }
+                });
+            });
+        } else if (obj.event === 'edit') {
+            var tr = $(obj.tr);
+            var perContent = layer.open({
+                type: 2
+                , title: '仓库库存变动记录-编辑'
+                , content: 'Edit?Id=' + data.Id + ''
+                , maxmin: true
+                , area: ['500px', '450px']
+                , btn: ['确定', '取消']
+                , yes: function (index, layero) {
+                    var iframeWindow = window['layui-layer-iframe' + index]
+                        , submitID = 'LAY-list-front-submit'
+                        , submit = layero.find('iframe').contents().find('#' + submitID);
+
+                    setTimeout(function () {
+                        layero.find('iframe').contents().find('.layui-tab-item').each(function (i) {
+                            var errObj = $(this).find('.layui-form-danger');
+                            if (errObj.length > 0) {
+                                iframeWindow.element.tabChange('mytabbar', String(i + 1));
+                                submit.click();
+                            }
+                        });
+                    }, 300);
+
+
+
+
+
+
+                    //监听提交
+                    iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
+                        var field = data.field; //获取提交的字段
+                        var userdata = "";
+                        for (var prop in field) {
+                            userdata += prop + "=" + encodeURIComponent(field[prop]) + "&";
+                        }
+                        //提交 Ajax 成功后,静态更新表格中的数据
+                        //$.ajax({});
+
+                        $.ajax({
+                            type: "POST",
+                            url: "/Admin/SetMerchantTypeRecord/Edit?r=" + Math.random(1),
+                            data: userdata,
+                            dataType: "text",
+                            success: function (data) {
+                                layer.close(index); //关闭弹层
+                                if (data == "success") {
+                                    table.reload('LAY-list-manage'); //数据刷新
+                                } else {
+                                    layer.msg(data);
+                                }
+                            }
+                        });
+                    });
+
+                    submit.trigger('click');
+                }
+                , success: function (layero, index) {
+
+                }
+            });
+            layer.full(perContent);
+        }
+    });
+
+
+    //监听搜索
+    form.on('submit(LAY-list-front-search)', function (data) {
+        var field = data.field;
+
+        //执行重载
+        table.reload('LAY-list-manage', {
+            where: field,
+            page: {
+                curr: 1
+            }
+        });
+    });
+    form.on('submit(LAY-list-front-searchall)', function (data) {
+        table.reload('LAY-list-manage', {
+            where: null,
+            page: {
+                curr: 1
+            }
+        });
+    });
+
+    //事件
+    var active = {
+        batchdel: function () {
+            var checkStatus = table.checkStatus('LAY-list-manage')
+                , data = checkStatus.data; //得到选中的数据
+            if (data.length < 1) {
+                parent.layer.msg("请选择要删除的项");
+            } else {
+                var ids = "";
+                $.each(data, function (index, value) {
+                    ids += data[index].Id + ",";
+                });
+                ids = ids.substring(0, ids.length - 1);
+                var index = layer.confirm('确定要删除吗?删除后不能恢复!', function (index) {
+                    $.ajax({
+                        type: "POST",
+                        url: "/Admin/SetMerchantTypeRecord/Delete?r=" + Math.random(1),
+                        data: "Id=" + ids,
+                        dataType: "text",
+                        success: function (data) {
+                            layer.close(index);
+                            if (data == "success") {
+                                table.reload('LAY-list-manage');
+                            } else {
+                                layer.msg(data);
+                            }
+                        }
+                    });
+                });
+            }
+        }
+        , add: function () {
+            var perContent = layer.open({
+                type: 2
+                , title: '仓库库存变动记录-添加'
+                , content: 'Add'
+                , maxmin: true
+                , area: ['500px', '450px']
+                , btn: ['确定', '取消']
+                , yes: function (index, layero) {
+                    var iframeWindow = window['layui-layer-iframe' + index]
+                        , submitID = 'LAY-list-front-submit'
+                        , submit = layero.find('iframe').contents().find('#' + submitID);
+
+                    setTimeout(function () {
+                        layero.find('iframe').contents().find('.layui-tab-item').each(function (i) {
+                            var errObj = $(this).find('.layui-form-danger');
+                            if (errObj.length > 0) {
+                                iframeWindow.element.tabChange('mytabbar', String(i + 1));
+                                submit.click();
+                            }
+                        });
+                    }, 300);
+
+
+
+
+
+
+                    //监听提交
+                    iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
+                        var field = data.field; //获取提交的字段
+                        var userdata = "";
+                        for (var prop in field) {
+                            userdata += prop + "=" + encodeURIComponent(field[prop]) + "&";
+                        }
+                        //提交 Ajax 成功后,静态更新表格中的数据
+                        //$.ajax({});
+
+                        $.ajax({
+                            type: "POST",
+                            url: "/Admin/SetMerchantTypeRecord/Add?r=" + Math.random(1),
+                            data: userdata,
+                            dataType: "text",
+                            success: function (data) {
+                                layer.close(index); //关闭弹层
+                                if (data == "success") {
+                                    table.reload('LAY-list-manage'); //数据刷新
+                                } else {
+                                    layer.msg(data);
+                                }
+                            }
+                        });
+                    });
+
+                    submit.trigger('click');
+                }
+            });
+            layer.full(perContent);
+        }
+        , ImportData: function () {
+            ExcelKind = 1;
+            layer.open({
+                type: 1,
+                title: '导入',
+                maxmin: false,
+                area: ['460px', '280px'],
+                content: $('#excelForm'),
+                cancel: function () {
+                }
+            });
+            $("#excelTemp").html('<a href="/excelfile/模板文件.xlsx">点击下载模板文件</a>');
+        }
+        , ExportExcel: function () {
+            var userdata = '';
+            $(".layuiadmin-card-header-auto input").each(function (i) {
+                userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
+            });
+            $(".layuiadmin-card-header-auto select").each(function (i) {
+                userdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
+            });
+            $.ajax({
+                type: "GET",
+                url: "/Admin/SetMerchantTypeRecord/ExportExcel?r=" + Math.random(1),
+                data: userdata,
+                dataType: "json",
+                success: function (data) {
+                    data.Obj.unshift(data.Fields);
+                    excel.exportExcel(data.Obj, data.Info, 'xlsx');
+                }
+            });
+        }
+        , Open: function () {
+            var checkStatus = table.checkStatus('LAY-list-manage')
+                , data = checkStatus.data; //得到选中的数据
+            if (data.length < 1) {
+                parent.layer.msg("请选择要开启的项");
+            } else {
+                var ids = "";
+                $.each(data, function (index, value) {
+                    ids += data[index].Id + ",";
+                });
+                ids = ids.substring(0, ids.length - 1);
+                var index = layer.confirm('确定要开启吗?', function (index) {
+                    $.ajax({
+                        type: "POST",
+                        url: "/Admin/SetMerchantTypeRecord/Open?r=" + Math.random(1),
+                        data: "Id=" + ids,
+                        dataType: "text",
+                        success: function (data) {
+                            layer.close(index);
+                            if (data == "success") {
+                                table.reload('LAY-list-manage');
+                            } else {
+                                layer.msg(data);
+                            }
+                        }
+                    });
+                });
+            }
+        }
+        , Close: function () {
+            var checkStatus = table.checkStatus('LAY-list-manage')
+                , data = checkStatus.data; //得到选中的数据
+            if (data.length < 1) {
+                parent.layer.msg("请选择要关闭的项");
+            } else {
+                var ids = "";
+                $.each(data, function (index, value) {
+                    ids += data[index].Id + ",";
+                });
+                ids = ids.substring(0, ids.length - 1);
+                var index = layer.confirm('确定要关闭吗?', function (index) {
+                    $.ajax({
+                        type: "POST",
+                        url: "/Admin/SetMerchantTypeRecord/Close?r=" + Math.random(1),
+                        data: "Id=" + ids,
+                        dataType: "text",
+                        success: function (data) {
+                            layer.close(index);
+                            if (data == "success") {
+                                table.reload('LAY-list-manage');
+                            } else {
+                                layer.msg(data);
+                            }
+                        }
+                    });
+                });
+            }
+        }
+    };
+
+    $('.layui-btn').on('click', function () {
+        var type = $(this).data('type');
+        active[type] ? active[type].call(this) : '';
+    });
+});