Forráskód Böngészése

机具费率检查功能完成,待测试

lcl 2 éve
szülő
commit
138c2f366b

BIN
.DS_Store


+ 161 - 0
AppStart/ExcelCheckFeeHelper.cs

@@ -0,0 +1,161 @@
+using System;
+using System.Threading;
+using System.Linq;
+using System.Data;
+using Library;
+using MySystem.Models;
+using System.Collections.Generic;
+
+namespace MySystem
+{
+    public class ExcelCheckFeeHelper
+    {
+        public readonly static ExcelCheckFeeHelper Instance = new ExcelCheckFeeHelper();
+        private ExcelCheckFeeHelper()
+        {
+        }
+
+        public void Start()//启动
+        {
+            Thread thread = new Thread(ImportPostDo);
+            thread.IsBackground = true;
+            thread.Start();
+        }
+
+        public void ImportPostDo()
+        {
+            while (true)
+            {
+                string data = RedisDbconn.Instance.RPop<string>("ExcelCheckFee");
+                if (!string.IsNullOrEmpty(data))
+                {
+                    string[] dataList = data.Split("#cut#");
+                    string _ExcelPath = dataList[0];
+                    string BrandId = dataList[1];
+                    string Operator = dataList[2]; // 操作人
+                    int DoCount = 0;
+                    string FullExcelPath = function.getPath(_ExcelPath);
+                    FullExcelPath = FullExcelPath.Replace("//", "/");
+                    DataTable list = new PublicFunction().ExcelToDataTable(FullExcelPath);
+                    while (DoCount < list.Rows.Count)
+                    {
+                        WebCMSEntities db = new WebCMSEntities();
+                        var tran = db.Database.BeginTransaction();
+                        try
+                        {
+                            int Size = 100;
+                            if (list.Rows.Count - DoCount < 100)
+                            {
+                                Size = list.Rows.Count - DoCount;
+                            }
+                            Dictionary<string, int> storeData = new Dictionary<string, int>();
+                            for (int i = DoCount; i < DoCount + Size; i++)
+                            {
+                                DataRow dr = list.Rows[i];
+                                string posSn = "";
+                                string feeRate = "";
+                                string feeAmt = "";
+                                if(BrandId == "7") //盛付通
+                                {
+                                    posSn = dr[0].ToString();
+                                    feeRate = dr[1].ToString();
+                                    feeAmt = dr[2].ToString();
+                                    if(feeAmt != "0") feeAmt = feeAmt.TrimEnd('0');
+                                }
+
+                                AddData(db, posSn, feeRate, feeAmt);
+                            }
+                            DoCount += Size;
+
+                            tran.Commit();
+                        }
+                        catch (Exception ex)
+                        {
+                            DoCount = list.Rows.Count;
+                            tran.Rollback();
+                            function.WriteLog(ex.ToString(), "导入机具交易核对费率异常");
+                        }
+                        tran.Dispose();
+                        db.Dispose();
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(5000);
+                }
+            }
+        }
+
+        public void AddData(WebCMSEntities db, string posSn, string feeRate, string feeAmt)
+        {
+            if(feeRate != "0.63" && feeRate != "0.6")
+            {
+                return;
+            }
+            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == posSn);
+            if(pos != null)
+            {
+                bool op = false;
+                if(pos.BrandId == 12 || pos.BrandId == 13)
+                {
+                    if(feeRate == "0.63" && pos.UpFeeFlag == 1 && pos.DownFeeFlag == 0) //稳定期
+                    {
+                        op = true;
+                    }
+                    else if(feeRate == "0.63" && pos.DownFeeFlag == 1 && pos.DownFee == 0.63M) //稳定期A
+                    {
+                        op = true;
+                    }
+                    else if(feeRate == "0.6" && pos.DownFeeFlag == 0 && pos.DownFee == 0M) //扶持期
+                    {
+                        op = true;
+                    }
+                    else if(feeRate == "0.6" && pos.DownFeeFlag == 1 && pos.DownFee == 0.6M) //稳定期B
+                    {
+                        op = true;
+                    }
+                }
+                else
+                {
+                    if(feeRate == "0.63" && feeAmt == "3" && pos.UpFeeFlag == 1 && pos.DownFeeFlag == 0) //稳定期
+                    {
+                        op = true;
+                    }
+                    else if(feeRate == "0.63" && feeAmt == "0" && pos.DownFeeFlag == 1 && pos.DownFee == 0.63M) //稳定期A
+                    {
+                        op = true;
+                    }
+                    else if(feeRate == "0.6" && feeAmt == "0" && pos.DownFeeFlag == 0 && pos.DownFee == 0M) //扶持期
+                    {
+                        op = true;
+                    }
+                    else if(feeRate == "0.6" && feeAmt == "0" && pos.DownFeeFlag == 1 && pos.DownFee == 0.6M) //稳定期B
+                    {
+                        op = true;
+                    }
+                }
+                if(!op)
+                {
+                    DateTime check = DateTime.Now.AddHours(-1);
+                    if(!db.PosFeeWarningRecord.Any(m => m.PosSn == posSn && m.CreateDate >= check))
+                    {
+                        db.PosFeeWarningRecord.Add(new PosFeeWarningRecord()
+                        {
+                            CreateDate = DateTime.Now,
+                            UpdateDate = DateTime.Now,
+                            DownFee = pos.DownFee,
+                            DownFeeFlag = pos.DownFeeFlag,
+                            UpFeeFlag = pos.UpFeeFlag,
+                            TradeFeeAmt = feeAmt,
+                            TradeFeeRate = feeRate,
+                            PosSn = posSn,
+                            PosId = pos.Id,
+                            BrandId = pos.BrandId,
+                        });
+                        db.SaveChanges();
+                    }
+                }
+            }
+        }
+    }
+}

