Your Name 6ヶ月前
コミット
af2ff18b09

+ 2
- 2
README.md ファイルの表示

@@ -101,8 +101,8 @@ YznCMS(又名御宅男CMS)是基于最新TP5.1x框架和layui2.5x的后台管理
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 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,7 +3,7 @@
3 3
 
4 4
 <head>
5 5
     <meta charset="utf-8">
6
-    <title>安装YznCMS后台程序</title>
6
+    <title>安装金三角后台程序</title>
7 7
     <meta name="renderer" content="webkit">
8 8
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9 9
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -121,7 +121,7 @@
121 121
 </head>
122 122
 
123 123
 <body>
124
-    <h2>安装YznCMS后台系统</h2>
124
+    <h2>安装金三角后台系统</h2>
125 125
     <div class="content">
126 126
         <p class="desc">
127 127
             使用过程中遇到任何问题可参考

+ 167
- 30
application/admin/controller/cms/Cms.php ファイルの表示

@@ -215,29 +215,17 @@ class Cms extends Adminbase
215 215
 
216 216
                 //模型类型
217 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 229
                 $data['modelFieldExt'] = $data['modelFieldExt'] ?? [];
242 230
                 try {
243 231
                     $this->CmsModel->addModelData($data['modelField'], $data['modelFieldExt']);
@@ -287,18 +275,17 @@ class Cms extends Adminbase
287 275
             $data                  = $this->request->post();
288 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,4 +607,154 @@ class Cms extends Adminbase
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,6 +2,10 @@
2 2
 {block name="main"}
3 3
 <style type="text/css">
4 4
 .childrenBody {background: #fff;padding:0;}
5
+.table-search-fieldset{display: block !important;}
6
+.childrenBody{
7
+    padding: 10px 15px;
8
+}
5 9
 </style>
6 10
 <table class="layui-hide" id="currentTable" lay-filter="currentTable" 
7 11
     data-auth-add="{:$auth->check('cms.cms/add')}"

+ 9
- 6
application/admin/view/cms/cms/list/catid_18.html ファイルの表示

@@ -41,19 +41,22 @@
41 41
             cols: [
42 42
                 [
43 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 46
                     { field: 'gzxh', width: 60, title: '规则' },
47
+                    { field: 'zc', width: 60, title: '主词', templet: '#zc', searchOp: 'like' },
47 48
                     { field: 'title', align: "left", title: '标题', templet: '#title', searchOp: 'like' },
48 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 52
                     //{ field: 'thumb', width: 100, title: '图片', search: false, templet: yznTable.formatter.image },
52 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 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 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 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,6 +30,23 @@
30 30
     {{#  } }}
31 31
     <a  data-open='{:url("edit",["catid"=>$catid])}?id={{ d.id }}' data-title="编辑内容" data-full="true">{{ d.title }}</a>
32 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 50
 <script type="text/html" id="username">
34 51
     {{# if(d.sysadd==1){ }}
35 52
     {{ d.username }}

+ 1
- 1
application/admin/view/index_layout.html ファイルの表示

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

+ 3
- 3
application/admin/view/layout.html ファイルの表示

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

+ 123
- 12
application/api/controller/Ai.php ファイルの表示

@@ -25,7 +25,7 @@ use think\Db;
25 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 29
     protected $noNeedRight = [];
30 30
 
31 31
     //初始化
@@ -122,6 +122,10 @@ class Ai extends MemberApi
122 122
 
123 123
             //任务批次
124 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 129
             $pid = time(); //不考虑并发提交多次间隔也是秒级
126 130
             $num = 1;
127 131
             $log_content = '';
@@ -135,14 +139,19 @@ class Ai extends MemberApi
135 139
                     $row = $line;
136 140
                 }else{
137 141
                     if(!empty($line[0])) {
142
+
143
+
138 144
                         //关键词步骤省略 需要去站长之家搜索并导出 这个步骤由人工操作
139 145
                         //判断是否存在短标题 重复性检测
140 146
                         //相同规则 短标题只能存在一个
141 147
                         $one = Db::name('cms_zl')
142 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 153
                             ->find();
154
+
146 155
                         if (empty($one)) {
147 156
                             //过滤标题是否合法的函数 这个可以用定时任务处理
148 157
                             [$is_use, $desc, $rule_id] = $this->titleHandle($line[0], $rule, $title);
@@ -155,6 +164,7 @@ class Ai extends MemberApi
155 164
                                 'catid' => 18, //短标题
156 165
                                 'title' => $line[0], //短标题
157 166
                                 'content' => $html,
167
+                                'zc' => $title, //增加主词字段
158 168
                                 'create_time' => time(),
159 169
                                 'update_time' => time(),
160 170
                                 'status' => 0, //默认禁用状态 定时手动开启 自动化再读取即可
@@ -163,7 +173,8 @@ class Ai extends MemberApi
163 173
                                 'is_use' => $is_use, //是否合法
164 174
                                 'desc' => $desc, //非法原因 或者 合法匹配结果
165 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 179
                             //dump($data);
169 180
                             //插入记录
@@ -305,7 +316,9 @@ class Ai extends MemberApi
305 316
         //4.获取到全局或主词的副词
306 317
         $two = [];
307 318
         if(empty($one['fclb']) || (string)$one['fclb'] === '0'){
308
-            //不存在副词规则
319
+            //不存在副词规则 快照 表示这条规则 没有副词匹配要求
320
+            //即使标题里面存在 主词设置的副词列表
321
+            //即使存在某些副词规则 不存在副词规则 确定不了哪个是副词 故二无法匹配
309 322
             $desc .= '不存在副词规则-|-';
310 323
         }else{
311 324
             //存在副词规则
@@ -327,11 +340,19 @@ class Ai extends MemberApi
327 340
                     }
328 341
                 }
329 342
             }
343
+
344
+            //如果副词快照存在,那么以副词快照里面找不到,那么再去找主词设置是否存在
345
+            //这样判断是不真实的 因为主词设置是会修改的
346
+            if($is_bh === 0){
347
+                //$fc 无法确认值 所以无法匹配副词规则
348
+                //当主词规则 都没有填写副词列表 就表示不匹配副词了
349
+            }
350
+
330 351
             //存在多个副词 不合理
331 352
             if($fc_num > 1){
332 353
                 return [0,'存在多个副词,不合法',$one['id']];
333 354
             }
334
-            //5.查询是否存在副词
355
+            //5.判断是否存在副词
335 356
             if($is_bh === 1){
336 357
                 //6.查询主词+副词是否存在规则
337 358
                 $two = Db::name('cms_zl')
@@ -375,28 +396,28 @@ class Ai extends MemberApi
375 396
         [$is_bh,$fc] = $this->isInRule($data['dqc'],$line);
376 397
         if($is_bh > 0){
377 398
             $desc .= '存在地区词'.$fc.',不合法-|-';
378
-            return [0,$desc,$data['id']];
399
+            return [0,$desc,$data];
379 400
         }
380 401
 
381 402
         //9.判断是否合法 分类词
382 403
         [$is_bh,$fc] = $this->isInRule($data['flc'],$line);
383 404
         if($is_bh > 0){
384 405
             $desc .= '存在分类词'.$fc.',不合法-|-';
385
-            return [0,$desc,$data['id']];
406
+            return [0,$desc,$data];
386 407
         }
387 408
 
388 409
         //10.判断是否合法 时间词
389 410
         [$is_bh,$fc] = $this->isInRule($data['sjc'],$line);
390 411
         if($is_bh > 0){
391 412
             $desc .= '存在时间词'.$fc.',不合法-|-';
392
-            return [0,$desc,$data['id']];
413
+            return [0,$desc,$data];
393 414
         }
394 415
 
395 416
         //11.判断是否合法 屏蔽词
396 417
         [$is_bh,$fc] = $this->isInRule($data['pbc'],$line);
397 418
         if($is_bh > 0){
398 419
             $desc .= '存在屏蔽词'.$fc.',不合法-|-';
399
-            return [0,$desc,$data['id']];
420
+            return [0,$desc,$data];
400 421
         }
401 422
 
402 423
         //12.判断是否合法 同时存在触发词和并发词
@@ -405,10 +426,10 @@ class Ai extends MemberApi
405 426
         if($is_bh1 > 0 && $is_bh2 > 0){
406 427
             //同时存在
407 428
             $desc .= '同时存在并发词['.$fc2.']和触发词['.$fc1.']合法';
408
-            return [1,$desc,$data['id']];
429
+            return [1,$desc,$data];
409 430
         }else{
410 431
             $desc .= '不同时存在并发词['.$fc2.']和触发词['.$fc1.'],不合法';
411
-            return [0,$desc,$data['id']];
432
+            return [0,$desc,$data];
412 433
         }
413 434
     }
414 435
 
@@ -486,4 +507,94 @@ class Ai extends MemberApi
486 507
         curl_close($ch);
487 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,6 +159,8 @@ layui.define(['form', 'table', 'yzn', 'laydate', 'laytpl', 'element','notice'],
159 159
 
160 160
            // console.log(options);
161 161
 
162
+            options.searchFormVisible = true;
163
+
162 164
             options.init = options.init || init;
163 165
             options.modifyReload = yzn.parame(options.modifyReload, false);
164 166
             options.id = options.id || options.init.table_render_id;
@@ -168,7 +170,7 @@ layui.define(['form', 'table', 'yzn', 'laydate', 'laytpl', 'element','notice'],
168 170
             options.url = options.url || options.init.index_url;
169 171
             options.search = yzn.parame(options.search, true);
170 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 174
             options.searchFormTpl = yzn.parame(options.searchFormTpl || options.init.searchFormTpl, false);
173 175
             options.defaultToolbar = options.defaultToolbar || ['filter', 'print', 'exports'];
174 176
             if (options.search && options.showSearch) {

読み込み中…
キャンセル
保存