Your Name 6 个月前
父节点
当前提交
af2ff18b09

+ 2
- 2
README.md 查看文件

101
 > 更多的常见问题和教程见手册
101
 > 更多的常见问题和教程见手册
102
 
102
 
103
 ## [截图预览]
103
 ## [截图预览]
104
-![输入图片说明](https://foruda.gitee.com/images/1694497052659798394/3f1a677d_555541.gif "YZNCMS后台管理系统")
105
-![输入图片说明](https://foruda.gitee.com/images/1694497169122838821/13d1e4fd_555541.png "YZNCMS后台管理系统")
104
+![输入图片说明](https://foruda.gitee.com/images/1694497052659798394/3f1a677d_555541.gif "金三角后台管理系统")
105
+![输入图片说明](https://foruda.gitee.com/images/1694497169122838821/13d1e4fd_555541.png "金三角后台管理系统")
106
 
106
 
107
 ## [友情捐赠]  
107
 ## [友情捐赠]  
108
 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0110/175836_7cb23388_555541.jpeg "1547112799941_01.jpg")
108
 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0110/175836_7cb23388_555541.jpeg "1547112799941_01.jpg")

+ 2
- 2
application/admin/command/Install/install.html 查看文件

3
 
3
 
4
 <head>
4
 <head>
5
     <meta charset="utf-8">
5
     <meta charset="utf-8">
6
-    <title>安装YznCMS后台程序</title>
6
+    <title>安装金三角后台程序</title>
7
     <meta name="renderer" content="webkit">
7
     <meta name="renderer" content="webkit">
8
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
8
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
9
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
121
 </head>
121
 </head>
122
 
122
 
123
 <body>
123
 <body>
124
-    <h2>安装YznCMS后台系统</h2>
124
+    <h2>安装金三角后台系统</h2>
125
     <div class="content">
125
     <div class="content">
126
         <p class="desc">
126
         <p class="desc">
127
             使用过程中遇到任何问题可参考
127
             使用过程中遇到任何问题可参考

+ 167
- 30
application/admin/controller/cms/Cms.php 查看文件

215
 
215
 
216
                 //模型类型
216
                 //模型类型
217
                 if((int)$catid === 17){
217
                 if((int)$catid === 17){
218
-                    //关键词栏目
219
-                    //进行判断标题是否存在
220
-                    //不用考虑状态还有指令类型
221
-                    $one = Db::name('cms_zl')->where([
222
-                            'gzxh' => $data['modelField']['gzxh'],
223
-                            'title' => $data['modelField']['title'],
224
-                        ])->find();
225
-                    if(!empty($one)){
226
-                        $this->error("该规则下此标题已存在!");
218
+                    [$is_su,$msg] = $this->yzCid17($catid,$data,'add');
219
+                    if($is_su === 1){
220
+                        $this->error($msg);
227
                     }
221
                     }
228
-
229
-                    if((int)$data['modelField']['is_qj'] == 1){
230
-                        //是全局
231
-                        $t_data = [
232
-                                '全局-非主非副','全局-主词类型','全局-副词类型'
233
-                            ];
234
-                        if(!in_array($data['modelField']['title'],$t_data)){
235
-                            $this->error("标题必须是'全局-非主非副','全局-主词类型','全局-副词类型'其中一个!");
236
-                        }
222
+                }else if((int)$catid === 29){
223
+                    [$is_su,$msg] = $this->yzCid29($catid,$data,'add');
224
+                    if($is_su === 1){
225
+                        $this->error($msg);
237
                     }
226
                     }
238
                 }
227
                 }
239
 
228
 
240
-
241
                 $data['modelFieldExt'] = $data['modelFieldExt'] ?? [];
229
                 $data['modelFieldExt'] = $data['modelFieldExt'] ?? [];
242
                 try {
230
                 try {
243
                     $this->CmsModel->addModelData($data['modelField'], $data['modelFieldExt']);
231
                     $this->CmsModel->addModelData($data['modelField'], $data['modelFieldExt']);
287
             $data                  = $this->request->post();
275
             $data                  = $this->request->post();
288
             $data['modelFieldExt'] = $data['modelFieldExt'] ?? [];
276
             $data['modelFieldExt'] = $data['modelFieldExt'] ?? [];
289
 
277
 
290
-
291
-
292
             //模型类型
278
             //模型类型
293
-            if((int)$data['modelField']['catid'] === 17){
294
-                if((int)$data['modelField']['is_qj'] == 1){
295
-                    //是全局
296
-                    $t_data = [
297
-                        '全局-非主非副','全局-主词类型','全局-副词类型'
298
-                    ];
299
-                    if(!in_array($data['modelField']['title'],$t_data)){
300
-                        $this->error("标题必须是'全局-非主非副','全局-主词类型','全局-副词类型'其中一个!");
301
-                    }
279
+            $catid = (int)$data['modelField']['catid'];
280
+            if((int)$catid === 17){
281
+                [$is_su,$msg] = $this->yzCid17($catid,$data,'edit');
282
+                if($is_su === 1){
283
+                    $this->error($msg);
284
+                }
285
+            }else if((int)$catid === 29){
286
+                [$is_su,$msg] = $this->yzCid29($catid,$data,'edit');
287
+                if($is_su === 1){
288
+                    $this->error($msg);
302
                 }
289
                 }
303
             }
290
             }
304
 
291
 
620
         }
607
         }
621
     }
608
     }