+ 244 - 0
Areas/Admin/Controllers/MainServer/PosFeeWarningRecordController.cs

@@ -0,0 +1,244 @@
+/*
+ * 机具费率报警
+ */
+
+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 PosFeeWarningRecordController : BaseController
+    {
+        public PosFeeWarningRecordController(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(PosFeeWarningRecord data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询机具费率报警列表
+
+        /// <summary>
+        /// 机具费率报警列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(PosFeeWarningRecord data, string DoStatus, string CreateDateData, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            string condition = "";
+            if (!string.IsNullOrEmpty(data.PosSn))
+            {
+                condition += " and PosSn like '%" + data.PosSn + "%'";
+            }
+            //状态
+            if (!string.IsNullOrEmpty(DoStatus))
+            {
+                condition += " and Status=" + DoStatus;
+            }
+            //创建时间
+            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'";
+            }
+
+            List<KqProducts> BrandList = db.KqProducts.ToList();
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("PosFeeWarningRecord", 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 BrandId = int.Parse(dic["BrandId"].ToString());
+                KqProducts Brand = BrandList.FirstOrDefault(m => m.Id == BrandId) ?? new KqProducts();
+                dic["BrandName"] = Brand.Name;
+
+                //状态
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 1) dic["Status"] = "已同步";
+                if (Status == 0) dic["Status"] = "未同步";
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 同步
+
+        /// <summary>
+        /// 同步
+        /// </summary>
+        /// <returns></returns>
+        public string Sycn(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "PosFeeWarningRecord", "Sycn");
+            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("PosFeeWarningRecord", Fields, id);
+                RedisDbconn.Instance.AddList("FeeRateAlignmentQueue", Id);
+            }
+            return "success";
+        }
+
+        #endregion
+
+        #region 导入数据
+
+        public IActionResult ImportTrade(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            List<KqProducts> BrandList = db.KqProducts.OrderBy(m => m.Id).ToList();
+            ViewBag.BrandList = BrandList;
+
+            return View();
+        }
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        [HttpPost]
+        public string ImportTradePost(string ExcelPath, string BrandId)
+        {
+            RedisDbconn.Instance.AddList("ExcelCheckFee", ExcelPath + "#cut#" + BrandId + "#cut#" + SysUserName);
+            AddSysLog(ExcelPath, "ImportTrade", "ImportTradePost");
+            return "success";
+        }
+        
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(PosFeeWarningRecord data, string UserIdMakerCode, string LeaderLevelSelect, string PosFeeWarningRecordtatusSelect, string LastBuyDateData, string ExpiredDateData, string CreateDateData)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+
+            string condition = " and Status>-1";
+            //创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //盟主等级
+            if (!string.IsNullOrEmpty(LeaderLevelSelect))
+            {
+                condition += " and LeaderLevel=" + LeaderLevelSelect;
+            }
+            //状态
+            if (!string.IsNullOrEmpty(PosFeeWarningRecordtatusSelect))
+            {
+                var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                if (PosFeeWarningRecordtatusSelect == "0")
+                {
+                    condition += " and ExpiredDate>'" + time + "'";
+                }
+                else
+                {
+                    condition += " and ExpiredDate<='" + time + "'";
+                }
+            }
+            //首次购买时间
+            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(LastBuyDateData))
+            {
+                string[] datelist = LastBuyDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and LastBuyDate>='" + start + " 00:00:00' and LastBuyDate<='" + end + " 23:59:59'";
+            }
+            //盟主到期时间
+            if (!string.IsNullOrEmpty(ExpiredDateData))
+            {
+                string[] datelist = ExpiredDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and ExpiredDate>='" + start + " 00:00:00' and ExpiredDate<='" + end + " 23:59:59'";
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("PosFeeWarningRecord", Fields, "Id desc", "0", 1, 20000, condition, "UserId,LeaderLevel,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(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", "盟主等级");
+            ReturnFields.Add("CreateDate", "创建时间");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "PosFeeWarningRecord", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+    }
+}

