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

品牌交易额列表增加导入广电卡激活数据功能

lcl 2 лет назад
Родитель
Сommit
ef9e799e41

+ 3 - 4
AppStart/PublicFunction.cs

@@ -484,13 +484,12 @@ namespace MySystem
                         if (row.Cells.All(d => d.CellType == CellType.Blank)) continue;
                         for (int j = row.FirstCellNum; j < cellCount; j++)
                         {
+                            string cellVal = "";
                             if (row.GetCell(j) != null)
                             {
-                                if (!string.IsNullOrEmpty(row.GetCell(j).ToString()) && !string.IsNullOrWhiteSpace(row.GetCell(j).ToString()))
-                                {
-                                    rowList.Add(row.GetCell(j).ToString());
-                                }
+                                cellVal = row.GetCell(j).ToString();
                             }
+                            rowList.Add(cellVal);
                         }
                         if (rowList.Count > 0)
                             dtTable.Rows.Add(rowList.ToArray());

+ 29 - 1
AppStart/TestHelper.cs

@@ -25,6 +25,11 @@ namespace MySystem
             Thread thread2 = new Thread(ImportPost2Do);
             thread2.IsBackground = true;
             thread2.Start();
+
+            
+            Thread thread3 = new Thread(ImportPost3Do);
+            thread3.IsBackground = true;
+            thread3.Start();
         }
 
         public void ImportPostDo()
@@ -65,6 +70,25 @@ namespace MySystem
                 }
             }
         }