622
 
609
 
610
+    public function yzCid29($catid,$data,$type='add')
611
+    {
612
+        //主词列表
613
+        //判断是否唯一 不管status
614
+        if($type == 'add'){
615
+            $one = Db::name('options')->where([
616
+                'catid' => $catid,
617
+                'title' => $data['modelField']['title'],
618
+            ])->find();
619
+        }else{
620
+            $one = Db::name('options')->where([
621
+                'catid' => $catid,
622
+                'title' => $data['modelField']['title'],
623
+            ])->where('id','<>',$data['modelField']['id'])->find();
624
+        }
625
+
626
+        if(!empty($one)){
627
+            //$this->error("该选项列表下此标题已存在!");
628
+            return [1,'该选项列表下此标题已存在!'];
629
+        }
630
+        return [0,'success'];
631
+    }
632
+
633
+    public function yzCid17($catid,$data,$type='add'){
634
+        //关键词栏目
635
+        //进行判断标题是否存在
636
+        //不用考虑状态还有指令类型
637
+        if($type == 'add') {
638
+            $one = Db::name('cms_zl')->where([
639
+                    'catid' => $catid,
640
+                    'gzxh' => $data['modelField']['gzxh'],
641
+                    'title' => $data['modelField']['title'],
642
+                ])->find();
643
+        }else{
644
+            $one = Db::name('cms_zl')->where([
645
+                'catid' => $catid,
646
+                'gzxh' => $data['modelField']['gzxh'],
647
+                'title' => $data['modelField']['title'],
648
+            ])->where('id','<>',$data['modelField']['id'])->find();
649
+        }
650
+
651
+        if (!empty($one)) {
652
+            //$this->error("该规则下此标题已存在!");
653
+            return [1,'该规则下此标题已存在!'];
654
+        }
655
+
656
+        //为全局时 指令类型可以是其中一种
657
+        if((int)$data['modelField']['is_qj'] === 1){
658
+            //是全局
659
+            $t_data = [
660
+                '全局-非主非副','全局-主词类型','全局-副词类型'
661
+            ];
662
+            if(!in_array($data['modelField']['title'],$t_data)){
663
+                //$this->error("标题必须是'全局-非主非副','全局-主词类型','全局-副词类型'其中一个!");
664
+                return [1,"标题必须是'全局-非主非副','全局-主词类型','全局-副词类型'其中一个!"];
665
+            }
666
+        }else{
667
+            //非全局时
668
+            if((int)$data['modelField']['zllx'] === 0){
669
+                //$this->error("非全局时,指令类型不能是(非主非副)!");
670
+                return [1,"非全局时,指令类型不能是(非主非副)!"];
671
+            }
672
+        }
673
+
674
+        //如果是主词类型时 且非全局
675
+        if((int)$data['modelField']['is_qj'] === 0 && (int)$data['modelField']['zllx'] === 1){
676
+            //验证是否存在主词
677
+            $one = Db::name('options')->where([
678
+                'catid' => 29,
679
+                'title' => $data['modelField']['title'],
680
+            ])->find();
681
+            if(empty($one)){
682
+                //$this->error("请先添加主词选项或选择正确的指令类型!");
683
+                return [1,"请先添加主词选项或选择正确的指令类型!"];
684
+            }
685
+
686
+            //如果是
687
+            if(!empty($one['fclb']) && (int)$data['modelField']['fclx'] === 0) {
688
+                //自动获取副词 填入字段
689
+                //自定义 就不覆盖 以当前填写为主  这是快照 = 新规则
690
+                if (empty($data['modelField']['fclb']) || (string)$data['modelField']['fclb'] == '0') {
691
+                    $data['modelField']['fclb'] = $one['fclb'];
692
+                }else{
693
+                    //可能选的是复用设置 但是这里确填写了
694
+                    //$this->error("请选择副词类型为自定义设置!");
695
+                    return [1,"请选择副词类型为自定义设置!"];
696
+                }
697
+            }
698
+        }
699
+
700
+        //如果是副词类型时 且非全局
701
+        if((int)$data['modelField']['is_qj'] === 0 && (int)$data['modelField']['zllx'] === 2){
702
+
703
+            if(empty($data['modelField']['zc']) || (string)$data['modelField']['zc'] == '0'){
704
+                //$this->error("请填写主词字段!");
705
+                return [1,"请填写主词字段!"];
706
+            }else{
707
+                //验证主词字段是否包含于标题
708
+                if(strpos($data['modelField']['title'], $data['modelField']['zc']) !== false){
709
+
710
+                } else {
711
+                    //$this->error("标题未包含主词,请检查!");
712
+                    return [1,"标题未包含主词,请检查!"];
713
+                }
714
+
715
+                //验证是否存在主词
716
+                $one = Db::name('options')->where([
717
+                    'catid' => 29,
718
+                    'title' => $data['modelField']['zc'],
719
+                ])->find();
720
+                if(empty($one)){
721
+                    //$this->error("当前添加副词规则,请先添加主词选项!");
722
+                    return [1,"当前添加副词规则,请先添加主词选项!"];
723
+                }
724
+
725
+                //得到副词
726
+                $fc = str_replace($data['modelField']['zc'], "", $data['modelField']['title']);
727
+                //优先验证是否存在于主词规则里面
728
+                $two = Db::name('cms_zl')->where([
729
+                    'catid' => $catid,
730
+                    'gzxh' => $data['modelField']['gzxh'],
731
+                    'title' => $data['modelField']['zc'],
732
+                ])->find();
733
+                if(!empty($two)){
734
+                    if(strpos($two['fclb'], $fc) !== false){
735
+                        //存在于主词规则中 通过
736
+                    } else {
737
+                        //$this->error("主词规则中未找到当前副词!");
738
+                        //再次验证是否存在主词设置中
739
+                        if(strpos($one['fclb'], $fc) !== false){
740
+                            //存在 通过
741
+                        } else {
742
+                            //$this->error("主词规则存在但在该规则和主词设置两者中都未找到当前副词!");
743
+                            return [1,"主词规则存在但在该规则和主词设置两者中都未找到当前副词!"];
744
+                        }
745
+                    }
746
+                }else{
747
+                    //不存在主词规则记录,再次验证是否存在主词设置中
748
+                    if(strpos($one['fclb'], $fc) !== false){
749
+                        //存在于主词规则记录中 通过
750
+                    } else {
751
+                        //$this->error("主词设置中未找到当前副词!");
752
+                        //$this->error("主词规则为空且主词设置中未找到当前副词!");
753
+                        return [1,"主词规则为空且主词设置中未找到当前副词!"];
754
+                    }
755
+                }
756
+            }
757
+        }
758
+        return [0,'success'];
759
+    }
623
 }