+ 133 - 0
Areas/Admin/Views/MainServer/PosFeeWarningRecord/ImportTrade.cshtml

@@ -0,0 +1,133 @@
+@using MySystem.Models;
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    List<KqProducts> BrandList = ViewBag.BrandList 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">
+    <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">
+                                <select id="BrandId" name="BrandId" lay-search="" lay-verify="required|">
+                                    <option value="">请选择</option>
+                                    @foreach(KqProducts Brand in BrandList)
+                                    {
+                                    <option value="@Brand.Id">@Brand.Name</option>
+                                    }
+                                </select>
+                            </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>

+ 114 - 0
Areas/Admin/Views/MainServer/PosFeeWarningRecord/Index.cshtml

@@ -0,0 +1,114 @@
+@{
+    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="PosSn" 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="DoStatus" name="DoStatus" 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 + "_edit,"))
+                    {
+                        <button class="layui-btn" data-type="Sycn"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>同步</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportTrade"><i
+                            class="layui-icon layui-icon-upload 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="sycn"><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/PosFeeWarningRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 1 - 0
Models/LeaderReserveRecord.cs

@@ -25,5 +25,6 @@ namespace MySystem.Models
         public string TradeMonth { get; set; }
         public string TradeMonth { get; set; }
         public int UserId { get; set; }
         public int UserId { get; set; }
         public int AccountRecordId { get; set; }
         public int AccountRecordId { get; set; }
+        public decimal UsedReserve { get; set; }
     }
     }
 }
 }

+ 20 - 0
Models/PosChannelSet.cs

@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class PosChannelSet
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int SnCount { get; set; }
+        public int BrandId { get; set; }
+        public string ChannelNo { get; set; }
+        public int UserId { get; set; }
+        public int Kind { get; set; }
+    }
+}

+ 20 - 0
Models/PosChannelSetRecord.cs

@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class PosChannelSetRecord
+    {
+        public int Id { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int MerId { get; set; }
+        public int PosId { get; set; }
+        public string ChannelNo { get; set; }
+        public string MerNo { get; set; }
+        public string PosSn { get; set; }
+        public int BrandId { get; set; }
+        public int RecordId { get; set; }
+    }
+}

+ 23 - 0
Models/PosFeeWarningRecord.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class PosFeeWarningRecord
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public decimal DownFee { get; set; }
+        public ulong DownFeeFlag { get; set; }
+        public ulong UpFeeFlag { get; set; }
+        public string TradeFeeAmt { get; set; }
+        public string TradeFeeRate { get; set; }
+        public string PosSn { get; set; }
+        public int BrandId { get; set; }
+        public int PosId { get; set; }
+    }
+}

+ 1 - 0
Models/ToChargeBackRecord.cs

@@ -23,5 +23,6 @@ namespace MySystem.Models
         public int TimeNumber { get; set; }
         public int TimeNumber { get; set; }
         public DateTime? StartDate { get; set; }
         public DateTime? StartDate { get; set; }
         public int Kind { get; set; }
         public int Kind { get; set; }
+        public ulong LockFlag { get; set; }
     }
     }
 }
 }

+ 0 - 1
Models/TradeRecord.cs

@@ -41,6 +41,5 @@ namespace MySystem.Models
         public int PayType { get; set; }
         public int PayType { get; set; }
         public int VipFlag { get; set; }
         public int VipFlag { get; set; }
         public int ActStatus { get; set; }
         public int ActStatus { get; set; }
-        public int StatStatus { get; set; }
     }
     }
 }
 }

+ 12 - 0
Models/UpUserRelation.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class UpUserRelation
+    {
+        public int UserId { get; set; }
+        public int Floor { get; set; }
+        public int UpUserId { get; set; }
+    }
+}