+        public void ImportPost3Do()
+        {
+            while (true)
+            {
+                string data = RedisDbconn.Instance.RPop<string>("MakerCouponsQueue:3");
+                if (!string.IsNullOrEmpty(data))
+                {
+                    int count = int.Parse(function.CheckInt(data));
+                    if (count > 0)
+                    {
+                        MakerCoupons(3, count);
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(10000);
+                }
+            }
+        }
 
         //生成券,Kind:1-电签券,2-大机券
         public void MakerCoupons(int Kind = 1, int count = 0)
@@ -72,7 +96,11 @@ namespace MySystem
             try
             {
                 WebCMSEntities db = new WebCMSEntities();
-                string StartCode = db.PosCoupons.Where(m => m.QueryCount == Kind).OrderByDescending(m => m.Id).FirstOrDefault().ExchangeCode;
+                string StartCode = "0" + Kind + "00000000";
+                if(db.PosCoupons.Any(m => m.QueryCount == Kind))
+                {
+                    StartCode = db.PosCoupons.Where(m => m.QueryCount == Kind).OrderByDescending(m => m.Id).FirstOrDefault().ExchangeCode;
+                }
                 int QueryCount = Kind;
                 Kind += 1;
                 string title = "0" + Kind.ToString();

+ 85 - 10
Areas/Admin/Controllers/MainServer/TradeRecordController.cs

@@ -385,25 +385,100 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
         #region 导入数据
+        public IActionResult Import(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            return View();
+        }
         /// <summary>
         /// 导入数据
         /// </summary>
         /// <param name="ExcelData"></param>
-        public string Import(string ExcelData)
+        public string ImportPost(string ExcelPath)
         {
-            ExcelData = HttpUtility.UrlDecode(ExcelData);
-            JsonData list = JsonMapper.ToObject(ExcelData);
-            for (int i = 1; i < list.Count; i++)
+            string FullExcelPath = function.getPath(ExcelPath);
+            FullExcelPath = FullExcelPath.Replace("//", "/");
+            DataTable list = new PublicFunction().ExcelToDataTable(FullExcelPath);
+            foreach (DataRow dr in list.Rows)
             {
-                JsonData dr = list[i];
-
-                db.TradeRecord.Add(new TradeRecord()
+                string OrderNo = dr["订单编码"].ToString();
+                string CreateDate = dr["订单创建时间"].ToString();
+                string OrderSource = dr["订单来源"].ToString();
+                string PhoneNumber = dr["选择号码"].ToString();
+                string HasFirstCharge = dr["是否有首充"].ToString();
+                string FirstChargeAmount = dr["首充金额(元)"].ToString();
+                string Province = dr["号码归属省份"].ToString();
+                string City = dr["号码归属地市"].ToString();
+                string ProductName = dr["商品名称"].ToString();
+                string ActiveName = dr["促销活动名称"].ToString();
+                string ProductType = dr["商品类型名称"].ToString();
+                string ActualAmount = dr["实付金额(元)"].ToString();
+                string OrderStatus = dr["订单状态"].ToString();
+                string ActStatus = dr["激活状态名称"].ToString();
+                string ActDate = dr["激活时间"].ToString();
+                string WorkNo = dr["BOSS员工工号"].ToString();
+                string AccountName = dr["账号姓名"].ToString();
+                string SimNo = dr["Sim卡卡号(ICCID)"].ToString();
+
+                bool checkMer = db.PosMerchantInfo.Any(m => m.KqMerNo == PhoneNumber);
+                if (!checkMer)
                 {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
+                    spdb.BindRecord.Add(new SpModels.BindRecord()
+                    {
+                        CreateDate = DateTime.Parse(CreateDate),
+                        UpdateTime = DateTime.Parse(CreateDate), //机具绑定、解绑时间
+                        CreateTime = DateTime.Parse(CreateDate), //商户操作时间
+                        MerNewSnNo = PhoneNumber, //商户手机号
+                        MerSnNo = SimNo, //序列号
+                        MerName = AccountName, //商户名称
+                        MerNo = PhoneNumber, //商户编号
+                        Field1 = Province,
+                        Field2 = City,
+                        Field3 = ProductName,
+                        Field4 = WorkNo,
+                        ProductType = "14",
+                        Status = 1,
+                    });
+
+                    spdb.Merchants.Add(new SpModels.Merchants()
+                    {
+                        SnNo = SimNo,
+                        CreateTime = DateTime.Parse(CreateDate),
+                        UpdateTime = DateTime.Parse(CreateDate),
+                        AgentName = AccountName,
+                        MerRealName = AccountName,
+                        MerMobile = PhoneNumber,
+                        MerNo = PhoneNumber,
+                        MerName = AccountName,
+                        ProductType = "14",
+                        Status = 1,
+                    });
+                }
 
+                spdb.TradeRecord.Add(new SpModels.TradeRecord()
+                {
+                    CreateDate = DateTime.Parse(CreateDate), //创建时间
+                    UpdateDate = DateTime.Parse(ActDate), //激活时间
+                    BankCardNo = PhoneNumber, //卡号(掩码)
+                    TradeSerialNo = OrderNo, //订单编号
+                    TradeAmount = decimal.Parse(ActualAmount), //交易金额
+                    TradeSnNo = SimNo, //序列号
+                    AgentNo = PhoneNumber, //一级服务商编号
+                    MerNo = PhoneNumber, //商户编
+                    TradeStatus = OrderStatus, //订单状态
+                    ChannelSerial = OrderNo, //请求号
+                    Field1 = OrderSource,
+                    Field2 = HasFirstCharge,
+                    Field3 = FirstChargeAmount,
+                    Field4 = ProductType,
+                    Field5 = ActiveName,
+                    SerEntryMode = ActStatus,
+                    ProductType = "14",
+                    Status = 1,
                 });
-                db.SaveChanges();
+
+                spdb.SaveChanges();
             }
             AddSysLog("0", "TradeRecord", "Import");
             return "success";

+ 123 - 0
Areas/Admin/Views/MainServer/TradeRecord/Import.cshtml

@@ -0,0 +1,123 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string ExcelKind = ViewBag.ExcelKind as string;
+    
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>导入数据</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <script src="/admin/js/LAreaData2.js"></script>
+    <style>
+        .layui-form-label{
+            width: 135px !important;
+        }
+        .layui-form-item .layui-input-block{
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Kind" value="@ExcelKind" />
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <div class="layui-tab-content mt20">
+                    <div class="layui-tab-item layui-show">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">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>

+ 30 - 0
Areas/Admin/Views/MainServer/TradeRecord/Index.cshtml

@@ -140,6 +140,12 @@
                         </button>
                         @if (RightInfo.Contains("," + right + "_export,"))
                         {
+                            if(BrandId == "14")
+                            {
+                            <button class="layui-btn" data-type="Import">
+                                <i class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>导交易
+                            </button>
+                            }
                             <button class="layui-btn" data-type="ExportExcel">
                                 <i class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出
                             </button>
@@ -159,6 +165,30 @@
             </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/TradeRecord_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>

+ 2 - 0
Startup.cs

@@ -141,6 +141,8 @@ namespace MySystem
             ExcelHelper.Instance.Start();
             OpExcelHelper.Instance.Start();
             SycnUserMachineCountHelper.Instance.Start(); //重置创客机具数量
+
+            TestHelper.Instance.Start(); //生成兑换券
         }
 
 

+ 43 - 8
wwwroot/layuiadmin/modules_main/TradeRecord_Admin.js

@@ -353,14 +353,49 @@ layui.config({
             });
             layer.full(perContent);
         }
-        , ImportData: function () {
-            layer.open({
-                type: 1,
-                title: '导入',
-                maxmin: false,
-                area: ['460px', '180px'],
-                content: $('#excelForm'),
-                cancel: function () {
+        , Import: function () {
+            var perContent = layer.open({
+                type: 2,
+                title: '导交易',
+                content: 'Import',
+                maxmin: true,
+                area: ['650px', '350px'],
+                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]) + "&";
+                        }
+                        //提交 Ajax 成功后,静态更新表格中的数据
+                        //$.ajax({});
+                        var loadindex = layer.load(1, {
+                            shade: [0.5, '#000']
+                        });
+                        $.ajax({
+                            type: "POST",
+                            url: "/Admin/TradeRecord/ImportPost?r=" + Math.random(1),
+                            data: userdata,
+                            dataType: "text",
+                            success: function (data) {
+                                layer.close(loadindex);
+                                if (data == 'success') {
+                                    layer.msg('导入成功');
+                                } else {
+                                    layer.msg(data);
+                                }
+                            }
+                        });
+                    });
+
+                    submit.trigger('click');
                 }
             });
         }