760
 }

+ 4
- 0
application/admin/view/cms/cms/classlist.html 查看文件

2
 {block name="main"}
2
 {block name="main"}
3
 <style type="text/css">
3
 <style type="text/css">
4
 .childrenBody {background: #fff;padding:0;}
4
 .childrenBody {background: #fff;padding:0;}
5
+.table-search-fieldset{display: block !important;}
6
+.childrenBody{
7
+    padding: 10px 15px;
8
+}
5
 </style>
9
 </style>
6
 <table class="layui-hide" id="currentTable" lay-filter="currentTable" 
10
 <table class="layui-hide" id="currentTable" lay-filter="currentTable" 
7
     data-auth-add="{:$auth->check('cms.cms/add')}"
11
     data-auth-add="{:$auth->check('cms.cms/add')}"

+ 9
- 6
application/admin/view/cms/cms/list/catid_18.html 查看文件

41
             cols: [
41
             cols: [
42
                 [
42
                 [
43
                     { type: 'checkbox', fixed: 'left' },
43
                     { type: 'checkbox', fixed: 'left' },
44
-                    { field: 'listorder', width: 70, title: '排序', edit: 'text',search:false },
45
-                    { field: 'id', width: 60, title: 'ID' },
44
+                    { field: 'listorder', width: 50, title: '排序', edit: 'text',search:false },
45
+                    { field: 'id', width: 80, title: 'ID' },
46
                     { field: 'gzxh', width: 60, title: '规则' },
46
                     { field: 'gzxh', width: 60, title: '规则' },
47
+                    { field: 'zc', width: 60, title: '主词', templet: '#zc', searchOp: 'like' },
47
                     { field: 'title', align: "left", title: '标题', templet: '#title', searchOp: 'like' },
48
                     { field: 'title', align: "left", title: '标题', templet: '#title', searchOp: 'like' },
48
                     { field: 'is_use', width: 100, align: "center", title: '匹配', templet: '#is_useTpl', unresize: true, selectList: { 0: '非法', 1: '合法' } },
49
                     { field: 'is_use', width: 100, align: "center", title: '匹配', templet: '#is_useTpl', unresize: true, selectList: { 0: '非法', 1: '合法' } },
49
-                    { field: 'desc', align: "left", title: '匹配结果', templet: '#desc', searchOp: 'like' },
50
-                    { field: 'flag', width: 100, title: '属性',hide: true, selectList: { 1: '置顶', 2: '头条', 3: '特荐', 4: '推荐', 5: '热点', 6: '幻灯' }, searchOp: 'FIND_IN_SET' },
50
+                    { field: 'desc', align: "left", title: '匹配结果', templet: '#desc',search:false},
51
+                    { field: 'flag', width: 100, title: '属性',hide: true, selectList: { 1: '置顶', 2: '头条', 3: '特荐', 4: '推荐', 5: '热点', 6: '幻灯' }, search:false }, //searchOp: 'FIND_IN_SET'
51
                     //{ field: 'thumb', width: 100, title: '图片', search: false, templet: yznTable.formatter.image },
52
                     //{ field: 'thumb', width: 100, title: '图片', search: false, templet: yznTable.formatter.image },
52
                     //{ field: 'hits', width: 80, title: '点击量',search: 'between',searchTip:'点击量' },
53
                     //{ field: 'hits', width: 80, title: '点击量',search: 'between',searchTip:'点击量' },
53
-                    { field: 'update_time', width: 160, title: '更新时间', search: 'range' },
54
+                    //{ field: 'update_time', width: 160, title: '更新时间', search: 'range' },
55
+                    { field: 'sj', width: 160, title: '时间批次', search: true },
54
                     //{ field: 'username', width: 80, title: '发布人', templet: '#username' },
56
                     //{ field: 'username', width: 80, title: '发布人', templet: '#username' },
55
-                    { field: 'url', width: 60, align: "center", title: 'URL', templet: yznTable.formatter.url, search: false },
57
+                    //{ field: 'url', width: 60, align: "center", title: 'URL', templet: yznTable.formatter.url, search: false },
56
                     { field: 'status', width: 100, align: "center", title: '状态', templet: '#statusTpl', unresize: true, selectList: { 0: '待审核', 1: '通过' } },
58
                     { field: 'status', width: 100, align: "center", title: '状态', templet: '#statusTpl', unresize: true, selectList: { 0: '待审核', 1: '通过' } },
59
+                    { field: 'is_cf', width: 100, title: '重复', templet: '#isCf', selectList: { 0: '未检测', 1: '重复', 2: '已同步'} },
57
                     //{ field: 'diqu', width: 100, align: "center", title: '区域', templet: '#areaTpl', unresize: true, selectList: {"1":"广东","30":"福建","6872":"陕西","6791":"西藏","6645":"云南","6344":"四川","6303":"重庆","6003":"海南","5879":"广西","5742":"湖南","5625":"湖北","5448":"河南","5179":"江西","5056":"安徽","4833":"江苏","4813":"上海","4667":"黑龙江","4589":"吉林","4474":"辽宁","4228":"山西","4042":"河北","4023":"天津","4003":"浙江","6547":"贵州","4359":"内蒙古","4004":"北京","6990":"甘肃","7092":"青海","7144":"宁夏","7171":"新疆","10000":"主站"} },
60
                     //{ field: 'diqu', width: 100, align: "center", title: '区域', templet: '#areaTpl', unresize: true, selectList: {"1":"广东","30":"福建","6872":"陕西","6791":"西藏","6645":"云南","6344":"四川","6303":"重庆","6003":"海南","5879":"广西","5742":"湖南","5625":"湖北","5448":"河南","5179":"江西","5056":"安徽","4833":"江苏","4813":"上海","4667":"黑龙江","4589":"吉林","4474":"辽宁","4228":"山西","4042":"河北","4023":"天津","4003":"浙江","6547":"贵州","4359":"内蒙古","4004":"北京","6990":"甘肃","7092":"青海","7144":"宁夏","7171":"新疆","10000":"主站"} },
58
 
61
 
59
 
62
 

+ 17
- 0
application/admin/view/cms/cms/script/catid_18.html 查看文件

30
     {{#  } }}
30
     {{#  } }}
31
     <a  data-open='{:url("edit",["catid"=>$catid])}?id={{ d.id }}' data-title="编辑内容" data-full="true">{{ d.title }}</a>
31
     <a  data-open='{:url("edit",["catid"=>$catid])}?id={{ d.id }}' data-title="编辑内容" data-full="true">{{ d.title }}</a>
32
 </script>
32
 </script>
33
+
34
+<script type="text/html" id="isCf">
35
+    {{# if(d.is_cf.indexOf("0")!==-1){ }}
36
+    <span class="text-danger">[未检测]</span>
37
+    {{#  } }}
38
+    {{# if(d.is_cf.indexOf("1")!==-1){ }}
39
+    <span class="text-danger">[重复]</span>
40
+    {{#  } }}
41
+    {{# if(d.is_cf.indexOf("2")!==-1){ }}
42
+    <span class="text-danger">[已同步]</span>
43
+    {{#  } }}
44
+</script>
45
+
46
+
47
+<script type="text/html" id="zc">
48
+    <sapn>{{ d.zc }}</sapn>
49
+</script>
33
 <script type="text/html" id="username">
50
 <script type="text/html" id="username">
34
     {{# if(d.sysadd==1){ }}
51
     {{# if(d.sysadd==1){ }}
35
     {{ d.username }}
52
     {{ d.username }}

+ 1
- 1
application/admin/view/index_layout.html 查看文件

4
 <head>
4
 <head>
5
     <meta charset="utf-8">
5
     <meta charset="utf-8">
6
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
6
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
7
-    <title>YZNCMS后台管理系统</title>
7
+    <title>金三角后台管理系统</title>
8
     <meta name="author" content="YZNCMS">
8
     <meta name="author" content="YZNCMS">
9
     <link rel="stylesheet" href="__STATIC__/libs/layui/css/layui.css">
9
     <link rel="stylesheet" href="__STATIC__/libs/layui/css/layui.css">
10
     <link rel="stylesheet" href="__STATIC__/admin/css/admin.css?v={$Think.config.version.yzncms_release}">
10
     <link rel="stylesheet" href="__STATIC__/admin/css/admin.css?v={$Think.config.version.yzncms_release}">

+ 3
- 3
application/admin/view/layout.html 查看文件

4
 <head>
4
 <head>
5
     <meta charset="utf-8">
5
     <meta charset="utf-8">
6
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
6
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
7
-    <title>YZNCMS后台管理系统</title>
7
+    <title>金三角后台管理系统</title>
8
     <meta name="author" content="YZNCMS">
8
     <meta name="author" content="YZNCMS">
9
     <link rel="stylesheet" href="__STATIC__/libs/layui/css/layui.css">
9
     <link rel="stylesheet" href="__STATIC__/libs/layui/css/layui.css">
10
     <!-- 布 局 样 式 -->
10
     <!-- 布 局 样 式 -->
28
                 <!-- 图 标 -->
28
                 <!-- 图 标 -->
29
                 <div class="logo"><i class="layui-icon layui-icon-component"></i></div>
29
                 <div class="logo"><i class="layui-icon layui-icon-component"></i></div>
30
                 <!-- 标 题 -->
30
                 <!-- 标 题 -->
31
-                <span class="title">YznCMS后台</span>
31
+                <span class="title">金三角后台</span>
32
             </div>
32
             </div>
33
             <!-- 顶 部 左 侧 功 能 -->
33
             <!-- 顶 部 左 侧 功 能 -->
34
             <ul class="layui-nav layui-layout-left">
34
             <ul class="layui-nav layui-layout-left">
71
                 <!-- 图 标 -->
71
                 <!-- 图 标 -->
72
                 <div class="logo"><i class="layui-icon layui-icon-component"></i></div>
72
                 <div class="logo"><i class="layui-icon layui-icon-component"></i></div>
73
                 <!-- 标 题 -->
73
                 <!-- 标 题 -->
74
-                <span class="title">YznCMS后台</span>
74
+                <span class="title">金三角后台</span>
75
             </div>
75
             </div>
76
             <!-- 菜 单 内 容 -->
76
             <!-- 菜 单 内 容 -->
77
             <div class="layui-side-scroll">
77
             <div class="layui-side-scroll">

+ 123
- 12
application/api/controller/Ai.php 查看文件

25
 class Ai extends MemberApi
25
 class Ai extends MemberApi
26
 {
26
 {
27
 
27
 
28
-    protected $noNeedLogin = ['login', 'register','uploadCsv','uploadCsvFrom','exportCsv'];
28
+    protected $noNeedLogin = ['login', 'register','uploadCsv','uploadCsvFrom','exportCsv','dsTitle','dsTitlelist','dsTitle13'];
29
     protected $noNeedRight = [];
29
     protected $noNeedRight = [];
30
 
30
 
31
     //初始化
31
     //初始化
122
 
122
 
123
             //任务批次
123
             //任务批次
124
             $task_no = date('YmdHis',time()).'-'.rand(1,10000);
124
             $task_no = date('YmdHis',time()).'-'.rand(1,10000);
125
+
126
+            //插入 重复也无所谓了
127
+            Db::name('pc')->insert(['catid'=>31,'title'=>$task_no,'create_time' => time(),'update_time' => time()]);
128
+
125
             $pid = time(); //不考虑并发提交多次间隔也是秒级
129
             $pid = time(); //不考虑并发提交多次间隔也是秒级
126
             $num = 1;
130
             $num = 1;
127
             $log_content = '';
131
             $log_content = '';
135
                     $row = $line;
139
                     $row = $line;
136
                 }else{
140
                 }else{
137
                     if(!empty($line[0])) {
141
                     if(!empty($line[0])) {
142
+
143
+
138
                         //关键词步骤省略 需要去站长之家搜索并导出 这个步骤由人工操作
144
                         //关键词步骤省略 需要去站长之家搜索并导出 这个步骤由人工操作
139
                         //判断是否存在短标题 重复性检测
145
                         //判断是否存在短标题 重复性检测
140
                         //相同规则 短标题只能存在一个
146
                         //相同规则 短标题只能存在一个
141
                         $one = Db::name('cms_zl')
147
                         $one = Db::name('cms_zl')
142
                             ->where('title', '=', $line[0])
148
                             ->where('title', '=', $line[0])
143
-                            ->where('catid', '=', 18)
144
-                            ->where('gzxh', '=', $rule)
149
+                            ->where('catid', '=', 18)  //分类id
150
+                            ->where('zc', '=', $title)  //主词
151
+                            ->where('gzxh', '=', $rule)  //规则id
152
+                            ->where('sj','=',$task_no) //时间维度 批次
145
                             ->find();
153
                             ->find();
154
+
146
                         if (empty($one)) {
155
                         if (empty($one)) {
147
                             //过滤标题是否合法的函数 这个可以用定时任务处理
156
                             //过滤标题是否合法的函数 这个可以用定时任务处理
148
                             [$is_use, $desc, $rule_id] = $this->titleHandle($line[0], $rule, $title);
157
                             [$is_use, $desc, $rule_id] = $this->titleHandle($line[0], $rule, $title);
155
                                 'catid' => 18, //短标题
164
                                 'catid' => 18, //短标题
156
                                 'title' => $line[0], //短标题
165
                                 'title' => $line[0], //短标题
157
                                 'content' => $html,
166
                                 'content' => $html,
167
+                                'zc' => $title, //增加主词字段
158
                                 'create_time' => time(),
168
                                 'create_time' => time(),
159
                                 'update_time' => time(),
169
                                 'update_time' => time(),
160
                                 'status' => 0, //默认禁用状态 定时手动开启 自动化再读取即可
170
                                 'status' => 0, //默认禁用状态 定时手动开启 自动化再读取即可
163
                                 'is_use' => $is_use, //是否合法
173
                                 'is_use' => $is_use, //是否合法
164
                                 'desc' => $desc, //非法原因 或者 合法匹配结果
174
                                 'desc' => $desc, //非法原因 或者 合法匹配结果
165
                                 'gzxh' => $rule,
175
                                 'gzxh' => $rule,
166
-                                'is_use_id' => (int)$rule_id, //写入具体规则id 可查询到对应规则是什么 判断是否合法
176
+                                'sj' => $task_no, //写入时间维度 批次
177
+                                'is_use_id' => json_encode($rule_id,JSON_UNESCAPED_UNICODE), //写入具体规则id 可查询到对应规则是什么 判断是否合法
167
                             ];
178
                             ];
168
                             //dump($data);
179
                             //dump($data);
169
                             //插入记录
180
                             //插入记录
305
         //4.获取到全局或主词的副词
316
         //4.获取到全局或主词的副词
306
         $two = [];
317
         $two = [];
307
         if(empty($one['fclb']) || (string)$one['fclb'] === '0'){
318
         if(empty($one['fclb']) || (string)$one['fclb'] === '0'){
308
-            //不存在副词规则
319
+            //不存在副词规则 快照 表示这条规则 没有副词匹配要求
320
+            //即使标题里面存在 主词设置的副词列表
321
+            //即使存在某些副词规则 不存在副词规则 确定不了哪个是副词 故二无法匹配
309
             $desc .= '不存在副词规则-|-';
322
             $desc .= '不存在副词规则-|-';
310
         }else{
323
         }else{
311
             //存在副词规则
324
             //存在副词规则
327
                     }
340
                     }
328
                 }
341
                 }
329
             }
342
             }
343
+
344
+            //如果副词快照存在,那么以副词快照里面找不到,那么再去找主词设置是否存在
345
+            //这样判断是不真实的 因为主词设置是会修改的
346
+            if($is_bh === 0){
347
+                //$fc 无法确认值 所以无法匹配副词规则
348
+                //当主词规则 都没有填写副词列表 就表示不匹配副词了
349
+            }
350
+
330
             //存在多个副词 不合理
351
             //存在多个副词 不合理
331
             if($fc_num > 1){
352
             if($fc_num > 1){
332
                 return [0,'存在多个副词,不合法',$one['id']];
353
                 return [0,'存在多个副词,不合法',$one['id']];
333
             }
354
             }
334
-            //5.查询是否存在副词
355
+            //5.判断是否存在副词
335
             if($is_bh === 1){
356
             if($is_bh === 1){
336
                 //6.查询主词+副词是否存在规则
357
                 //6.查询主词+副词是否存在规则
337
                 $two = Db::name('cms_zl')
358
                 $two = Db::name('cms_zl')
375
         [$is_bh,$fc] = $this->isInRule($data['dqc'],$line);
396
         [$is_bh,$fc] = $this->isInRule($data['dqc'],$line);
376
         if($is_bh > 0){
397
         if($is_bh > 0){
377
             $desc .= '存在地区词'.$fc.',不合法-|-';
398
             $desc .= '存在地区词'.$fc.',不合法-|-';
378
-            return [0,$desc,$data['id']];
399
+            return [0,$desc,$data];
379
         }
400
         }
380
 
401
 
381
         //9.判断是否合法 分类词
402
         //9.判断是否合法 分类词
382
         [$is_bh,$fc] = $this->isInRule($data['flc'],$line);
403
         [$is_bh,$fc] = $this->isInRule($data['flc'],$line);
383
         if($is_bh > 0){
404
         if($is_bh > 0){
384
             $desc .= '存在分类词'.$fc.',不合法-|-';
405
             $desc .= '存在分类词'.$fc.',不合法-|-';
385
-            return [0,$desc,$data['id']];
406
+            return [0,$desc,$data];
386
         }
407
         }
387
 
408
 
388
         //10.判断是否合法 时间词
409
         //10.判断是否合法 时间词
389
         [$is_bh,$fc] = $this->isInRule($data['sjc'],$line);
410
         [$is_bh,$fc] = $this->isInRule($data['sjc'],$line);
390
         if($is_bh > 0){
411
         if($is_bh > 0){
391
             $desc .= '存在时间词'.$fc.',不合法-|-';
412
             $desc .= '存在时间词'.$fc.',不合法-|-';
392
-            return [0,$desc,$data['id']];
413
+            return [0,$desc,$data];
393
         }
414
         }
394
 
415
 
395
         //11.判断是否合法 屏蔽词
416
         //11.判断是否合法 屏蔽词
396
         [$is_bh,$fc] = $this->isInRule($data['pbc'],$line);
417
         [$is_bh,$fc] = $this->isInRule($data['pbc'],$line);
397
         if($is_bh > 0){
418
         if($is_bh > 0){
398
             $desc .= '存在屏蔽词'.$fc.',不合法-|-';
419
             $desc .= '存在屏蔽词'.$fc.',不合法-|-';
399
-            return [0,$desc,$data['id']];
420
+            return [0,$desc,$data];
400
         }
421
         }
401
 
422
 
402
         //12.判断是否合法 同时存在触发词和并发词
423
         //12.判断是否合法 同时存在触发词和并发词
405
         if($is_bh1 > 0 && $is_bh2 > 0){
426
         if($is_bh1 > 0 && $is_bh2 > 0){
406
             //同时存在
427
             //同时存在
407
             $desc .= '同时存在并发词['.$fc2.']和触发词['.$fc1.']合法';
428
             $desc .= '同时存在并发词['.$fc2.']和触发词['.$fc1.']合法';
408
-            return [1,$desc,$data['id']];
429
+            return [1,$desc,$data];
409
         }else{
430
         }else{
410
             $desc .= '不同时存在并发词['.$fc2.']和触发词['.$fc1.'],不合法';
431
             $desc .= '不同时存在并发词['.$fc2.']和触发词['.$fc1.'],不合法';
411
-            return [0,$desc,$data['id']];
432
+            return [0,$desc,$data];
412
         }
433
         }
413
     }
434
     }
414
 
435
 
486
         curl_close($ch);
507
         curl_close($ch);
487
         return $output;
508
         return $output;
488
     }
509
     }
510
+
511
+
512
+    /*
513
+     * 定时自动通过合法的短标题
514
+     * http://console.zx2049.com/api/ai/dsTitle
515
+     */
516
+    public function dsTitle()
517
+    {
518
+        $id_list = Db::name('cms_zl')->where([
519
+                'catid'=>18,
520
+                'is_use' => 1,
521
+                'status' => 0
522
+            ])->limit(10)->column('id');
523
+        dump($id_list);
524
+        Db::name('cms_zl')->where('id','in',$id_list)->update([
525
+            'status' => 1
526
+        ]);
527
+    }
528
+
529
+    /*
530
+     * 定时同步通过审核的短标题到自动发文
531
+     * http://console.zx2049.com/api/ai/dsTitlelist
532
+     * 必须判断唯一 如果标题一样 就不写入了
533
+     */
534
+    public function dsTitlelist()
535
+    {
536
+        //得到最后时间
537
+        $row = Db::name('cms_ai')->where(['catid' => 13])->order('tb_time desc')->limit(1)->find();
538
+        $lasttime = $row['tb_time'];
539
+
540
+        $list = Db::name('cms_zl')->where([
541
+                'catid'=>18,
542
+                'is_use' => 1,
543
+                'status' => 1,
544
+                'is_cf' => 0
545
+            ])
546
+            ->field('id,title,create_time')
547
+            ->where('create_time','>',$lasttime)
548
+            //->limit(10) //不能限制数量 不然时间查询 下次会漏掉某些时间相同的剩余数量 //要么使用状态字段 //要么使用自增id判断
549
+            ->order('create_time asc') //必须asc排序 先入库
550
+            ->select();
551
+
552
+        //dump($list);die;
553
+
554
+        foreach ($list  as $index=>$row) {
555
+            $one = Db::name('cms_ai')->field('id,title')->where(['catid' => 13])->where('title','=',$row['title'])->find();
556
+            if(empty($one)){
557
+                //不存在于ai中
558
+                $data = [
559
+                    'catid' => 13,
560
+                    'title' => $row['title'],
561
+                    'content' => '0',
562
+                    'topic_1' => '0',
563
+                    'topic_2' => '0',
564
+                    'topic_3' => '0',
565
+                    'didian' => '0',
566
+                    'dssj' => '0',
567
+                    'fbsj' => '0',
568
+                    'tb_time' => $row['create_time'],
569
+                    'create_time' => time(),
570
+                    'update_time' => time(),
571
+                    'status' => 0, //默认手动开启
572
+                ];
573
+                $run = Db::name('cms_ai')->insert($data);
574
+                Db::name('cms_zl')->where('id',$row['id'])->update(['is_cf'=>2]); //已检测 同步
575
+                echo $run;
576
+            }else{
577
+                //更新为重复记录
578
+                Db::name('cms_zl')->where('id',$row['id'])->update(['is_cf'=>1]);
579
+                echo $row['title']."已存在,更新为重复记录";
580
+            }
581
+        }
582
+    }
583
+
584
+    /*
585
+     * 定时自动通过合法的发文标题
586
+     * http://console.zx2049.com/api/ai/dsTitle13
587
+     */
588
+    public function dsTitle13()
589
+    {
590
+        $id_list = Db::name('cms_ai')->where([
591
+                'catid'=>13,
592
+                'status' => 0
593
+            ])->limit(10)->column('id');
594
+        dump($id_list);
595
+        Db::name('cms_ai')->where('id','in',$id_list)->update([
596
+            'status' => 1
597
+        ]);
598
+    }
599
+
489
 }
600
 }

+ 3
- 1
public/static/libs/layui_exts/yznTable/yznTable.js 查看文件

159
 
159
 
160
            // console.log(options);
160
            // console.log(options);
161
 
161
 
162
+            options.searchFormVisible = true;
163
+
162
             options.init = options.init || init;
164
             options.init = options.init || init;
163
             options.modifyReload = yzn.parame(options.modifyReload, false);
165
             options.modifyReload = yzn.parame(options.modifyReload, false);
164
             options.id = options.id || options.init.table_render_id;
166
             options.id = options.id || options.init.table_render_id;
168
             options.url = options.url || options.init.index_url;
170
             options.url = options.url || options.init.index_url;
169
             options.search = yzn.parame(options.search, true);
171
             options.search = yzn.parame(options.search, true);
170
             options.showSearch = yzn.parame(options.showSearch, true);
172
             options.showSearch = yzn.parame(options.showSearch, true);
171
-            options.searchFormVisible = yzn.parame(options.searchFormVisible, false);
173
+            options.searchFormVisible = yzn.parame(options.searchFormVisible, true);
172
             options.searchFormTpl = yzn.parame(options.searchFormTpl || options.init.searchFormTpl, false);
174
             options.searchFormTpl = yzn.parame(options.searchFormTpl || options.init.searchFormTpl, false);
173
             options.defaultToolbar = options.defaultToolbar || ['filter', 'print', 'exports'];
175
             options.defaultToolbar = options.defaultToolbar || ['filter', 'print', 'exports'];
174
             if (options.search && options.showSearch) {
176
             if (options.search && options.showSearch) {

正在加载...
取消
保存