+ 24 - 0
Models/UserRankWhiteSetRecord.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class UserRankWhiteSetRecord
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int BeforeLevel { get; set; }
+        public DateTime? ExpireDate { get; set; }
+        public DateTime? PresetDate { get; set; }
+        public string OperateMan { get; set; }
+        public int Level { get; set; }
+        public int SetType { get; set; }
+        public int UserId { get; set; }
+        public int UserType { get; set; }
+        public string Remark { get; set; }
+    }
+}

+ 20 - 0
Models/UserSetUnAuthRecord.cs

@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class UserSetUnAuthRecord
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string Remark { get; set; }
+        public string Operator { get; set; }
+        public string MakerCode { get; set; }
+        public string RealName { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 1 - 0
Models/Users.cs

@@ -97,5 +97,6 @@ namespace MySystem.Models
         public string BusinessLogo { get; set; }
         public string BusinessLogo { get; set; }
         public string BusinessName { get; set; }
         public string BusinessName { get; set; }
         public DateTime? LogOutDate { get; set; }
         public DateTime? LogOutDate { get; set; }
+        public int LimitPosCount { get; set; }
     }
     }
 }
 }

+ 336 - 19
Models/WebCMSEntities.cs

@@ -141,10 +141,13 @@ namespace MySystem.Models
         public virtual DbSet<Orders> Orders { get; set; }
         public virtual DbSet<Orders> Orders { get; set; }
         public virtual DbSet<PageInfo> PageInfo { get; set; }
         public virtual DbSet<PageInfo> PageInfo { get; set; }
         public virtual DbSet<PageUpdateInfo> PageUpdateInfo { get; set; }
         public virtual DbSet<PageUpdateInfo> PageUpdateInfo { get; set; }
+        public virtual DbSet<PosChannelSet> PosChannelSet { get; set; }
+        public virtual DbSet<PosChannelSetRecord> PosChannelSetRecord { get; set; }
         public virtual DbSet<PosCouponForUser> PosCouponForUser { get; set; }
         public virtual DbSet<PosCouponForUser> PosCouponForUser { get; set; }
         public virtual DbSet<PosCouponOrders> PosCouponOrders { get; set; }
         public virtual DbSet<PosCouponOrders> PosCouponOrders { get; set; }
         public virtual DbSet<PosCouponRecord> PosCouponRecord { get; set; }
         public virtual DbSet<PosCouponRecord> PosCouponRecord { get; set; }
         public virtual DbSet<PosCoupons> PosCoupons { get; set; }
         public virtual DbSet<PosCoupons> PosCoupons { get; set; }
+        public virtual DbSet<PosFeeWarningRecord> PosFeeWarningRecord { get; set; }
         public virtual DbSet<PosMachines> PosMachines { get; set; }
         public virtual DbSet<PosMachines> PosMachines { get; set; }
         public virtual DbSet<PosMachinesFeeChangeRecord> PosMachinesFeeChangeRecord { get; set; }
         public virtual DbSet<PosMachinesFeeChangeRecord> PosMachinesFeeChangeRecord { get; set; }
         public virtual DbSet<PosMachinesTwo> PosMachinesTwo { get; set; }
         public virtual DbSet<PosMachinesTwo> PosMachinesTwo { get; set; }
@@ -252,6 +255,7 @@ namespace MySystem.Models
         public virtual DbSet<TradeDaySummaryBefore> TradeDaySummaryBefore { get; set; }
         public virtual DbSet<TradeDaySummaryBefore> TradeDaySummaryBefore { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
         public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
         public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
+        public virtual DbSet<UpUserRelation> UpUserRelation { get; set; }
         public virtual DbSet<UploadParams> UploadParams { get; set; }
         public virtual DbSet<UploadParams> UploadParams { get; set; }
         public virtual DbSet<UserAccount> UserAccount { get; set; }
         public virtual DbSet<UserAccount> UserAccount { get; set; }
         public virtual DbSet<UserAccountRecord> UserAccountRecord { get; set; }
         public virtual DbSet<UserAccountRecord> UserAccountRecord { get; set; }
@@ -272,7 +276,6 @@ namespace MySystem.Models
         public virtual DbSet<UserExchangeLeaderRecord> UserExchangeLeaderRecord { get; set; }
         public virtual DbSet<UserExchangeLeaderRecord> UserExchangeLeaderRecord { get; set; }
         public virtual DbSet<UserFamilyMember> UserFamilyMember { get; set; }
         public virtual DbSet<UserFamilyMember> UserFamilyMember { get; set; }
         public virtual DbSet<UserForMakerCode> UserForMakerCode { get; set; }
         public virtual DbSet<UserForMakerCode> UserForMakerCode { get; set; }
-        public virtual DbSet<UserForMakerCodeBak> UserForMakerCodeBak { get; set; }
         public virtual DbSet<UserForMobile> UserForMobile { get; set; }
         public virtual DbSet<UserForMobile> UserForMobile { get; set; }
         public virtual DbSet<UserForRealName> UserForRealName { get; set; }
         public virtual DbSet<UserForRealName> UserForRealName { get; set; }
         public virtual DbSet<UserFriend> UserFriend { get; set; }
         public virtual DbSet<UserFriend> UserFriend { get; set; }
@@ -289,7 +292,9 @@ namespace MySystem.Models
         public virtual DbSet<UserRank> UserRank { get; set; }
         public virtual DbSet<UserRank> UserRank { get; set; }
         public virtual DbSet<UserRankWhite> UserRankWhite { get; set; }
         public virtual DbSet<UserRankWhite> UserRankWhite { get; set; }
         public virtual DbSet<UserRankWhiteBefore> UserRankWhiteBefore { get; set; }
         public virtual DbSet<UserRankWhiteBefore> UserRankWhiteBefore { get; set; }
+        public virtual DbSet<UserRankWhiteSetRecord> UserRankWhiteSetRecord { get; set; }
         public virtual DbSet<UserRebateDetail> UserRebateDetail { get; set; }
         public virtual DbSet<UserRebateDetail> UserRebateDetail { get; set; }
+        public virtual DbSet<UserSetUnAuthRecord> UserSetUnAuthRecord { get; set; }
         public virtual DbSet<UserSimActSummary> UserSimActSummary { get; set; }
         public virtual DbSet<UserSimActSummary> UserSimActSummary { get; set; }
         public virtual DbSet<UserSnActInfo> UserSnActInfo { get; set; }
         public virtual DbSet<UserSnActInfo> UserSnActInfo { get; set; }
         public virtual DbSet<UserSnDelayChange> UserSnDelayChange { get; set; }
         public virtual DbSet<UserSnDelayChange> UserSnDelayChange { get; set; }
@@ -5380,6 +5385,10 @@ namespace MySystem.Models
 
 
                 entity.Property(e => e.UpdateDate).HasColumnType("datetime");
                 entity.Property(e => e.UpdateDate).HasColumnType("datetime");
 
 
+                entity.Property(e => e.UsedReserve)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("已出款额度");
+
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
             });
             });
 
 
@@ -9811,6 +9820,108 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<PosChannelSet>(entity =>
+            {
+                entity.HasComment("机具通道修改记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId)
+                    .HasColumnType("int(11)")
+                    .HasComment("品牌");
+
+                entity.Property(e => e.ChannelNo)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("通道编号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.Kind)
+                    .HasColumnType("int(11)")
+                    .HasComment("操作人类型");
+
+                entity.Property(e => e.SnCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("机具数");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客Id");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
+            modelBuilder.Entity<PosChannelSetRecord>(entity =>
+            {
+                entity.HasComment("机具通道修改记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId)
+                    .HasColumnType("int(11)")
+                    .HasComment("品牌");
+
+                entity.Property(e => e.ChannelNo)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("通道编号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.MerId)
+                    .HasColumnType("int(11)")
+                    .HasComment("商户Id");
+
+                entity.Property(e => e.MerNo)
+                    .HasColumnType("varchar(30)")
+                    .HasComment("商户号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.PosId)
+                    .HasColumnType("int(11)")
+                    .HasComment("机具Id");
+
+                entity.Property(e => e.PosSn)
+                    .HasColumnType("varchar(30)")
+                    .HasComment("机具号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.RecordId)
+                    .HasColumnType("int(11)")
+                    .HasComment("记录Id");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+            });
+
             modelBuilder.Entity<PosCouponForUser>(entity =>
             modelBuilder.Entity<PosCouponForUser>(entity =>
             {
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10008,6 +10119,73 @@ namespace MySystem.Models
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<PosFeeWarningRecord>(entity =>
+            {
+                entity.HasComment("机具费率警告记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId)
+                    .HasColumnType("int(11)")
+                    .HasComment("产品类型");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.DownFee)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("费率调降值");
+
+                entity.Property(e => e.DownFeeFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("费率调降标记");
+
+                entity.Property(e => e.PosId)
+                    .HasColumnType("int(11)")
+                    .HasComment("机具Id");
+
+                entity.Property(e => e.PosSn)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("机具SN")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.TradeFeeAmt)
+                    .HasColumnType("varchar(10)")
+                    .HasComment("交易秒到费")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.TradeFeeRate)
+                    .HasColumnType("varchar(10)")
+                    .HasComment("交易费率")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpFeeFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("费率调升标记");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<PosMachines>(entity =>
             modelBuilder.Entity<PosMachines>(entity =>
             {
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10435,7 +10613,7 @@ namespace MySystem.Models
                 entity.Property(e => e.MatchTime).HasColumnType("datetime");
                 entity.Property(e => e.MatchTime).HasColumnType("datetime");
 
 
                 entity.Property(e => e.MerIdcardNo)
                 entity.Property(e => e.MerIdcardNo)
-                    .HasColumnType("varchar(18)")
+                    .HasColumnType("varchar(30)")
                     .HasCharSet("utf8")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
                     .HasCollation("utf8_general_ci");
 
 
@@ -16737,6 +16915,11 @@ namespace MySystem.Models
                     .HasColumnType("int(11)")
                     .HasColumnType("int(11)")
                     .HasComment("待扣类别");
                     .HasComment("待扣类别");
 
 
+                entity.Property(e => e.LockFlag)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'")
+                    .HasComment("锁定状态");
+
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
 
                 entity.Property(e => e.Remark)
                 entity.Property(e => e.Remark)
@@ -17825,10 +18008,6 @@ namespace MySystem.Models
 
 
                 entity.Property(e => e.Sort).HasColumnType("int(11)");
                 entity.Property(e => e.Sort).HasColumnType("int(11)");
 
 
-                entity.Property(e => e.StatStatus)
-                    .HasColumnType("int(11)")
-                    .HasComment("统计标记");
-
                 entity.Property(e => e.Status).HasColumnType("int(11)");
                 entity.Property(e => e.Status).HasColumnType("int(11)");
 
 
                 entity.Property(e => e.TopUserId).HasColumnType("int(11)");
                 entity.Property(e => e.TopUserId).HasColumnType("int(11)");
@@ -17957,6 +18136,24 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<UpUserRelation>(entity =>
+            {
+                entity.HasKey(e => new { e.UserId, e.UpUserId })
+                    .HasName("PRIMARY");
+
+                entity.HasComment("上级关联表");
+
+                entity.Property(e => e.UserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.UpUserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("上级ID");
+
+                entity.Property(e => e.Floor)
+                    .HasColumnType("int(11)")
+                    .HasComment("层级");
+            });
+
             modelBuilder.Entity<UploadParams>(entity =>
             modelBuilder.Entity<UploadParams>(entity =>
             {
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -19403,19 +19600,6 @@ namespace MySystem.Models
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
                 entity.Property(e => e.UserId).HasColumnType("int(11)");
             });
             });
 
 
-            modelBuilder.Entity<UserForMakerCodeBak>(entity =>
-            {
-                entity.HasKey(e => e.MakerCode)
-                    .HasName("PRIMARY");
-
-                entity.Property(e => e.MakerCode)
-                    .HasColumnType("varchar(30)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.UserId).HasColumnType("int(11)");
-            });
-
             modelBuilder.Entity<UserForMobile>(entity =>
             modelBuilder.Entity<UserForMobile>(entity =>
             {
             {
                 entity.HasKey(e => e.Mobile)
                 entity.HasKey(e => e.Mobile)
@@ -20171,6 +20355,73 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<UserRankWhiteSetRecord>(entity =>
+            {
+                entity.HasComment("创客预设职级设置记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BeforeLevel)
+                    .HasColumnType("int(11)")
+                    .HasComment("预设前职级");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.ExpireDate)
+                    .HasColumnType("datetime")
+                    .HasComment("到期时间");
+
+                entity.Property(e => e.Level)
+                    .HasColumnType("int(11)")
+                    .HasComment("预设等级");
+
+                entity.Property(e => e.OperateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("操作人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.PresetDate)
+                    .HasColumnType("datetime")
+                    .HasComment("预设时间");
+
+                entity.Property(e => e.Remark)
+                    .HasColumnType("varchar(200)")
+                    .HasComment("备注")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SetType)
+                    .HasColumnType("int(11)")
+                    .HasComment("变动类型");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客Id");
+
+                entity.Property(e => e.UserType)
+                    .HasColumnType("int(11)")
+                    .HasComment("设置创客类型");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<UserRebateDetail>(entity =>
             modelBuilder.Entity<UserRebateDetail>(entity =>
             {
             {
                 entity.HasComment("返利明细表");
                 entity.HasComment("返利明细表");
@@ -20276,10 +20527,68 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
             });
 
 
+            modelBuilder.Entity<UserSetUnAuthRecord>(entity =>
+            {
+                entity.HasComment("设置创客为未实名记录");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.MakerCode)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创客编号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Operator)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("操作人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.RealName)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创客姓名")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Remark)
+                    .HasColumnType("varchar(200)")
+                    .HasComment("备注")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客Id");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<UserSimActSummary>(entity =>
             modelBuilder.Entity<UserSimActSummary>(entity =>
             {
             {
                 entity.HasComment("广电卡激活数统计");
                 entity.HasComment("广电卡激活数统计");
 
 
+                entity.HasIndex(e => new { e.UserId, e.Kind })
+                    .HasName("UserSimActSummaryIndex");
+
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
 
                 entity.Property(e => e.ActCount)
                 entity.Property(e => e.ActCount)
@@ -21170,6 +21479,10 @@ namespace MySystem.Models
 
 
             modelBuilder.Entity<Users>(entity =>
             modelBuilder.Entity<Users>(entity =>
             {
             {
+                entity.HasIndex(e => e.Mobile)
+                    .HasName("Mobile")
+                    .IsUnique();
+
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
 
                 entity.Property(e => e.AccessToken)
                 entity.Property(e => e.AccessToken)
@@ -21338,6 +21651,10 @@ namespace MySystem.Models
 
 
                 entity.Property(e => e.LeaderLevel).HasColumnType("int(11)");
                 entity.Property(e => e.LeaderLevel).HasColumnType("int(11)");
 
 
+                entity.Property(e => e.LimitPosCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("限制机具划拨数");
+
                 entity.Property(e => e.LockStatus)
                 entity.Property(e => e.LockStatus)
                     .HasColumnType("bit(1)")
                     .HasColumnType("bit(1)")
                     .HasDefaultValueSql("b'0'");
                     .HasDefaultValueSql("b'0'");

+ 15 - 15
Startup.cs

@@ -146,22 +146,22 @@ namespace MySystem
             // }
             // }
             // if (Env == "Production")
             // if (Env == "Production")
             // {
             // {
-            ResetUserTradeService.Instance.Start();
-            ResetMerchantTradeService.Instance.Start();
-            SycnProfitServiceV3.Instance.Start();
-            SycnHelpProfitService.Instance.Start();
-            ExcelHelper.Instance.Start();
-            OpExcelHelper.Instance.Start();
-            SIMPosMerchantTradeService.Instance.Start(); //导入广电卡数据
-            GetRadioCardInfoService.Instance.Start(); //获取行销宝信息
-            SycnUserMachineCountHelper.Instance.Start(); //重置创客机具数量
-            SIMActCountService.Instance.Start(); //统计注销欠费卡张数
+            // ResetUserTradeService.Instance.Start();
+            // ResetMerchantTradeService.Instance.Start();
+            // SycnProfitServiceV3.Instance.Start();
+            // SycnHelpProfitService.Instance.Start();
+            // ExcelHelper.Instance.Start();
+            // OpExcelHelper.Instance.Start();
+            // SIMPosMerchantTradeService.Instance.Start(); //导入广电卡数据
+            // GetRadioCardInfoService.Instance.Start(); //获取行销宝信息
+            // SycnUserMachineCountHelper.Instance.Start(); //重置创客机具数量
+            // SIMActCountService.Instance.Start(); //统计注销欠费卡张数
+            // BatchEditUserAmountService.Instance.Start(); //创客信息相关数据导入
+            // StoreHouseWithdrawalResultsService.Instance.Start(); //分仓临额提现结果导入
+            // PreWithdrawalResultsService.Instance.Start(); //小分仓临额提现结果导入
+            // TestHelper.Instance.Start(); //生成兑换券
 
 
-            TestHelper.Instance.Start(); //生成兑换券
-
-            BatchEditUserAmountService.Instance.Start(); //创客信息相关数据导入
-            StoreHouseWithdrawalResultsService.Instance.Start(); //分仓临额提现结果导入
-            PreWithdrawalResultsService.Instance.Start(); //小分仓临额提现结果导入
+            ExcelCheckFeeHelper.Instance.Start(); //导入费率表格
             // }
             // }
         }
         }
 
 

+ 267 - 0
wwwroot/layuiadmin/modules_main/PosFeeWarningRecord_Admin.js

@@ -0,0 +1,267 @@
+var ExcelData, ExcelKind;
+function ConfirmImport() {
+    $.ajax({
+        type: "POST",
+        url: "/Admin/PosFeeWarningRecord/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; //得到字段
+    });
+
+    //列表数据
+    table.render({
+        elem: '#LAY-list-manage'
+        , url: '/Admin/PosFeeWarningRecord/IndexData' //模拟接口
+        , cols: [[
+            { type: 'checkbox', fixed: 'left' }
+            , { field: 'Id', fixed: 'left', title: 'ID', width: 80, sort: true, unresize: true }
+            , { field: 'PosSn', width: 250, title: '机具SN', sort: true }
+            , { field: 'BrandName', width: 200, title: '品牌', sort: true }
+            , { field: 'Status', width: 100, title: '状态', sort: true }
+            , { field: 'CreateDate', width: 200, title: '创建时间', sort: true }
+            , { field: 'UpFeeFlag', width: 150, title: '调升标记', sort: true }
+            , { field: 'DownFeeFlag', width: 150, title: '调降标记', sort: true }
+            , { field: 'DownFee', width: 150, title: '调降费率', sort: true }
+            , { field: 'TradeFeeRate', width: 150, title: '支付公司费率', sort: true }
+            , { field: 'TradeFeeAmt', width: 150, title: '支付公司秒到费', sort: true }
+
+            , { title: '操作', align: 'center', width: 150, fixed: 'right', toolbar: '#table-list-tools' }
+        ]]
+        , where: {
+
+        }
+        , page: true
+        , limit: 30
+        , height: 'full-220'
+        , text: '对不起,加载出现异常!'
+        , done: function (res, curr, count) {
+            $(".layui-none").text("无数据");
+        }
+    });
+
+    //监听工具条
+    table.on('tool(LAY-list-manage)', function (obj) {
+        var data = obj.data;
+        if (obj.event === 'sycn') {
+            var index = layer.confirm('确定要同步吗?同步后不能恢复!', function (index) {
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/PosFeeWarningRecord/Sycn?r=" + Math.random(1),
+                    data: "Id=" + data.Id,
+                    dataType: "text",
+                    success: function (data) {
+                        if (data == "success") {
+                            layer.msg("已提交同步");
+                            layer.close(index);
+                        } else {
+                            layer.msg(data);
+                        }
+                    }
+                });
+            });
+        }
+    });
+
+
+    //监听搜索
+    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 = {
+        ImportTrade: function () {
+            var perContent = layer.open({
+                type: 2,
+                title: '导入交易',
+                content: 'ImportTrade',
+                maxmin: true,
+                area: ['650px', '650px'],
+                btn: ['确定', '取消'],
+                yes: function (index, layero) {
+                    var iframeWindow = window['layui-layer-iframe' + index],
+                        submitID = 'LAY-list-front-submit',
+                        submit = layero.find('iframe').contents().find('#' + submitID);
+
+
+                    //监听提交
+                    iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
+                        var field = data.field; //获取提交的字段
+                        var userdata = "";
+                        for (var prop in field) {
+                            userdata += prop + "=" + encodeURIComponent(field[prop]) + "&";
+                        }
+                        var loadindex = layer.load(1, {
+                            shade: [0.5, '#000']
+                        });
+                        $.ajax({
+                            type: "POST",
+                            url: "/Admin/PosFeeWarningRecord/ImportTradePost?r=" + Math.random(1),
+                            data: userdata,
+                            dataType: "text",
+                            success: function (data) {
+                                if (data == "success") {
+                                    layer.msg("提交成功");
+                                } else {
+                                    layer.msg(data);
+                                }
+                            }
+                        });
+                    });
+
+                    submit.trigger('click');
+                }
+            });
+        }
+        , 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()) + '&';
+            });
+            var index = layer.confirm('确定导出吗?', function (index) {
+                var indexs = layer.load(1, {
+                    shade: [0.5, '#000']
+                });
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/PosFeeWarningRecord/QuickExportExcelDo?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        layer.close(index); //关闭弹层
+                        if (data == "success") {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg('导出成功,请到我的下载中点击下载文件', {
+                                time: 1000
+                            }, function () {
+                                window.location.reload();
+                            });
+                        } else {
+                            layer.close(indexs); //关闭弹层
+                            layer.msg(data);
+                        }
+                    }
+                });
+            });
+        }
+        , Sycn: 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/PosFeeWarningRecord/Sycn?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) : '';
+    });
+});