#1 合并发版

Merged
zhengxifeng merged 18 commits from develop into master 1 week ago
  1. 20
    20
      app/admin/controller/content/Article.php
  2. 16
    16
      app/admin/controller/content/ArticleCategory.php
  3. 82
    0
      app/admin/controller/shop/GoodsRenew.php
  4. 126
    0
      app/admin/logic/shop/GoodsRenewLogic.php
  5. 66
    0
      app/admin/validate/shop/GoodsRenewValidate.php
  6. 1
    1
      app/admin/view/setting/basic/copyright.html
  7. 94
    0
      app/admin/view/shop/goods_renew/add.html
  8. 105
    0
      app/admin/view/shop/goods_renew/edit.html
  9. 208
    0
      app/admin/view/shop/goods_renew/lists.html
  10. 18
    17
      app/admin/view/shop/store/add.html
  11. 13
    12
      app/admin/view/shop/store/edit.html
  12. 2
    1
      app/admin/view/shop/store/lists.html
  13. 3
    3
      app/admin/view/shop/store/set.html
  14. 106
    11
      app/api/controller/ShopContent.php
  15. 277
    16
      app/api/logic/ShopContentLogic.php
  16. 7
    0
      app/common/basics/Logic.php
  17. 58
    3
      app/common/model/content/Closure.php
  18. 15
    0
      app/common/model/shop/OrderRenew.php
  19. 22
    0
      app/common/model/shop/ShopGoodsRenew.php
  20. 15
    0
      app/common/model/shop/ShopHkLog.php
  21. 59
    1
      app/shop/controller/Index.php
  22. 1
    3
      app/shop/controller/content/Closure.php
  23. 4
    0
      app/shop/controller/content/EquiCategory.php
  24. 1
    1
      app/shop/controller/content/appService.php
  25. 141
    0
      app/shop/controller/order/OrderRenew.php
  26. 34
    0
      app/shop/controller/order/Pay.php
  27. 37
    19
      app/shop/logic/content/ClosureCategoryLogic.php
  28. 95
    17
      app/shop/logic/content/ClosureLogic.php
  29. 107
    5
      app/shop/logic/content/EquiCategoryLogic.php
  30. 29
    2
      app/shop/logic/content/IndustryCategoryLogic.php
  31. 426
    0
      app/shop/logic/order/OrderRenewLogic.php
  32. 107
    65
      app/shop/validate/content/ClosureValidate.php
  33. 54
    0
      app/shop/validate/order/OrderRenewValidate.php
  34. 20
    8
      app/shop/view/content/closure/add.html
  35. 20
    8
      app/shop/view/content/closure/edit.html
  36. 15
    11
      app/shop/view/content/closure/edit/01.html
  37. 23
    19
      app/shop/view/content/closure/edit/02.html
  38. 22
    20
      app/shop/view/content/closure/edit/03.html
  39. 42
    29
      app/shop/view/content/closure/edit/04.html
  40. 26
    17
      app/shop/view/content/closure/edit/05.html
  41. 8
    8
      app/shop/view/content/closure/edit/06.html
  42. 21
    21
      app/shop/view/content/closure/edit/07.html
  43. 107
    97
      app/shop/view/content/closure/edit/08.html
  44. 3
    3
      app/shop/view/content/closure/edit/09.html
  45. 13
    13
      app/shop/view/content/closure/lists.html
  46. 18
    9
      app/shop/view/content/closure/setting/01.html
  47. 18
    15
      app/shop/view/content/closure/setting/02.html
  48. 20
    18
      app/shop/view/content/closure/setting/03.html
  49. 39
    33
      app/shop/view/content/closure/setting/04.html
  50. 27
    16
      app/shop/view/content/closure/setting/05.html
  51. 8
    8
      app/shop/view/content/closure/setting/06.html
  52. 21
    21
      app/shop/view/content/closure/setting/07.html
  53. 94
    81
      app/shop/view/content/closure/setting/08.html
  54. 3
    3
      app/shop/view/content/closure/setting/09.html
  55. 6
    2
      app/shop/view/content/equi_category/add.html
  56. 6
    4
      app/shop/view/content/equi_category/bd_2.html
  57. 11
    7
      app/shop/view/content/equi_category/edit.html
  58. 44
    11
      app/shop/view/content/equi_category/lists.html
  59. 61
    23
      app/shop/view/index/stat.html
  60. 121
    0
      app/shop/view/order/order_renew/buy.html
  61. 148
    0
      app/shop/view/order/order_renew/lists.html
  62. 137
    0
      app/shop/view/order/order_renew/pay_page.html
  63. 165
    0
      app/shop/view/order/order_renew/renew_lists.html
  64. 109
    0
      app/shop/view/order/order_renew/renew_log.html
  65. 98
    0
      app/shop/view/order/order_renew/renew_month_log.html
  66. 0
    7
      public/.htaccess
  67. 1
    0
      public/static/admin/js/function.js

+ 20
- 20
app/admin/controller/content/Article.php View File

4
 namespace app\admin\controller\content;
4
 namespace app\admin\controller\content;
5
 
5
 
6
 
6
 
7
-use app\admin\logic\content\ClosureCategoryLogic;
8
-use app\admin\logic\content\ClosureLogic;
9
-use app\admin\validate\content\ClosureValidate;
7
+use app\admin\logic\content\ArticleCategoryLogic;
8
+use app\admin\logic\content\ArticleLogic;
9
+use app\admin\validate\content\ArticleValidate;
10
 use app\common\basics\AdminBase;
10
 use app\common\basics\AdminBase;
11
 use app\common\server\JsonServer;
11
 use app\common\server\JsonServer;
12
 
12
 
16
     {
16
     {
17
         if ($this->request->isAjax()) {
17
         if ($this->request->isAjax()) {
18
             $get = $this->request->get();
18
             $get = $this->request->get();
19
-            $lists = ClosureLogic::lists($get);
19
+            $lists = ArticleLogic::lists($get);
20
             return JsonServer::success("获取成功", $lists);
20
             return JsonServer::success("获取成功", $lists);
21
         }
21
         }
22
 
22
 
23
         return view('', [
23
         return view('', [
24
-            'category' => ClosureCategoryLogic::getCategory()
24
+            'category' => ArticleCategoryLogic::getCategory()
25
         ]);
25
         ]);
26
     }
26
     }
27
 
27
 
28
     public function add()
28
     public function add()
29
     {
29
     {
30
         if ($this->request->isAjax()) {
30
         if ($this->request->isAjax()) {
31
-            (new ClosureValidate())->goCheck('add');
31
+            (new ArticleValidate())->goCheck('add');
32
             $post = $this->request->post();
32
             $post = $this->request->post();
33
-            $res = ClosureLogic::add($post);
33
+            $res = ArticleLogic::add($post);
34
             if ($res === false) {
34
             if ($res === false) {
35
-                $error = ClosureLogic::getError() ?: '新增失败';
35
+                $error = ArticleLogic::getError() ?: '新增失败';
36
                 return JsonServer::error($error);
36
                 return JsonServer::error($error);
37
             }
37
             }
38
             return JsonServer::success('新增成功');
38
             return JsonServer::success('新增成功');
39
         }
39
         }
40
 
40
 
41
         return view('', [
41
         return view('', [
42
-            'category' => ClosureCategoryLogic::getCategory()
42
+            'category' => ArticleCategoryLogic::getCategory()
43
         ]);
43
         ]);
44
     }
44
     }
45
 
45
 
50
     public function edit()
50
     public function edit()
51
     {
51
     {
52
         if ($this->request->isAjax()) {
52
         if ($this->request->isAjax()) {
53
-            (new ClosureValidate())->goCheck('edit');
53
+            (new ArticleValidate())->goCheck('edit');
54
             $post = $this->request->post();
54
             $post = $this->request->post();
55
-            $res = ClosureLogic::edit($post);
55
+            $res = ArticleLogic::edit($post);
56
             if ($res === false) {
56
             if ($res === false) {
57
-                $error = ClosureLogic::getError() ?: '编辑失败';
57
+                $error = ArticleLogic::getError() ?: '编辑失败';
58
                 return JsonServer::error($error);
58
                 return JsonServer::error($error);
59
             }
59
             }
60
             return JsonServer::success('编辑成功');
60
             return JsonServer::success('编辑成功');
62
 
62
 
63
         $id = $this->request->get('id');
63
         $id = $this->request->get('id');
64
         return view('', [
64
         return view('', [
65
-            'detail'   => ClosureLogic::detail($id),
66
-            'category' => ClosureCategoryLogic::getCategory()
65
+            'detail'   => ArticleLogic::detail($id),
66
+            'category' => ArticleCategoryLogic::getCategory()
67
         ]);
67
         ]);
68
     }
68
     }
69
 
69
 
74
     public function del()
74
     public function del()
75
     {
75
     {
76
         if ($this->request->isAjax()) {
76
         if ($this->request->isAjax()) {
77
-            (new ClosureValidate())->goCheck('id');
77
+            (new ArticleValidate())->goCheck('id');
78
             $id = $this->request->post('id');
78
             $id = $this->request->post('id');
79
-            $res = ClosureLogic::del($id);
79
+            $res = ArticleLogic::del($id);
80
             if ($res === false) {
80
             if ($res === false) {
81
-                $error = ClosureLogic::getError() ?: '删除失败';
81
+                $error = ArticleLogic::getError() ?: '删除失败';
82
                 return JsonServer::error($error);
82
                 return JsonServer::error($error);
83
             }
83
             }
84
             return JsonServer::success('删除成功');
84
             return JsonServer::success('删除成功');
94
     public function hide()
94
     public function hide()
95
     {
95
     {
96
         if ($this->request->isAjax()) {
96
         if ($this->request->isAjax()) {
97
-            (new ClosureValidate())->goCheck('id');
97
+            (new ArticleValidate())->goCheck('id');
98
             $id = $this->request->post('id');
98
             $id = $this->request->post('id');
99
-            $res = ClosureLogic::hide($id);
99
+            $res = ArticleLogic::hide($id);
100
             if ($res === false) {
100
             if ($res === false) {
101
-                $error = ClosureLogic::getError() ?: '操作失败';
101
+                $error = ArticleLogic::getError() ?: '操作失败';
102
                 return JsonServer::error($error);
102
                 return JsonServer::error($error);
103
             }
103
             }
104
             return JsonServer::success('操作成功');
104
             return JsonServer::success('操作成功');

+ 16
- 16
app/admin/controller/content/ArticleCategory.php View File

4
 namespace app\admin\controller\content;
4
 namespace app\admin\controller\content;
5
 
5
 
6
 
6
 
7
-use app\admin\logic\content\ClosureCategoryLogic;
8
-use app\admin\validate\content\ClosureCategoryValidate;
7
+use app\admin\logic\content\ArticleCategoryLogic;
8
+use app\admin\validate\content\ArticleCategoryValidate;
9
 use app\common\basics\AdminBase;
9
 use app\common\basics\AdminBase;
10
 use app\common\server\JsonServer;
10
 use app\common\server\JsonServer;
11
 
11
 
19
     {
19
     {
20
         if ($this->request->isAjax()) {
20
         if ($this->request->isAjax()) {
21
             $get = $this->request->get();
21
             $get = $this->request->get();
22
-            $lists = ClosureCategoryLogic::lists($get);
22
+            $lists = ArticleCategoryLogic::lists($get);
23
             return JsonServer::success("获取成功", $lists);
23
             return JsonServer::success("获取成功", $lists);
24
         }
24
         }
25
 
25
 
33
     public function add()
33
     public function add()
34
     {
34
     {
35
         if ($this->request->isAjax()) {
35
         if ($this->request->isAjax()) {
36
-            (new ClosureCategoryValidate())->goCheck('add');
36
+            (new ArticleCategoryValidate())->goCheck('add');
37
             $post = $this->request->post();
37
             $post = $this->request->post();
38
-            $res = ClosureCategoryLogic::add($post);
38
+            $res = ArticleCategoryLogic::add($post);
39
             if ($res === false) {
39
             if ($res === false) {
40
-                $error = ClosureCategoryLogic::getError() ?: '新增失败';
40
+                $error = ArticleCategoryLogic::getError() ?: '新增失败';
41
                 return JsonServer::error($error);
41
                 return JsonServer::error($error);
42
             }
42
             }
43
             return JsonServer::success('新增成功');
43
             return JsonServer::success('新增成功');
54
     public function edit()
54
     public function edit()
55
     {
55
     {
56
         if ($this->request->isAjax()) {
56
         if ($this->request->isAjax()) {
57
-            (new ClosureCategoryValidate())->goCheck('edit');
57
+            (new ArticleCategoryValidate())->goCheck('edit');
58
             $post = $this->request->post();
58
             $post = $this->request->post();
59
-            $res = ClosureCategoryLogic::edit($post);
59
+            $res = ArticleCategoryLogic::edit($post);
60
             if ($res === false) {
60
             if ($res === false) {
61
-                $error = ClosureCategoryLogic::getError() ?: '编辑失败';
61
+                $error = ArticleCategoryLogic::getError() ?: '编辑失败';
62
                 return JsonServer::error($error);
62
                 return JsonServer::error($error);
63
             }
63
             }
64
             return JsonServer::success('编辑成功');
64
             return JsonServer::success('编辑成功');
66
 
66
 
67
         $id = $this->request->get('id');
67
         $id = $this->request->get('id');
68
         return view('', [
68
         return view('', [
69
-            'detail' => ClosureCategoryLogic::detail($id)
69
+            'detail' => ArticleCategoryLogic::detail($id)
70
         ]);
70
         ]);
71
     }
71
     }
72
 
72
 
77
     public function del()
77
     public function del()
78
     {
78
     {
79
         if ($this->request->isAjax()) {
79
         if ($this->request->isAjax()) {
80
-            (new ClosureCategoryValidate())->goCheck('id');
80
+            (new ArticleCategoryValidate())->goCheck('id');
81
             $id = $this->request->post('id');
81
             $id = $this->request->post('id');
82
-            $res = ClosureCategoryLogic::del($id);
82
+            $res = ArticleCategoryLogic::del($id);
83
             if ($res === false) {
83
             if ($res === false) {
84
-                $error = ClosureCategoryLogic::getError() ?: '删除失败';
84
+                $error = ArticleCategoryLogic::getError() ?: '删除失败';
85
                 return JsonServer::error($error);
85
                 return JsonServer::error($error);
86
             }
86
             }
87
             return JsonServer::success('删除成功');
87
             return JsonServer::success('删除成功');
97
     public function hide()
97
     public function hide()
98
     {
98
     {
99
         if ($this->request->isAjax()) {
99
         if ($this->request->isAjax()) {
100
-            (new ClosureCategoryValidate())->goCheck('id');
100
+            (new ArticleCategoryValidate())->goCheck('id');
101
             $id = $this->request->post('id');
101
             $id = $this->request->post('id');
102
-            $res = ClosureCategoryLogic::hide($id);
102
+            $res = ArticleCategoryLogic::hide($id);
103
             if ($res === false) {
103
             if ($res === false) {
104
-                $error = ClosureCategoryLogic::getError() ?: '操作失败';
104
+                $error = ArticleCategoryLogic::getError() ?: '操作失败';
105
                 return JsonServer::error($error);
105
                 return JsonServer::error($error);
106
             }
106
             }
107
             return JsonServer::success('操作成功');
107
             return JsonServer::success('操作成功');

+ 82
- 0
app/admin/controller/shop/GoodsRenew.php View File

1
+<?php
2
+/*
3
+ * @Author: ZMH
4
+ * @Email: zmhwork@qq.com
5
+ * @Date: 2025-03-13 11:45:32
6
+ * @LastEditTime: 2025-03-13 17:37:36
7
+ * @LastEditors: ZMH
8
+ * @FilePath: \opkpm\app\admin\controller\shop\GoodsRenew.php
9
+ * 
10
+ * @Description: 续费模块
11
+ */
12
+namespace app\admin\controller\shop;
13
+
14
+
15
+use app\admin\logic\shop\GoodsRenewLogic;
16
+use app\common\basics\AdminBase;
17
+use app\common\server\JsonServer;
18
+
19
+
20
+class GoodsRenew extends AdminBase
21
+{
22
+    public function lists()
23
+    {
24
+        if ($this->request->isAjax()) {
25
+            $get = $this->request->get();
26
+            $lists = GoodsRenewLogic::lists($get);
27
+            return JsonServer::success('获取成功', $lists);
28
+        }
29
+        
30
+        return view();
31
+    }
32
+
33
+    public function add()
34
+    {
35
+        if ($this->request->isAjax()) {
36
+
37
+            $post = $this->request->post();
38
+            $res = GoodsRenewLogic::add($post);
39
+            if ($res === false) {
40
+                $error = GoodsRenewLogic::getError() ?: '操作失败';
41
+                return JsonServer::error($error);
42
+            }
43
+            return JsonServer::success('操作成功');
44
+        }
45
+
46
+        return view();
47
+    }
48
+
49
+    public function edit()
50
+    {
51
+        if ($this->request->isAjax()) {
52
+            $post = $this->request->post();
53
+            
54
+            $res = GoodsRenewLogic::edit($post);
55
+            if ($res === false) {
56
+                $error = GoodsRenewLogic::getError() ?: '操作失败';
57
+                return JsonServer::error($error);
58
+            }
59
+            return JsonServer::success('操作成功');
60
+        }
61
+
62
+        $id = $this->request->get('id');
63
+        return view('', [
64
+            'detail' => GoodsRenewLogic::detail($id)
65
+        ]);
66
+    }
67
+
68
+    public function del()
69
+    {
70
+        if ($this->request->isAjax()) {
71
+            $id = $this->request->post('id');
72
+            $res = GoodsRenewLogic::del($id);
73
+            if ($res === false) {
74
+                $error = GoodsRenewLogic::getError() ?: '操作失败';
75
+                return JsonServer::error($error);
76
+            }
77
+            return JsonServer::success('操作成功');
78
+        }
79
+
80
+        return JsonServer::error('请求异常');
81
+    }
82
+}

+ 126
- 0
app/admin/logic/shop/GoodsRenewLogic.php View File

1
+<?php
2
+/*
3
+ * @Author: ZMH
4
+ * @Email: zmhwork@qq.com
5
+ * @Date: 2025-03-13 11:47:30
6
+ * @LastEditTime: 2025-03-14 18:02:56
7
+ * @LastEditors: xiaohai zmhwork@qq.com
8
+ * @FilePath: \opkpm\app\admin\logic\shop\GoodsRenewLogic.php
9
+ * 
10
+ * @Description: 续费逻辑处理
11
+ */
12
+
13
+namespace app\admin\logic\shop;
14
+
15
+use app\admin\validate\shop\GoodsRenewValidate;
16
+use app\common\basics\Logic;
17
+
18
+use app\common\model\shop\Shop; //判断是否绑定
19
+
20
+use app\common\model\shop\ShopGoodsRenew;
21
+use Exception;
22
+
23
+class GoodsRenewLogic extends Logic
24
+{
25
+    public static function lists($get)
26
+    {
27
+        $where = [
28
+            ['del', '=', 0]
29
+        ];
30
+
31
+        if (!empty($get['name']) && $get['name'])
32
+            $where[] = ['name', 'like', '%' . $get['name'] . '%'];
33
+
34
+        $model = new ShopGoodsRenew();
35
+        $lists = $model->field(true)
36
+            ->where($where)
37
+            ->order('sort', 'desc')
38
+            ->paginate([
39
+                'page'      => $get['page'],
40
+                'list_rows' => $get['limit'],
41
+                'var_page' => 'page'
42
+            ])
43
+            ->toArray();
44
+        foreach ($lists['data'] as $key => $value) {
45
+            $lists['data'][$key]['type_str'] = $value['type_id'] == 0 ? '包月' : '按量付费';
46
+            $lists['data'][$key]['status_str'] = $value['status'] == 0 ? '禁用' : '启用';
47
+        }
48
+
49
+        return ['count' => $lists['total'], 'lists' => $lists['data']];
50
+    }
51
+
52
+    public static function detail($id)
53
+    {
54
+        $model = new ShopGoodsRenew();
55
+        return $model->field(true)->findOrEmpty((int)$id)->toArray();
56
+    }
57
+
58
+    public static function getCategory()
59
+    {
60
+        try {
61
+            $model = new ShopGoodsRenew();
62
+            return $model->field(true)
63
+                ->where('del', 0)
64
+                ->order('id', 'desc')
65
+                ->order('sort', 'desc')
66
+                ->select()->toArray();
67
+        } catch (\Exception $e) {
68
+            return [];
69
+        }
70
+    }
71
+
72
+    public static function add($post)
73
+    {
74
+        try {
75
+            validate(GoodsRenewValidate::class)->scene('add')->check($post);
76
+        } catch (Exception $e) {
77
+            static::$error = $e->getMessage();
78
+            return false;
79
+        }
80
+
81
+        ShopGoodsRenew::create($post);
82
+
83
+        return true;
84
+    }
85
+
86
+    public static function edit($post)
87
+    {
88
+        try {
89
+            validate(GoodsRenewValidate::class)->scene('edit')->check($post);
90
+        } catch (Exception $e) {
91
+            static::$error = $e->getMessage();
92
+            return false;
93
+        }
94
+
95
+        $info = ShopGoodsRenew::where("id", $post['id'])->find();
96
+        if (!$info) {
97
+            static::$error = '数据不存在';
98
+            return false;
99
+        }
100
+
101
+        $info->save($post);
102
+
103
+        return true;
104
+    }
105
+
106
+    public static function del($post)
107
+    {
108
+        try {
109
+            validate(GoodsRenewValidate::class)->scene('edit')->check($post);
110
+        } catch (Exception $e) {
111
+            static::$error = $e->getMessage();
112
+            return false;
113
+        }
114
+
115
+        $info = ShopGoodsRenew::where("id", $post['id'])->find();
116
+        if (!$info) {
117
+            static::$error = '数据不存在';
118
+            return false;
119
+        }
120
+
121
+        $info->del = 1;
122
+        $info->save();
123
+
124
+        return true;
125
+    }
126
+}

+ 66
- 0
app/admin/validate/shop/GoodsRenewValidate.php View File

1
+<?php
2
+/*
3
+ * @Author: ZMH
4
+ * @Email: zmhwork@qq.com
5
+ * @Date: 2025-03-13 15:21:41
6
+ * @LastEditTime: 2025-03-13 16:13:45
7
+ * @LastEditors: ZMH
8
+ * @FilePath: \opkpm\app\admin\validate\shop\GoodsRenewValidate.php
9
+ * 
10
+ * @Description: 续费验证
11
+ */
12
+namespace app\admin\validate\shop;
13
+
14
+
15
+use app\common\basics\Validate;
16
+use app\common\model\shop\ShopGoodsRenew;
17
+
18
+class GoodsRenewValidate extends Validate
19
+{
20
+    protected $rule = [
21
+        'id'           => 'require|number',
22
+        'name|套餐名称' => 'require|max:32|checkExist',
23
+        'price|套餐价格' => 'require|checkPrice',
24
+        'type_id|套餐类型' => 'require|number|in:0,1',
25
+        'op_count|套餐操作次数' => 'require|number|min:1',
26
+        'status|套餐状态' => 'require|number|in:0,1',
27
+        'sort|排序'      => 'number',
28
+    ];
29
+
30
+    protected $message = [
31
+        'id.require' => 'ID不可为空',
32
+        'id.number'  => 'ID必须为数字',
33
+    ];
34
+
35
+    protected $scene = [
36
+        'id'    => ['id'],
37
+        'add' => ['name', 'price', 'type_id', 'op_count', 'status'],
38
+        'edit' => ['id', 'name', 'price', 'type_id', 'op_count', 'sort', 'status'],
39
+        'del'   => ['id'],
40
+    ];
41
+
42
+    public static function checkExist($value, $rule, $data=[])
43
+    {
44
+        $where = [];
45
+        if (isset($data['id'])) {
46
+            $where[] = ['id', '<>', $data['id']];
47
+        }
48
+        $where[] = ['name', '=', $value];
49
+
50
+        $res = ShopGoodsRenew::where($where)->find();
51
+        if ($res) {
52
+            return '该名称已存在';
53
+        }
54
+        return true;
55
+    }
56
+
57
+    public static function checkPrice($value, $rule, $data=[])
58
+    {
59
+        $isAmount = preg_match('/^\d+(\.\d{1,2})?$/', $value);
60
+        if(!$isAmount){
61
+            return '价格填写格式-不是金额';
62
+        }
63
+        return true;
64
+    }
65
+
66
+}

+ 1
- 1
app/admin/view/setting/basic/copyright.html View File

144
                 limit: 5,
144
                 limit: 5,
145
                 field: "other_qualifications[]",
145
                 field: "other_qualifications[]",
146
                 that: $(this),
146
                 that: $(this),
147
-                content: '/admin/file/lists?type=10'
147
+                content: '/cY0aK2sG/file/lists?type=10'
148
             });
148
             });
149
         })
149
         })
150
 
150
 

+ 94
- 0
app/admin/view/shop/goods_renew/add.html View File

1
+{layout name="layout2" /}
2
+<div class="layui-card layui-form" style="box-shadow:none;">
3
+    <div class="layui-card-body">
4
+        <div class="layui-form-item">
5
+            <label for="name" class="layui-form-label"><span style="color:red;">*</span>续费套餐:</label>
6
+            <div class="layui-input-block">
7
+                <input type="text" name="name" id="name" lay-verType="tips" lay-verify="required" autocomplete="off"
8
+                    class="layui-input">
9
+            </div>
10
+        </div>
11
+
12
+        <div class="layui-form-item">
13
+            <label class="layui-form-label"><span style="color:red;">*</span>套餐图片:</label>
14
+            <div class="layui-input-block">
15
+                <div class="like-upload-image">
16
+                    <div class="upload-image-elem"><a class="add-upload-image"> + 添加图片</a></div>
17
+                </div>
18
+            </div>
19
+        </div>
20
+
21
+        <div class="layui-form-item">
22
+            <label for="desc" class="layui-form-label">描述:</label>
23
+            <div class="layui-input-block">
24
+                <input type="text" name="desc" id="desc" autocomplete="off" class="layui-input">
25
+            </div>
26
+        </div>
27
+
28
+        <div class="layui-form-item">
29
+            <label class="layui-form-label">类型:</label>
30
+            <div class="layui-input-block">
31
+                <select name="type_id" lay-verify="required">
32
+                    <option value=""></option>
33
+                    <option value="0">包月</option>
34
+                    <option value="1">按量付费</option>
35
+                </select>
36
+            </div>
37
+        </div>
38
+
39
+        <div class="layui-form-item">
40
+            <label for="price" class="layui-form-label"><span style="color:red;">*</span>价格:</label>
41
+            <div class="layui-input-block" style="position:relative;">
42
+                <span style="position:absolute;left:5px;top:8px;">¥</span>
43
+                <input type="number" name="price" id="price" lay-verType="tips" lay-verify="required" autocomplete="off"
44
+                    class="layui-input" style="padding-left:20px;">
45
+            </div>
46
+        </div>
47
+
48
+        <div class="layui-form-item">
49
+            <label for="op_count" class="layui-form-label"><span style="color:red;">*</span>作用:</label>
50
+            <div class="layui-input-block">
51
+                <input type="number" name="op_count" value="1" id="op_count" lay-verType="tips" lay-verify="required"
52
+                    autocomplete="off" class="layui-input">
53
+
54
+                <div class="layui-form-mid layui-word-aux">类型选择"包月",这里填赠送月份<br/>类型选择"按量付费",这里填赠送次数</div>
55
+
56
+            </div>
57
+        </div>
58
+
59
+        <div class="layui-form-item">
60
+            <label for="sort" class="layui-form-label">排序:</label>
61
+            <div class="layui-input-block">
62
+                <input type="number" name="sort" id="sort" value="0" autocomplete="off" class="layui-input">
63
+                <div class="layui-form-mid layui-word-aux">排序值必须为整数;数值越大,越靠前</div>
64
+            </div>
65
+        </div>
66
+
67
+        <div class="layui-form-item">
68
+            <label class="layui-form-label">状态</label>
69
+            <div class="layui-input-block">
70
+                <input type="radio" name="status" value="0" title="禁用">
71
+                <input type="radio" name="status" value="1" title="启用" checked>
72
+            </div>
73
+        </div>
74
+
75
+        <div class="layui-form-item layui-hide">
76
+            <input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
77
+        </div>
78
+    </div>
79
+</div>
80
+
81
+<script>
82
+    layui.use(function () {
83
+
84
+        like.delUpload();
85
+        $(document).on("click", ".add-upload-image", function () {
86
+            like.imageUpload({
87
+                limit: 1,
88
+                field: "image",
89
+                that: $(this)
90
+            });
91
+        })
92
+
93
+    })
94
+</script>

+ 105
- 0
app/admin/view/shop/goods_renew/edit.html View File

1
+{layout name="layout2" /}
2
+
3
+<div class="layui-card layui-form" style="box-shadow:none;">
4
+    <div class="layui-card-body">
5
+        <div class="layui-form-item">
6
+            <label for="name" class="layui-form-label"><span style="color:red;">*</span>续费套餐:</label>
7
+            <div class="layui-input-block">
8
+                <input type="text" name="name" id="name" value="{$detail.name}" lay-verType="tips" lay-verify="required"
9
+                    autocomplete="off" class="layui-input">
10
+            </div>
11
+        </div>
12
+        <div class="layui-form-item">
13
+            <label class="layui-form-label"><span style="color:red;">*</span>套餐图片:</label>
14
+            <div class="layui-input-block">
15
+                <div class="like-upload-image">
16
+                    {if $detail.image}
17
+                    <div class="upload-image-div">
18
+                        <img src="{$detail.image}" alt="img">
19
+                        <input type="hidden" name="image" value="{$detail.image}">
20
+                        <div class="del-upload-btn">x</div>
21
+                    </div>
22
+                    <div class="upload-image-elem" style="display:none;"><a class="add-upload-image"> + 添加图片</a></div>
23
+                    {else}
24
+                    <div class="upload-image-elem"><a class="add-upload-image"> + 添加图片</a></div>
25
+                    {/if}
26
+                </div>
27
+            </div>
28
+        </div>
29
+
30
+
31
+        <div class="layui-form-item">
32
+            <label for="name" class="layui-form-label">描述:</label>
33
+            <div class="layui-input-block">
34
+                <input type="text" name="desc" id="desc" autocomplete="off" class="layui-input" value="{$detail.desc}">
35
+            </div>
36
+        </div>
37
+
38
+        <div class="layui-form-item">
39
+            <label class="layui-form-label">类型</label>
40
+            <div class="layui-input-block">
41
+                <select name="type_id" lay-verify="required">
42
+                    <option value=""></option>
43
+                    <option value="0" {eq name="detail.type_id" value="0"}selected{/eq}>包月</option>
44
+                    <option value="1" {eq name="detail.type_id" value="1"}selected{/eq}>按量付费</option>
45
+                </select>
46
+            </div>
47
+        </div>
48
+
49
+
50
+        <div class="layui-form-item">
51
+            <label for="price" class="layui-form-label"><span style="color:red;">*</span>价格:</label>
52
+            <div class="layui-input-block" style="position:relative;">
53
+                <span style="position:absolute;left:5px;top:8px;">¥</span>
54
+                <input type="number" name="price" id="price" lay-verType="tips" lay-verify="required" autocomplete="off"
55
+                       class="layui-input" value="{$detail.price}" style="padding-left:20px;">
56
+            </div>
57
+        </div>
58
+
59
+        <div class="layui-form-item">
60
+            <label for="op_count" class="layui-form-label"><span style="color:red;">*</span>作用:</label>
61
+            <div class="layui-input-block">
62
+                <input type="number" name="op_count" id="op_count" lay-verType="tips" lay-verify="required"
63
+                    autocomplete="off" class="layui-input" value="{$detail.op_count}">
64
+                <div class="layui-form-mid layui-word-aux">类型选择"包月",这里填赠送月份<br/>类型选择"按量付费",这里填赠送次数</div>
65
+            </div>
66
+        </div>
67
+
68
+
69
+        <div class="layui-form-item">
70
+            <label for="sort" class="layui-form-label">排序:</label>
71
+            <div class="layui-input-block">
72
+                <input type="number" name="sort" id="sort" value="{$detail.sort}" autocomplete="off"
73
+                    class="layui-input">
74
+                <div class="layui-form-mid layui-word-aux">排序值必须为整数;数值越大,越靠前</div>
75
+            </div>
76
+        </div>
77
+
78
+        <div class="layui-form-item">
79
+            <label class="layui-form-label">状态</label>
80
+            <div class="layui-input-block">
81
+                <input type="radio" name="status" value="0" title="禁用" {eq name="detail.status" value="0"}checked{/eq}>
82
+                <input type="radio" name="status" value="1" title="启用" {eq name="detail.status" value="1"}checked{/eq}>
83
+            </div>
84
+        </div>
85
+
86
+        <div class="layui-form-item layui-hide">
87
+            <input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
88
+        </div>
89
+    </div>
90
+</div>
91
+
92
+<script>
93
+    layui.use([], function () {
94
+
95
+        like.delUpload();
96
+        $(document).on("click", ".add-upload-image", function () {
97
+            like.imageUpload({
98
+                limit: 1,
99
+                field: "image",
100
+                that: $(this)
101
+            });
102
+        })
103
+
104
+    })
105
+</script>

+ 208
- 0
app/admin/view/shop/goods_renew/lists.html View File

1
+{layout name="layout1" /}
2
+
3
+<div class="wrapper">
4
+    <div class="layui-card">
5
+        <!-- 操作提示 -->
6
+        <div class="layui-card-body">
7
+            <div class="layui-collapse" style="border:1px dashed #c4c4c4">
8
+                <div class="layui-colla-item">
9
+                    <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
10
+                    <div class="layui-colla-content layui-show">
11
+                        <p>*平台配置系统的续费套餐。</p>
12
+                        <p>*续费套餐分为包月和按量付费。</p>
13
+                    </div>
14
+                </div>
15
+            </div>
16
+        </div>
17
+
18
+        <!-- 搜索区域 -->
19
+        <div class="layui-card-body layui-form">
20
+            <div class="layui-form-item">
21
+                <div class="layui-inline">
22
+                    <label for="name" class="layui-form-label">续费套餐:</label>
23
+                    <div class="layui-input-inline">
24
+                        <input type="text" id="name" name="name" autocomplete="off" class="layui-input">
25
+                    </div>
26
+                </div>
27
+                <div class="layui-inline">
28
+                    <a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
29
+                    <a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
30
+                </div>
31
+            </div>
32
+        </div>
33
+
34
+        <!-- 主体区域 -->
35
+        <div class="layui-card-body">
36
+            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" lay-event="add">添加</button>
37
+
38
+            <table id="like-table-lists" lay-filter="like-table-lists"></table>
39
+            <script type="text/html" id="table-image">
40
+                {{#  if(d.image){ }}
41
+                    <img src="{{d.image}}" alt="图标" style="width:28px;height:28px;">
42
+                {{#  } }}
43
+            </script>
44
+            <script type="text/html" id="table-operation">
45
+                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
46
+                <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
47
+            </script>
48
+
49
+            <script type="text/html" id="table-price">
50
+                <b style="color:red;">¥{{ d.price }}</b>
51
+            </script>
52
+
53
+            <script type="text/html" id="table-type">
54
+
55
+                {{#  if(d.type_id == 0){ }}
56
+                续期 {{ d.op_count }} 个月
57
+                {{#  } }}
58
+                {{#  if(d.type_id == 1){ }}
59
+                充值数量 {{ d.op_count }} 次
60
+                {{#  } }}
61
+
62
+            </script>
63
+
64
+
65
+            <script type="text/html" id="table-status">
66
+
67
+                {{#  if(d.status_str == "禁用"){ }}
68
+                <b style="color:red;">禁用</b>
69
+                {{#  } }}
70
+                {{#  if(d.status_str == "启用"){ }}
71
+                <b style="color:blue;">启用</b>
72
+                {{#  } }}
73
+
74
+            </script>
75
+
76
+        </div>
77
+
78
+    </div>
79
+</div>
80
+
81
+<script>
82
+    layui.use(["table", "form"], function () {
83
+        var table = layui.table;
84
+        var form = layui.form;
85
+
86
+
87
+        like.tableLists("#like-table-lists", "{:url()}", [
88
+            { field: "id", width: 60, title: "ID" }
89
+            , { field: "name", width: 260, align: "center", title: "续费套餐" }
90
+            , { field: "image", width: 120, align: "center", title: "套餐图片", templet: "#table-image" }
91
+            , { field: "type_str", width: 150, align: "center", title: "类型" }
92
+            , { field: "desc", width: 300, align: "center", title: "描述" }
93
+            , { field: "price", width: 150, align: "center", title: "价格", templet: "#table-price" }
94
+            , { field: "op_count", width: 200, align: "center", title: "作用",templet: "#table-type"  }
95
+            , { field: "status_str", width: 80, align: "center", title: "状态" ,templet: "#table-status"}
96
+            , { field: "sort", width: 80, align: "center", title: "排序" }
97
+            , { title: "操作", width: 150, align: "center", fixed: "right", toolbar: "#table-operation" }
98
+        ]);
99
+
100
+
101
+        var active = {
102
+            add: function () {
103
+                layer.open({
104
+                    type: 2
105
+                    , title: "新增续费套餐"
106
+                    , content: "{:url('shop.GoodsRenew/add')}"
107
+                    , area: ["800px", "600px"]
108
+                    , btn: ["确定", "取消"]
109
+                    , yes: function (index, layero) {
110
+                        var iframeWindow = window["layui-layer-iframe" + index];
111
+                        var submit = layero.find("iframe").contents().find("#addSubmit");
112
+                        iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
113
+                            like.ajax({
114
+                                url: "{:url('shop.GoodsRenew/add')}",
115
+                                data: data.field,
116
+                                type: "POST",
117
+                                success: function (res) {
118
+                                    if (res.code === 1) {
119
+                                        layui.layer.msg(res.msg);
120
+                                        layer.close(index);
121
+                                        table.reload("like-table-lists", {
122
+                                            where: {},
123
+                                            page: { cur: 1 }
124
+                                        });
125
+                                    }
126
+                                }
127
+                            });
128
+                        });
129
+                        submit.trigger("click");
130
+                    }
131
+                });
132
+            },
133
+            edit: function (obj) {
134
+                layer.open({
135
+                    type: 2
136
+                    , title: "编辑续费套餐"
137
+                    , content: "{:url('shop.GoodsRenew/edit')}?id=" + obj.data.id
138
+                    , area: ["800px", "600px"]
139
+                    , btn: ["确定", "取消"]
140
+                    , yes: function (index, layero) {
141
+                        var iframeWindow = window["layui-layer-iframe" + index];
142
+                        var submit = layero.find("iframe").contents().find("#addSubmit");
143
+                        iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
144
+                            data.field['id'] = obj.data.id;
145
+                            like.ajax({
146
+                                url: "{:url('shop.GoodsRenew/edit')}",
147
+                                data: data.field,
148
+                                type: "POST",
149
+                                success: function (res) {
150
+                                    if (res.code === 1) {
151
+                                        layui.layer.msg(res.msg);
152
+                                        layer.close(index);
153
+                                        table.reload("like-table-lists", {
154
+                                            where: {},
155
+                                            page: { cur: 1 }
156
+                                        });
157
+                                    }
158
+                                }
159
+                            });
160
+                        });
161
+                        submit.trigger("click");
162
+                    }
163
+                });
164
+            },
165
+            del: function (obj) {
166
+                layer.confirm("确定删除续费套餐:" + obj.data.name, function (index) {
167
+                    like.ajax({
168
+                        url: "{:url('shop.GoodsRenew/del')}",
169
+                        data: { id: obj.data.id },
170
+                        type: "POST",
171
+                        success: function (res) {
172
+                            if (res.code === 1) {
173
+                                layui.layer.msg(res.msg);
174
+                                layer.close(index);
175
+                                obj.del();
176
+                            }
177
+                        }
178
+                    });
179
+                    layer.close(index);
180
+                })
181
+            }
182
+        };
183
+        like.eventClick(active);
184
+
185
+
186
+        form.on("submit(search)", function (data) {
187
+            table.reload("like-table-lists", {
188
+                where: data.field,
189
+                page: {
190
+                    curr: 1
191
+                }
192
+            });
193
+        });
194
+
195
+
196
+        form.on("submit(clear-search)", function () {
197
+            $("#name").val("");
198
+            form.render("select");
199
+            table.reload("like-table-lists", {
200
+                where: {},
201
+                page: {
202
+                    curr: 1
203
+                }
204
+            });
205
+        });
206
+
207
+    })
208
+</script>

+ 18
- 17
app/admin/view/shop/store/add.html View File

25
                                switch-tab="0" autocomplete="off" class="layui-input">
25
                                switch-tab="0" autocomplete="off" class="layui-input">
26
                     </div>
26
                     </div>
27
                 </div>
27
                 </div>
28
-                <div class="layui-form-item">
28
+                <div class="layui-form-item" style="display: none;">
29
                     <label class="layui-form-label"><span style="color:red;">*</span>商家类型:</label>
29
                     <label class="layui-form-label"><span style="color:red;">*</span>商家类型:</label>
30
                     <div class="layui-input-inline">
30
                     <div class="layui-input-inline">
31
                         <input type="radio" name="type" value="1" title="官方自营" >
31
                         <input type="radio" name="type" value="1" title="官方自营" >
32
                         <input type="radio" name="type" value="2" title="入驻商家" checked>
32
                         <input type="radio" name="type" value="2" title="入驻商家" checked>
33
                     </div>
33
                     </div>
34
                 </div>
34
                 </div>
35
-                <div class="layui-form-item">
35
+                <div class="layui-form-item" style="display: none;">
36
                     <label class="layui-form-label"><span style="color:red;">*</span>配送方式:</label>
36
                     <label class="layui-form-label"><span style="color:red;">*</span>配送方式:</label>
37
                     <div class="layui-input-inline">
37
                     <div class="layui-input-inline">
38
                         <input type="checkbox" name="delivery_type[]" value="1" title="快递发货" lay-skin="primary" checked disabled>
38
                         <input type="checkbox" name="delivery_type[]" value="1" title="快递发货" lay-skin="primary" checked disabled>
51
                         </select>
51
                         </select>
52
                     </div>
52
                     </div>
53
                 </div>
53
                 </div>
54
-                <div class="layui-form-item">
54
+                <div class="layui-form-item" style="display: none;">
55
                     <label for="nickname" class="layui-form-label"><span style="color:red;">*</span>联系人:</label>
55
                     <label for="nickname" class="layui-form-label"><span style="color:red;">*</span>联系人:</label>
56
                     <div class="layui-input-inline">
56
                     <div class="layui-input-inline">
57
                         <input type="text" name="nickname" id="nickname" lay-verType="tips" lay-verify="nickname"
57
                         <input type="text" name="nickname" id="nickname" lay-verType="tips" lay-verify="nickname"
58
-                               switch-tab="0" autocomplete="off" class="layui-input">
58
+                               switch-tab="0" autocomplete="off" class="layui-input" value="wuwu">
59
                     </div>
59
                     </div>
60
                 </div>
60
                 </div>
61
-                <div class="layui-form-item">
61
+                <div class="layui-form-item" style="display: none;">
62
                     <label for="mobile" class="layui-form-label"><span style="color:red;">*</span>联系手机:</label>
62
                     <label for="mobile" class="layui-form-label"><span style="color:red;">*</span>联系手机:</label>
63
                     <div class="layui-input-inline">
63
                     <div class="layui-input-inline">
64
                         <input type="number" name="mobile" id="mobile" lay-verType="tips" lay-verify="mobile"
64
                         <input type="number" name="mobile" id="mobile" lay-verType="tips" lay-verify="mobile"
65
-                               switch-tab="0" autocomplete="off" class="layui-input">
65
+                               switch-tab="0" autocomplete="off" class="layui-input" value="13268119865">
66
                     </div>
66
                     </div>
67
                 </div>
67
                 </div>
68
-                <div class="layui-form-item">
68
+                <div class="layui-form-item" style="display: none;">
69
                     <label class="layui-form-label"><span style="color:red;">*</span>商家logo:</label>
69
                     <label class="layui-form-label"><span style="color:red;">*</span>商家logo:</label>
70
                     <div class="layui-input-block">
70
                     <div class="layui-input-block">
71
                         <div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
71
                         <div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
73
                         </div>
73
                         </div>
74
                         <div class="layui-form-mid layui-word-aux">建议尺寸:宽200像素*高200像素的jpg,jpeg,png图片</div>
74
                         <div class="layui-form-mid layui-word-aux">建议尺寸:宽200像素*高200像素的jpg,jpeg,png图片</div>
75
                     </div>
75
                     </div>
76
+                    <input type="hidden" name="logo" value="./uploads/images/20250221/202502211625593cc9c0131.png">
76
                 </div>
77
                 </div>
77
 
78
 
78
-                <div class="layui-form-item">
79
+                <div class="layui-form-item"  style="display: none;">
79
                     <label class="layui-form-label">商家地址:</label>
80
                     <label class="layui-form-label">商家地址:</label>
80
                     <div class="layui-input-block">
81
                     <div class="layui-input-block">
81
                         <div class="layui-input-inline" style="width:120px;">
82
                         <div class="layui-input-inline" style="width:120px;">
95
                         </div>
96
                         </div>
96
                     </div>
97
                     </div>
97
                 </div>
98
                 </div>
98
-                <div class="layui-form-item">
99
+                <div class="layui-form-item"  style="display: none;">
99
                     <label class="layui-form-label">地图定位:</label>
100
                     <label class="layui-form-label">地图定位:</label>
100
                     <div class="layui-input-block">
101
                     <div class="layui-input-block">
101
                         <div class="layui-inline" >
102
                         <div class="layui-inline" >
112
                         </div>
113
                         </div>
113
                     </div>
114
                     </div>
114
                 </div>
115
                 </div>
115
-                <div class="layui-form-item ">
116
+                <div class="layui-form-item " style="display: none;">
116
                     <label class="layui-form-label"></label>
117
                     <label class="layui-form-label"></label>
117
                     <div class="layui-input-block" style="margin-left:10px;">
118
                     <div class="layui-input-block" style="margin-left:10px;">
118
                         <div id="map-container" style="width: 700px;height: 400px;margin-left: 115px;"></div>
119
                         <div id="map-container" style="width: 700px;height: 400px;margin-left: 115px;"></div>
119
                     </div>
120
                     </div>
120
                 </div>
121
                 </div>
121
-                <div class="layui-form-item">
122
+                <div class="layui-form-item"  style="display: none;">
122
                     <label for="keywords" class="layui-form-label">商家关键字:</label>
123
                     <label for="keywords" class="layui-form-label">商家关键字:</label>
123
                     <div class="layui-input-inline">
124
                     <div class="layui-input-inline">
124
                         <input type="text" name="keywords" id="keywords" autocomplete="off" class="layui-input">
125
                         <input type="text" name="keywords" id="keywords" autocomplete="off" class="layui-input">
125
                     </div>
126
                     </div>
126
                 </div>
127
                 </div>
127
-                <div class="layui-form-item">
128
+                <div class="layui-form-item" style="display: none;">
128
                     <label for="intro" class="layui-form-label">商家简介:</label>
129
                     <label for="intro" class="layui-form-label">商家简介:</label>
129
                     <div class="layui-input-inline">
130
                     <div class="layui-input-inline">
130
                         <textarea name="intro" id="intro" class="layui-textarea"></textarea>
131
                         <textarea name="intro" id="intro" class="layui-textarea"></textarea>
140
                                switch-tab="1" autocomplete="off" class="layui-input">
141
                                switch-tab="1" autocomplete="off" class="layui-input">
141
                     </div>
142
                     </div>
142
                 </div>
143
                 </div>
143
-                <div class="layui-form-item">
144
+                <div class="layui-form-item" style="display: none;">
144
                     <label for="trade_service_fee" class="layui-form-label"><span style="color:red;">*</span>交易服务费:</label>
145
                     <label for="trade_service_fee" class="layui-form-label"><span style="color:red;">*</span>交易服务费:</label>
145
                     <div class="layui-input-inline">
146
                     <div class="layui-input-inline">
146
                         <input type="number" min="0" max="100" name="trade_service_fee" id="trade_service_fee"
147
                         <input type="number" min="0" max="100" name="trade_service_fee" id="trade_service_fee"
147
                                lay-verType="tips" lay-verify="trade_service_fee"
148
                                lay-verType="tips" lay-verify="trade_service_fee"
148
                                onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
149
                                onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
149
-                               switch-tab="1" autocomplete="off" class="layui-input">
150
+                               switch-tab="1" autocomplete="off" class="layui-input" value="0">
150
                         <div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">平台每笔交易收取的服务费用。请填写百分比,填0表示不收取服务费</div>
151
                         <div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">平台每笔交易收取的服务费用。请填写百分比,填0表示不收取服务费</div>
151
                     </div>
152
                     </div>
152
                     <div class="layui-form-mid layui-word-aux">%</div>
153
                     <div class="layui-form-mid layui-word-aux">%</div>
153
                 </div>
154
                 </div>
154
-                <div class="layui-form-item">
155
+                <div class="layui-form-item" style="display: none;">
155
                     <label for="expire_time" class="layui-form-label"><span style="color:red;">*</span>产品审核:</label>
156
                     <label for="expire_time" class="layui-form-label"><span style="color:red;">*</span>产品审核:</label>
156
                     <div class="layui-input-inline">
157
                     <div class="layui-input-inline">
157
                         <input type="radio" name="is_product_audit" value="1" title="需要审核">
158
                         <input type="radio" name="is_product_audit" value="1" title="需要审核">
270
             },
271
             },
271
             logo: function (value, item) {
272
             logo: function (value, item) {
272
                 if (!value) {
273
                 if (!value) {
273
-                    if ($(item).find(".upload-image-div").length <= 0) {
274
+                    /*if ($(item).find(".upload-image-div").length <= 0) {
274
                         switchTab($(item).attr("switch-tab"))
275
                         switchTab($(item).attr("switch-tab"))
275
                         return "请上传商家logo";
276
                         return "请上传商家logo";
276
-                    }
277
+                    }*/
277
                 }
278
                 }
278
             },
279
             },
279
             expire_time: function (value, item) {
280
             expire_time: function (value, item) {

+ 13
- 12
app/admin/view/shop/store/edit.html View File

25
                                switch-tab="0" autocomplete="off" class="layui-input">
25
                                switch-tab="0" autocomplete="off" class="layui-input">
26
                     </div>
26
                     </div>
27
                 </div>
27
                 </div>
28
-                <div class="layui-form-item">
28
+                <div class="layui-form-item" style="display: none;">
29
                     <label class="layui-form-label"><span style="color:red;">*</span>商家类型:</label>
29
                     <label class="layui-form-label"><span style="color:red;">*</span>商家类型:</label>
30
                     <div class="layui-input-inline">
30
                     <div class="layui-input-inline">
31
                         <input type="radio" name="type" value="1" title="官方自营" {if $detail.type==1}checked{/if}>
31
                         <input type="radio" name="type" value="1" title="官方自营" {if $detail.type==1}checked{/if}>
32
                         <input type="radio" name="type" value="2" title="入驻商家" {if $detail.type==2}checked{/if}>
32
                         <input type="radio" name="type" value="2" title="入驻商家" {if $detail.type==2}checked{/if}>
33
                     </div>
33
                     </div>
34
                 </div>
34
                 </div>
35
-                <div class="layui-form-item">
35
+                <div class="layui-form-item" style="display: none;">
36
                     <label class="layui-form-label"><span style="color:red;">*</span>配送方式:</label>
36
                     <label class="layui-form-label"><span style="color:red;">*</span>配送方式:</label>
37
                     <div class="layui-input-inline">
37
                     <div class="layui-input-inline">
38
                         <input type="checkbox" name="delivery_type[]" value="1" title="快递发货" disabled lay-skin="primary" checked disabled>
38
                         <input type="checkbox" name="delivery_type[]" value="1" title="快递发货" disabled lay-skin="primary" checked disabled>
51
                         </select>
51
                         </select>
52
                     </div>
52
                     </div>
53
                 </div>
53
                 </div>
54
-                <div class="layui-form-item">
54
+                <div class="layui-form-item" style="display: none;">
55
                     <label for="nickname" class="layui-form-label"><span style="color:red;">*</span>联系人:</label>
55
                     <label for="nickname" class="layui-form-label"><span style="color:red;">*</span>联系人:</label>
56
                     <div class="layui-input-inline">
56
                     <div class="layui-input-inline">
57
                         <input type="text" name="nickname" id="nickname" value="{$detail.nickname}" lay-verType="tips" lay-verify="nickname"
57
                         <input type="text" name="nickname" id="nickname" value="{$detail.nickname}" lay-verType="tips" lay-verify="nickname"
58
                                switch-tab="0" autocomplete="off" class="layui-input">
58
                                switch-tab="0" autocomplete="off" class="layui-input">
59
                     </div>
59
                     </div>
60
                 </div>
60
                 </div>
61
-                <div class="layui-form-item">
61
+                <div class="layui-form-item" style="display: none;">
62
                     <label for="mobile" class="layui-form-label"><span style="color:red;">*</span>联系手机:</label>
62
                     <label for="mobile" class="layui-form-label"><span style="color:red;">*</span>联系手机:</label>
63
                     <div class="layui-input-inline">
63
                     <div class="layui-input-inline">
64
                         <input type="number" name="mobile" id="mobile" value="{$detail.mobile}" lay-verType="tips" lay-verify="phone"
64
                         <input type="number" name="mobile" id="mobile" value="{$detail.mobile}" lay-verType="tips" lay-verify="phone"
65
                                switch-tab="0" autocomplete="off" class="layui-input">
65
                                switch-tab="0" autocomplete="off" class="layui-input">
66
                     </div>
66
                     </div>
67
                 </div>
67
                 </div>
68
-                <div class="layui-form-item">
68
+                <div class="layui-form-item" style="display: none;">
69
                     <label class="layui-form-label"><span style="color:red;">*</span>商家logo:</label>
69
                     <label class="layui-form-label"><span style="color:red;">*</span>商家logo:</label>
70
                     <div class="layui-input-inline">
70
                     <div class="layui-input-inline">
71
                         <div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
71
                         <div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
81
                             {/if}
81
                             {/if}
82
                         </div>
82
                         </div>
83
                     </div>
83
                     </div>
84
+                    <input type="hidden" name="logo" value="./uploads/images/20250221/202502211625593cc9c0131.png">
84
                 </div>
85
                 </div>
85
 
86
 
86
-                <div class="layui-form-item">
87
+                <div class="layui-form-item"  style="display: none;">
87
                     <label class="layui-form-label">商家地址:</label>
88
                     <label class="layui-form-label">商家地址:</label>
88
                     <div class="layui-input-block">
89
                     <div class="layui-input-block">
89
                         <div class="layui-input-inline" style="width:120px;">
90
                         <div class="layui-input-inline" style="width:120px;">
103
                         </div>
104
                         </div>
104
                     </div>
105
                     </div>
105
                 </div>
106
                 </div>
106
-                <div class="layui-form-item">
107
+                <div class="layui-form-item"  style="display: none;">
107
                     <label class="layui-form-label">地图定位:</label>
108
                     <label class="layui-form-label">地图定位:</label>
108
                     <div class="layui-input-block">
109
                     <div class="layui-input-block">
109
                         <div class="layui-inline" >
110
                         <div class="layui-inline" >
120
                         </div>
121
                         </div>
121
                     </div>
122
                     </div>
122
                 </div>
123
                 </div>
123
-                <div class="layui-form-item ">
124
+                <div class="layui-form-item " style="display: none;">
124
                     <label class="layui-form-label"></label>
125
                     <label class="layui-form-label"></label>
125
                     <div class="layui-input-block" style="margin-left:10px;">
126
                     <div class="layui-input-block" style="margin-left:10px;">
126
                         <div id="map-container" style="width: 700px;height: 400px;margin-left: 115px;"></div>
127
                         <div id="map-container" style="width: 700px;height: 400px;margin-left: 115px;"></div>
127
                     </div>
128
                     </div>
128
                 </div>
129
                 </div>
129
 
130
 
130
-                <div class="layui-form-item">
131
+                <div class="layui-form-item"  style="display: none;">
131
                     <label for="keywords" class="layui-form-label">商家关键字:</label>
132
                     <label for="keywords" class="layui-form-label">商家关键字:</label>
132
                     <div class="layui-input-inline">
133
                     <div class="layui-input-inline">
133
                         <input type="text" name="keywords" id="keywords" value="{$detail.keywords}" autocomplete="off" class="layui-input">
134
                         <input type="text" name="keywords" id="keywords" value="{$detail.keywords}" autocomplete="off" class="layui-input">
134
                     </div>
135
                     </div>
135
                 </div>
136
                 </div>
136
-                <div class="layui-form-item">
137
+                <div class="layui-form-item" style="display: none;">
137
                     <label for="intro" class="layui-form-label">商家简介:</label>
138
                     <label for="intro" class="layui-form-label">商家简介:</label>
138
                     <div class="layui-input-inline">
139
                     <div class="layui-input-inline">
139
                         <textarea name="intro" id="intro" class="layui-textarea">{$detail.intro}</textarea>
140
                         <textarea name="intro" id="intro" class="layui-textarea">{$detail.intro}</textarea>
150
                                switch-tab="1" autocomplete="off" class="layui-input">
151
                                switch-tab="1" autocomplete="off" class="layui-input">
151
                     </div>
152
                     </div>
152
                 </div>
153
                 </div>
153
-                <div class="layui-form-item">
154
+                <div class="layui-form-item" style="display: none;">
154
                     <label for="trade_service_fee" class="layui-form-label"><span style="color:red;">*</span>交易服务费:</label>
155
                     <label for="trade_service_fee" class="layui-form-label"><span style="color:red;">*</span>交易服务费:</label>
155
                     <div class="layui-input-inline">
156
                     <div class="layui-input-inline">
156
                         <input type="number" min="0" max="100" name="trade_service_fee" id="trade_service_fee" value="{$detail.trade_service_fee}"
157
                         <input type="number" min="0" max="100" name="trade_service_fee" id="trade_service_fee" value="{$detail.trade_service_fee}"
161
                     </div>
162
                     </div>
162
                     <div class="layui-form-mid layui-word-aux">%</div>
163
                     <div class="layui-form-mid layui-word-aux">%</div>
163
                 </div>
164
                 </div>
164
-                <div class="layui-form-item">
165
+                <div class="layui-form-item" style="display: none;">
165
                     <label for="expire_time" class="layui-form-label"><span style="color:red;">*</span>产品审核:</label>
166
                     <label for="expire_time" class="layui-form-label"><span style="color:red;">*</span>产品审核:</label>
166
                     <div class="layui-input-inline">
167
                     <div class="layui-input-inline">
167
                         <input type="radio" name="is_product_audit" value="1" title="需要审核" {if $detail.is_product_audit}checked{/if}>
168
                         <input type="radio" name="is_product_audit" value="1" title="需要审核" {if $detail.is_product_audit}checked{/if}>

+ 2
- 1
app/admin/view/shop/store/lists.html View File

168
             ,{field:"category", width:100, align:"center", title:"主营类目"}
168
             ,{field:"category", width:100, align:"center", title:"主营类目"}
169
             ,{field:"is_run", width:90, align:"center", title:"营业状态"}
169
             ,{field:"is_run", width:90, align:"center", title:"营业状态"}
170
             ,{field:"is_freeze", width:90, align:"center", title:"商家状态"}
170
             ,{field:"is_freeze", width:90, align:"center", title:"商家状态"}
171
-            ,{field:"is_recommend", width:90, align:"center", title:"推荐商家"}
171
+            //,{field:"is_recommend", width:90, align:"center", title:"推荐商家"}
172
+            ,{field:"hksy_count", width:90, align:"center", title:"评论次数"}
172
             ,{field:"create_time", width:160, align:"center", title:"开通日期"}
173
             ,{field:"create_time", width:160, align:"center", title:"开通日期"}
173
             ,{field:"expire_desc", width:160, align:"center", title:"到期状态"}
174
             ,{field:"expire_desc", width:160, align:"center", title:"到期状态"}
174
             ,{field:"expire_time", width:160, align:"center", title:"到期时间"}
175
             ,{field:"expire_time", width:160, align:"center", title:"到期时间"}

+ 3
- 3
app/admin/view/shop/store/set.html View File

7
 <div class="layui-card layui-form" style="box-shadow:none;">
7
 <div class="layui-card layui-form" style="box-shadow:none;">
8
 
8
 
9
     <div class="layui-card-body">
9
     <div class="layui-card-body">
10
-        <div class="layui-form-item">
10
+        <div class="layui-form-item" style="display: none;">
11
             <label class="layui-form-label">推荐商家:</label>
11
             <label class="layui-form-label">推荐商家:</label>
12
             <div class="layui-input-inline">
12
             <div class="layui-input-inline">
13
                 <input type="radio" name="is_recommend" value="1" title="是" {if $detail.is_recommend}checked{/if}>
13
                 <input type="radio" name="is_recommend" value="1" title="是" {if $detail.is_recommend}checked{/if}>
15
                 <div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">商城首页会显示推荐的商家</div>
15
                 <div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">商城首页会显示推荐的商家</div>
16
             </div>
16
             </div>
17
         </div>
17
         </div>
18
-        <div class="layui-form-item">
18
+        <div class="layui-form-item" style="display: none;">
19
             <label class="layui-form-label">分销功能:</label>
19
             <label class="layui-form-label">分销功能:</label>
20
             <div class="layui-input-inline">
20
             <div class="layui-input-inline">
21
                 <input type="radio" name="is_distribution" value="1" title="是" {if $detail.is_distribution}checked{/if}>
21
                 <input type="radio" name="is_distribution" value="1" title="是" {if $detail.is_distribution}checked{/if}>
23
                 <div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">开启或关闭分销功能,关闭后商家不参与分销推广</div>
23
                 <div class="layui-form-mid layui-word-aux" style="white-space:nowrap;">开启或关闭分销功能,关闭后商家不参与分销推广</div>
24
             </div>
24
             </div>
25
         </div>
25
         </div>
26
-        <div class="layui-form-item">
26
+        <div class="layui-form-item" style="display: none;">
27
             <label class="layui-form-label">支付功能:</label>
27
             <label class="layui-form-label">支付功能:</label>
28
             <div class="layui-input-inline">
28
             <div class="layui-input-inline">
29
                 <input type="radio" name="is_pay" value="1" title="开启" {if $detail.is_pay}checked{/if}>
29
                 <input type="radio" name="is_pay" value="1" title="开启" {if $detail.is_pay}checked{/if}>

+ 106
- 11
app/api/controller/ShopContent.php View File

21
 use app\common\basics\Api;
21
 use app\common\basics\Api;
22
 
22
 
23
 use app\common\model\shop\ShopGoods as shopGoodsModel;
23
 use app\common\model\shop\ShopGoods as shopGoodsModel;
24
-use app\common\model\shop\shop as shopModel;
24
+use app\common\model\shop\Shop as shopModel;
25
 
25
 
26
 use app\common\server\ConfigServer;
26
 use app\common\server\ConfigServer;
27
 use app\common\server\JsonServer;
27
 use app\common\server\JsonServer;
32
 
32
 
33
 class ShopContent extends Api
33
 class ShopContent extends Api
34
 {
34
 {
35
-    public $like_not_need_login = ['getShopInfo', 'getShopList','getNearbyShops','smsCode','getShopConfig','getXpath','getAppService','getRunNum'];
35
+    public $like_not_need_login = ['getShopInfo', 'getShopList','getNearbyShops','smsCode','getShopConfig','getXpath','getAppService','getRunNum','getShopConfig2','subHKSYCount'];
36
 
36
 
37
     /**
37
     /**
38
      * 店铺信息
38
      * 店铺信息
91
         }
91
         }
92
     }
92
     }
93
 
93
 
94
+
94
     /*
95
     /*
95
      * 验证秘钥
96
      * 验证秘钥
96
      *
97
      *
106
         $data = ShopContentLogic::codeInfo($code,$mcode);
107
         $data = ShopContentLogic::codeInfo($code,$mcode);
107
         if($data['status'] == 100){
108
         if($data['status'] == 100){
108
             //通过
109
             //通过
109
-            $respon = [];
110
+            $respon = [
111
+                    'is_gi' => $data['is_gi'], //是否到期  0未到期 或者 1 是到期(但评论数量存在>10条)
112
+                    'count' => $data['count']
113
+                ];
110
             return JsonServer::success($data['msg'], $respon);
114
             return JsonServer::success($data['msg'], $respon);
111
         }else{
115
         }else{
112
             //失败
116
             //失败
118
      * 获取配置
122
      * 获取配置
119
      * 拼接默认配置 + 设备配置
123
      * 拼接默认配置 + 设备配置
120
      * 需要加密
124
      * 需要加密
125
+     *  https://api.zx2049.com/api/shopContent/getShopConfig?code=7729c5e9779d9eb37c75a2715e332b29
121
      */
126
      */
122
     public function getShopConfig(){
127
     public function getShopConfig(){
123
         //判断是否存在默认配置
128
         //判断是否存在默认配置
143
             }
148
             }
144
             //存在手机设备
149
             //存在手机设备
145
             if(isset($mobile_list['ids'])){
150
             if(isset($mobile_list['ids'])){
151
+                //dump($mobile_list);die;
152
+                //var_dump($mobile_list['ids']);die;
153
+                //通过配置id 获取具体的配置
154
+                $json_data = ShopContentLogic::getMobileConfig($mobile_list['data'],$mobile_list['ids'],$mobile_list['ver']);
155
+            }
156
+            //直接使用默认配置
157
+            $json_data['default'] = $default_config['data'];
158
+
159
+            //data 针对
160
+            $key = 'ABCDEFGHIJKLMNOP'; //16位
161
+            $vi  = '0102030405060708'; //16位
162
+            $str = json_encode($json_data,JSON_UNESCAPED_UNICODE); //讲数组转为字符串
163
+            $sign = openssl_encrypt($str, 'AES-128-CBC', $key,  OPENSSL_RAW_DATA, $vi);
164
+            $sign = base64_encode($sign);
165
+
166
+            //先跳过加密
167
+            $res = [
168
+                'data' => $json_data
169
+            ];
170
+            return JsonServer::success($data['msg'], $res);
171
+        }
172
+    }
173
+
174
+
175
+    /*
176
+     * 加密数据的接口
177
+     * https://api.zx2049.com/api/shopContent/getShopConfig2?code=7729c5e9779d9eb37c75a2715e332b29
178
+     */
179
+    public function getShopConfig2(){
180
+        //判断是否存在默认配置
181
+        $code = request()->param('code'); //秘钥
182
+        $data = ShopContentLogic::getComputer($code);
183
+
184
+        //var_dump($data);
185
+
186
+        if($data['status'] !== 100){
187
+            //失败 直接报错
188
+            return JsonServer::error('请求错误-'.$data['msg']);
189
+        }else{
190
+            $json_data = [];
191
+            //通过 电脑设备信息 获取手机配置
192
+            $default_config = ShopContentLogic::getDefaultMobile($data['item']);
193
+            if($default_config['status'] !== 100){
194
+                return JsonServer::error('请求错误-'.$default_config['msg']);
195
+            }
196
+            //通过 电脑设备信息 获取手机信息
197
+            $mobile_list = ShopContentLogic::getMobile($data['item']);
198
+            if($mobile_list['status'] !== 100){
199
+                return JsonServer::error('请求错误-'.$mobile_list['msg']);
200
+            }
201
+            //存在手机设备
202
+            if(isset($mobile_list['ids'])){
203
+                //dump($mobile_list);die;
204
+                //var_dump($mobile_list['ids']);die;
146
                 //通过配置id 获取具体的配置
205
                 //通过配置id 获取具体的配置
147
                 $json_data = ShopContentLogic::getMobileConfig($mobile_list['data'],$mobile_list['ids'],$mobile_list['ver']);
206
                 $json_data = ShopContentLogic::getMobileConfig($mobile_list['data'],$mobile_list['ids'],$mobile_list['ver']);
148
             }
207
             }
155
             $str = json_encode($json_data,JSON_UNESCAPED_UNICODE); //讲数组转为字符串
214
             $str = json_encode($json_data,JSON_UNESCAPED_UNICODE); //讲数组转为字符串
156
             $sign = openssl_encrypt($str, 'AES-128-CBC', $key,  OPENSSL_RAW_DATA, $vi);
215
             $sign = openssl_encrypt($str, 'AES-128-CBC', $key,  OPENSSL_RAW_DATA, $vi);
157
             $sign = base64_encode($sign);
216
             $sign = base64_encode($sign);
217
+
218
+            //先跳过加密
158
             $res = [
219
             $res = [
159
                 'data' => $sign
220
                 'data' => $sign
160
             ];
221
             ];
162
         }
223
         }
163
     }
224
     }
164
 
225
 
226
+
165
     /*
227
     /*
166
      * xpath规则维护
228
      * xpath规则维护
167
      * 无需加密 获取到页无用
229
      * 无需加密 获取到页无用
230
+     * https://api.zx2049.com/api/shopContent/getXpath?app=xhs
168
      */
231
      */
169
     public function getXpath(){
232
     public function getXpath(){
170
 
233
 
215
         $shop_id = $data['shop_id'];
278
         $shop_id = $data['shop_id'];
216
         if((int)$shop_id > 0){
279
         if((int)$shop_id > 0){
217
             $config = [
280
             $config = [
218
-                'dingding_url' => ConfigServer::get('shop_app_service', 'dingding_url', '',$shop_id),
219
-                'dingding_pass' => ConfigServer::get('shop_app_service', 'dingding_pass', '',$shop_id),
220
-                'dingding_user' => ConfigServer::get('shop_app_service', 'dingding_user', '',$shop_id),
281
+                "dingding_url" => ConfigServer::get('shop_app_service', 'dingding_url', '',$shop_id),
282
+                "dingding_pass" => ConfigServer::get('shop_app_service', 'dingding_pass', '',$shop_id),
283
+                "dingding_user" => ConfigServer::get('shop_app_service', 'dingding_user', '',$shop_id)
221
             ];
284
             ];
222
 
285
 
223
             $key = 'ABCDEFGHIJKLMNOP'; //16位
286
             $key = 'ABCDEFGHIJKLMNOP'; //16位
225
             $str = json_encode($config,JSON_UNESCAPED_UNICODE);
288
             $str = json_encode($config,JSON_UNESCAPED_UNICODE);
226
             $sign = openssl_encrypt($str, 'AES-128-CBC', $key,  OPENSSL_RAW_DATA, $vi);
289
             $sign = openssl_encrypt($str, 'AES-128-CBC', $key,  OPENSSL_RAW_DATA, $vi);
227
             $sign = base64_encode($sign);
290
             $sign = base64_encode($sign);
291
+
228
             $res = [
292
             $res = [
229
-                'data' => $sign
293
+                'data' => $config
230
             ];
294
             ];
231
             //var_dump($sign);die();
295
             //var_dump($sign);die();
232
 
296
 
239
 
303
 
240
     /*
304
     /*
241
      * 通过 code 获取 可同时运行数量
305
      * 通过 code 获取 可同时运行数量
242
-     *  http://shop.zx10000.com/api/shopcontent/getRunNum
306
+     *  https://api.zx2049.com/api/shopContent/getRunNum?code=7729c5e9779d9eb37c75a2715e332b29
243
      */
307
      */
244
 
308
 
245
     public function getRunNum()
309
     public function getRunNum()
278
         }
342
         }
279
     }
343
     }
280
 
344
 
281
-    /*
282
-     *
345
+    /**
346
+     * 查询获客剩余数量
347
+     * 暂时弃用
348
+     */
349
+    public function getHKSYCount() {
350
+        if ($this->request->isGet()) {
351
+            $get = $this->request->get();
352
+            $data = ShopContentLogic::getHKSYCount($get);
353
+            if ($data === false) {
354
+                return JsonServer::error(ShopContentLogic::getError(), ['err_code' => ShopContentLogic::getErrCode()]);
355
+            }
356
+
357
+            return JsonServer::success('', $data);
358
+        }
359
+
360
+        return JsonServer::error('请求方式错误', ['err_code' => 10001]);
361
+    }
362
+
363
+    /**
364
+     * 减少获客剩余数量
365
+     * subHKSYCount
283
      */
366
      */
367
+    public function subHKSYCount() {
284
 
368
 
285
-}
369
+        if ($this->request->isPost()) {
370
+            $post = $this->request->post();
371
+            $count = ShopContentLogic::subHKSYCount($post);
372
+            if ($count === false) {
373
+               return JsonServer::error(ShopContentLogic::getError(), ['err_code' => ShopContentLogic::getErrCode()]);
374
+            }
375
+            return JsonServer::success('操作成功', ['count' => $count]);
376
+        }
377
+
378
+        return JsonServer::error('请求方式错误', ['err_code' => 10001]);
379
+    }
380
+}

+ 277
- 16
app/api/logic/ShopContentLogic.php View File

10
 use app\common\logic\QrCodeLogic;
10
 use app\common\logic\QrCodeLogic;
11
 
11
 
12
 use app\common\model\dev\DevRegion;
12
 use app\common\model\dev\DevRegion;
13
+use app\common\model\shop\Shop as shopModel;
13
 use app\common\model\shop\ShopAd;
14
 use app\common\model\shop\ShopAd;
14
 
15
 
15
 use app\common\model\shop\ShopGoods as shopGoodsModel;
16
 use app\common\model\shop\ShopGoods as shopGoodsModel;
23
 use app\common\model\content\ClosureCategory;
24
 use app\common\model\content\ClosureCategory;
24
 use app\common\model\content\Closure;
25
 use app\common\model\content\Closure;
25
 
26
 
26
-use app\common\model\shop\Shop as shopModel;
27
 use app\common\model\content\EquiCategory as EquiCategoryModel;
27
 use app\common\model\content\EquiCategory as EquiCategoryModel;
28
-
28
+use app\common\model\shop\ShopHkLog;
29
+use think\facade\Db;
29
 use think\facade\Event;
30
 use think\facade\Event;
30
 
31
 
31
 
32
 
32
 
33
 
33
 class ShopContentLogic extends Logic
34
 class ShopContentLogic extends Logic
34
 {
35
 {
36
+
35
     /*
37
     /*
36
      * 获取机器秘钥
38
      * 获取机器秘钥
37
      */
39
      */
55
 
57
 
56
         //判断商家服务
58
         //判断商家服务
57
         if(!empty($item)) {
59
         if(!empty($item)) {
58
-            $expire_time = shopModel::where('id', $item['shop_id'])->value('expire_time');
60
+
61
+            //判断商户
62
+            $shop = shopModel::where('id', $item['shop_id'])->find();
63
+            if(empty($shop)){
64
+                $data = [
65
+                    'status' => 110,
66
+                    'msg' => "商户信息不存在!"
67
+                ];
68
+                return $data;
69
+            }
70
+
71
+            //不需要转数组
72
+            //echo $shop['id'];
73
+            //$shop = $shop->toArray();
74
+            //var_dump($shop);die;
75
+
76
+            //判断 商家状态 is_freeze
77
+            if((int)$shop['is_freeze'] === 1){
78
+                $data = [
79
+                    'status' => 111,
80
+                    'msg' => "商家冻结中!"
81
+                ];
82
+                return $data;
83
+            }
84
+
85
+            //判断 营业状态  is_run
86
+            if((int)$shop['is_run'] === 0){
87
+                $data = [
88
+                    'status' => 112,
89
+                    'msg' => "商家暂停营业中!"
90
+                ];
91
+                return $data;
92
+            }
93
+
94
+            //模型调用出来的 与 直接查询字段出来的值 不一样
95
+            $expire_time = strtotime($shop['expire_time']);
59
             //dump($expire_time);
96
             //dump($expire_time);
97
+            //echo $expire_time;die;
98
+
60
             if($expire_time < time()){
99
             if($expire_time < time()){
100
+                //判断到期时间
61
                 $data = [
101
                 $data = [
62
                    'status' => 107,
102
                    'status' => 107,
63
                    'msg' => "商户服务当前套餐到期,到期时间".date('Y-m-d H:i:s',$expire_time)."!"
103
                    'msg' => "商户服务当前套餐到期,到期时间".date('Y-m-d H:i:s',$expire_time)."!"
64
                 ];
104
                 ];
65
-                return $data;
105
+                //判断剩余数量  hksy_count  当商家已到期
106
+                if((int)$shop['hksy_count'] < 10){
107
+                    //判断到期时间
108
+                    $data = [
109
+                        'status' => 113,
110
+                        'msg' => "商户服务可评论次数不足,剩余".$shop['hksy_count']."条,请充值后再使用 或 开通商户包年包月服务!"
111
+                    ];
112
+                    return $data;
113
+                }
114
+                //可评论次数大于10 即使到期 也继续执行
115
+                $is_gi = 1;
116
+            }else{
117
+                $is_gi = 0;
66
             }
118
             }
119
+            //未到期 不需要扣次数 继续执行即可
67
         }
120
         }
68
 
121
 
69
         if(empty($item))
122
         if(empty($item))
92
                 if ($row == 1) {
145
                 if ($row == 1) {
93
                     $data = [
146
                     $data = [
94
                         'status' => 100,
147
                         'status' => 100,
95
-                        'msg' => "绑定机器码成功!"
148
+                        'msg' => "绑定机器码成功!",
149
+                        'is_gi' => $is_gi,
150
+                        'count' => $shop['hksy_count']
96
                     ];
151
                     ];
97
                 } else {
152
                 } else {
98
                     $data = [
153
                     $data = [
112
                     'msg' => "超出套餐服务电脑数量!"
167
                     'msg' => "超出套餐服务电脑数量!"
113
                 ];
168
                 ];
114
             }else {
169
             }else {
170
+
171
+                //var_dump($mcode);
172
+                //var_dump($item['machine_code']);
115
                 //机器码已存在
173
                 //机器码已存在
116
                 if($item['machine_code'] != $mcode){
174
                 if($item['machine_code'] != $mcode){
117
                     //机器码不一致
175
                     //机器码不一致
122
                 }else{
180
                 }else{
123
                     $data = [
181
                     $data = [
124
                         'status' => 100,
182
                         'status' => 100,
125
-                        'msg' => "已绑定该机器码!"
183
+                        'msg' => "已绑定该机器码!",
184
+                        'is_gi' => $is_gi,
185
+                        'count' => $shop['hksy_count']
126
                     ];
186
                     ];
127
                 }
187
                 }
128
             }
188
             }
161
         ];
221
         ];
162
         $code_list = EquiCategoryModel::where($where)->order('id asc')->limit($count_pc)->column('code');
222
         $code_list = EquiCategoryModel::where($where)->order('id asc')->limit($count_pc)->column('code');
163
 
223
 
224
+        //var_dump($code);
225
+
164
         if(in_array($code,$code_list)){
226
         if(in_array($code,$code_list)){
165
             return true;
227
             return true;
166
         }
228
         }
187
         ];
249
         ];
188
         $item = EquiCategoryModel::where($where)->find();
250
         $item = EquiCategoryModel::where($where)->find();
189
 
251
 
252
+
190
         if(empty($item))
253
         if(empty($item))
191
         {
254
         {
192
             $data = [
255
             $data = [
244
                                 'msg' => "存在默认配置!",
307
                                 'msg' => "存在默认配置!",
245
                                 'data' => json_decode($item['json_data'],true)
308
                                 'data' => json_decode($item['json_data'],true)
246
                             ];
309
                             ];
247
-                            $data['data']['版本号'] = $v['ver'];
310
+                            $data['data']['ver'] = $v['ver'];
248
                         }
311
                         }
249
                     }
312
                     }
250
                 }
313
                 }
280
         }
343
         }
281
 
344
 
282
         //只调用允许数量 按id排序即可  后台不可更改排序
345
         //只调用允许数量 按id排序即可  后台不可更改排序
283
-        $list = EquiCategoryModel::where(['pid'=>$data['id'],'is_show'=>1,'del'=>0])
346
+        $list = EquiCategoryModel::where(['pid'=>$data['id'],'is_show'=>1,'del'=>0,'is_user'=>1])
284
             ->order('id asc')
347
             ->order('id asc')
285
-            ->limit($count_mobile)
348
+            ->limit($count_run)
286
             ->select();
349
             ->select();
287
 
350
 
288
         if(empty($list)){
351
         if(empty($list)){
304
             }else{
367
             }else{
305
                 $pz_list = [];
368
                 $pz_list = [];
306
                 $ids = [];
369
                 $ids = [];
370
+
371
+                //dump($list->toArray());die;
372
+
307
                 foreach ($list as $k=>$v){
373
                 foreach ($list as $k=>$v){
308
                     //没有配置指定 就使用默认的配置
374
                     //没有配置指定 就使用默认的配置
309
                     if(!empty($v['pz'])){
375
                     if(!empty($v['pz'])){
311
                         foreach ($pz as $kk=>$vv){
377
                         foreach ($pz as $kk=>$vv){
312
                             //小红书
378
                             //小红书
313
                             if((int)$vv['cid'] === (int)$app_id){
379
                             if((int)$vv['cid'] === (int)$app_id){
314
-                                $pz_list[(int)$vv['val']] = $v['name'];
380
+                                $pz_list[] = $v['name'];
315
                                 $ids[] = $vv['val'];
381
                                 $ids[] = $vv['val'];
316
-                                $ver[(int)$vv['val']] = $vv['ver']; //版本号
382
+                                $ver[] = $vv['ver']; //版本号
317
                             }
383
                             }
318
                         }
384
                         }
319
                     }
385
                     }
345
         $res = [];
411
         $res = [];
346
         if(!empty($ids)){
412
         if(!empty($ids)){
347
             $list = Closure::where('id','in',$ids)->select();
413
             $list = Closure::where('id','in',$ids)->select();
348
-            foreach ($list as $k=>$v){
414
+
415
+            //用配置id 作 key 如果配置id相同 就会覆盖
416
+            /* foreach ($list as $k=>$v){
349
                 if(!empty($v['json_data'])){
417
                 if(!empty($v['json_data'])){
350
                     $res[$data[(int)$v['id']]] = json_decode($v['json_data'],true);
418
                     $res[$data[(int)$v['id']]] = json_decode($v['json_data'],true);
351
                     $res[$data[(int)$v['id']]]['ver'] = $ver[(int)$v['id']]; //追加版本号
419
                     $res[$data[(int)$v['id']]]['ver'] = $ver[(int)$v['id']]; //追加版本号
352
                 }
420
                 }
421
+            }*/
422
+
423
+            //重写
424
+            $pz_list = [];
425
+            foreach ($list as $k=>$v){
426
+                if(!empty($v['json_data'])) {
427
+                    $pz_list[$v['id']] = $v;
428
+                }
429
+            }
430
+
431
+            foreach ($ids as $k=>$v){
432
+                if(!empty($pz_list[$v])){
433
+                    $res[$data[$k]] = json_decode($pz_list[$v]['json_data'],true);
434
+                    $res[$data[$k]]['ver'] = $ver[$k]; //追加版本号
435
+                }
353
             }
436
             }
437
+
354
         }
438
         }
355
         return $res;
439
         return $res;
356
     }
440
     }
613
         $data = [
697
         $data = [
614
             '默认' => '',
698
             '默认' => '',
615
             "搜索列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.FrameLayout[@class="android.widget.FrameLayout"]/android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.TextView[@class="android.widget.TextView" and @text!=""]',
699
             "搜索列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.FrameLayout[@class="android.widget.FrameLayout"]/android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.TextView[@class="android.widget.TextView" and @text!=""]',
616
-            "推荐列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.FrameLayout[@class="android.widget.FrameLayout" and @content-desc!=""]',
617
-            '推荐列表元素' => '//android.widget.FrameLayout[@content-desc="变量1"]',
700
+            "推荐列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.LinearLayout[@class="android.widget.LinearLayout" and @content-desc!=""]',
701
+            '推荐列表元素' => '//android.widget.LinearLayout[@content-desc="变量1"]',
618
             '搜索列表元素' => '//android.widget.TextView[@text="变量1"]',
702
             '搜索列表元素' => '//android.widget.TextView[@text="变量1"]',
619
             "私信发送按钮" => '//android.view.ViewGroup[@class="android.view.ViewGroup"]/android.widget.TextView[contains(@text,"发送")]',
703
             "私信发送按钮" => '//android.view.ViewGroup[@class="android.view.ViewGroup"]/android.widget.TextView[contains(@text,"发送")]',
620
             '判断当前是否视频' => '//android.view.ViewGroup[@class="android.view.ViewGroup"]/android.widget.Button[@content-desc="分享"]',
704
             '判断当前是否视频' => '//android.view.ViewGroup[@class="android.view.ViewGroup"]/android.widget.Button[@content-desc="分享"]',
636
     }
720
     }
637
     public static function getXhsAppuim_1()
721
     public static function getXhsAppuim_1()
638
     {
722
     {
723
+        //相对位置   /parent::*[1]/
724
+        //p推荐页  p搜索页 p搜索列表页_1 p搜索列表页_2 p图文页 p视频页 p旧版视频页 p用户主页 p私信页
639
         $data = [
725
         $data = [
640
             "默认" => '',
726
             "默认" => '',
727
+            //页面唯一标识 start
728
+            "p推荐页" => '//android.view.ViewGroup[@class="android.view.ViewGroup" and @index="0"]/android.widget.RelativeLayout[@class="android.widget.RelativeLayout" and @index="2" and @content-desc="发布"]',
729
+            "p搜索页" => '//android.widget.LinearLayout[@class="android.widget.LinearLayout"]/android.widget.ImageView[@class="android.widget.ImageView" and @content-desc="拍照搜索"]',
730
+            "p搜索列表页_1" => '//android.widget.Button[@class="android.widget.Button"]/android.widget.TextView[@text="筛选"]',
731
+            "p搜索列表页_2" => '//android.widget.TextView[@class="android.widget.TextView" and @text="全部"]/parent::*[1]/android.widget.ImageView[@class="android.widget.ImageView"]',
732
+            "p图文页" => '//android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.Button[@content-desc="分享"]',
733
+            "p视频页" => '//android.view.ViewGroup[@class="android.view.ViewGroup"]//android.widget.ImageView[@class="android.widget.ImageView" and @content-desc="搜索"]',
734
+            "p旧版视频页" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]//android.view.ViewGroup[@class="android.view.ViewGroup"]//android.widget.ImageView[@class="android.widget.ImageView" and @index="5"]',
735
+            "p用户主页" => '//android.widget.LinearLayout[@class="android.widget.LinearLayout"]/android.widget.TextView[contains(@text,"小红书号")]',
736
+            "p私信页" => '//android.widget.FrameLayout[@class="android.widget.FrameLayout"]/android.widget.EditText[@class="android.widget.EditText"]',
737
+            //页面唯一标识 end
738
+            //页面多版本 start
641
             "搜索列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.FrameLayout[@class="android.widget.FrameLayout"]/android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.TextView[@class="android.widget.TextView" and @text!=""]',
739
             "搜索列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.FrameLayout[@class="android.widget.FrameLayout"]/android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.TextView[@class="android.widget.TextView" and @text!=""]',
642
-            "推荐列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.LinearLayout[@class="android.widget.LinearLayout" and @content-desc!=""]',
643
-            '推荐列表元素' => '//android.widget.LinearLayout[@content-desc="变量1"]',
740
+            "推荐列表" => '//androidx.recyclerview.widget.RecyclerView[@class="androidx.recyclerview.widget.RecyclerView"]/android.widget.FrameLayout[@class="android.widget.FrameLayout" and @content-desc!=""]',
741
+            '推荐列表元素' => '//android.widget.FrameLayout[@content-desc="变量1"]',
644
             '搜索列表元素' => '//android.widget.TextView[@text="变量1"]',
742
             '搜索列表元素' => '//android.widget.TextView[@text="变量1"]',
645
             "私信发送按钮" => '//android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.TextView[contains(@text,"发送")]',
743
             "私信发送按钮" => '//android.widget.RelativeLayout[@class="android.widget.RelativeLayout"]/android.widget.TextView[contains(@text,"发送")]',
646
             '判断当前是否视频' => '//android.widget.FrameLayout[@class="android.widget.FrameLayout" and @index="1"]/android.widget.LinearLayout[@index="0"]/android.widget.LinearLayout[@index="3"]/android.widget.TextView[@class="android.widget.TextView"]',
744
             '判断当前是否视频' => '//android.widget.FrameLayout[@class="android.widget.FrameLayout" and @index="1"]/android.widget.LinearLayout[@index="0"]/android.widget.LinearLayout[@index="3"]/android.widget.TextView[@class="android.widget.TextView"]',
650
             "视频获取点赞按钮" => '//android.widget.FrameLayout[@class="android.widget.FrameLayout" and @index="1"]/android.widget.LinearLayout[@index="0"]/android.widget.LinearLayout[@index="0"]/android.widget.TextView[@class="android.widget.TextView"]',
748
             "视频获取点赞按钮" => '//android.widget.FrameLayout[@class="android.widget.FrameLayout" and @index="1"]/android.widget.LinearLayout[@index="0"]/android.widget.LinearLayout[@index="0"]/android.widget.TextView[@class="android.widget.TextView"]',
651
             "视频获取收藏按钮" => '//android.widget.FrameLayout[@class="android.widget.FrameLayout" and @index="1"]/android.widget.LinearLayout[@index="0"]/android.widget.LinearLayout[@index="2"]/android.widget.TextView[@class="android.widget.TextView"]',
749
             "视频获取收藏按钮" => '//android.widget.FrameLayout[@class="android.widget.FrameLayout" and @index="1"]/android.widget.LinearLayout[@index="0"]/android.widget.LinearLayout[@index="2"]/android.widget.TextView[@class="android.widget.TextView"]',
652
             "视频详情返回按钮" => '//android.view.ViewGroup[@class="android.view.ViewGroup"]/android.widget.ImageView[contains(@content-desc,"返回")]'
750
             "视频详情返回按钮" => '//android.view.ViewGroup[@class="android.view.ViewGroup"]/android.widget.ImageView[contains(@content-desc,"返回")]'
751
+            //页面多版本 end
653
         ];
752
         ];
654
         return $data;
753
         return $data;
655
     }
754
     }
661
         return $data;
760
         return $data;
662
     }
761
     }
663
 
762
 
763
+    /**
764
+     * 加密 ZMH 2025-03-18
765
+     * @param $data
766
+     * @return bool|string
767
+     */
768
+    public static function encrypt($data)
769
+    {
770
+        $key = 'ABCDEFGHIJKLMNOP'; //16位
771
+        $vi  = '0102030405060708'; //16位
772
+        if (is_array($data)) {
773
+            $str = json_encode($data,JSON_UNESCAPED_UNICODE); //讲数组转为字符串
774
+        } else if (is_string($data)) {
775
+            $str = $data;
776
+        } else {
777
+            return false;
778
+        }
779
+
780
+        $sign = openssl_encrypt($str, 'AES-128-CBC', $key,  OPENSSL_RAW_DATA, $vi);
781
+        $sign = base64_encode($sign);
782
+        return $sign;
783
+    }
784
+
785
+    /**
786
+     * 获取商家信息 ZMH 2025-03-18
787
+     * @param $code
788
+     * @return model|bool
789
+     */
790
+    public static function getShopByCode($code)
791
+    {
792
+        if (empty($code)) {
793
+            self::$error = "设备编码不能为空";
794
+            self::$errCode = 2;
795
+            return false;
796
+        }
797
+
798
+        $where = [
799
+            "del" => 0,
800
+            "is_show" => 1,
801
+            "pid" => 0, //必须是电脑
802
+            "code" => $code
803
+        ];
804
+        $item = EquiCategoryModel::where($where)->find();
805
+        if (empty($item)) {
806
+            self::$error = "没有找到对应的设备";
807
+            self::$errCode = 3;
808
+            return false;
809
+        }
810
+
811
+        $shop = ShopModel::where("id", $item["shop_id"])->find();
812
+        if (empty($shop)) {
813
+            self::$error = "用户信息不存在";
814
+            self::$errCode = 4;
815
+            return false;
816
+        }
817
+
818
+        return $shop;
819
+    }
820
+
821
+    /**
822
+     * 获取剩余数量  ZMH 2025-03-18
823
+     * @param $get
824
+     * @return bool|array
825
+     */
826
+    public static function getHKSYCount($get) {
827
+        $code = $get["code"] ?? '';
828
+        $shop = self::getShopByCode($code);
829
+        if (empty($shop)) {
830
+            return false;
831
+        }
664
 
832
 
833
+        return ['count' => $shop->hksy_count, 'expire_time' => $shop->expire_time];
834
+    }
835
+
836
+    /**
837
+     * 扣减剩余数量  ZMH 2025-03-18
838
+     * @param $get
839
+     * @return bool|number
840
+     */
841
+    public static function subHKSYCount($post) {
842
+        $code = $post["code"] ?? '';
843
+        $mcode = $post["mcode"] ?? '0000';
844
+
845
+        //$count = $post["count"] ?? 1; //默认就是1
846
+        $count = 1;
847
+        $remark = $post["remark"] ?? '';
848
+
849
+        if ($count <= 0 || empty($remark) || empty($mcode)) {
850
+            self::$errCode = 1;
851
+            self::$error = "参数错误";
852
+            return false;
853
+        }
854
+
855
+        //没有必要验证机器码 后续需要对接口进行加密传输,解密操作,验证来源 防篡改,使用token也不安全,秘钥和机器码和token都会暴露;
856
+        /*$where001 = [
857
+            "del" => 0,
858
+            "is_show" => 1,
859
+            "pid" => 0, //必须是电脑
860
+            "code" => $code
861
+        ];
862
+        $item = EquiCategoryModel::where($where001)->find();*/
863
+
864
+        $shop = self::getShopByCode($code);
865
+        if (empty($shop)) {
866
+            self::$errCode = 9;
867
+            self::$error = "商家不存在";
868
+            return false;
869
+        }
870
+
871
+        if((int)$shop->is_freeze === 1){
872
+            self::$errCode = 7;
873
+            self::$error = "商家冻结中";
874
+            return false;
875
+        }
876
+
877
+        //判断 营业状态  is_run
878
+        if((int)$shop->is_run === 0){
879
+            self::$errCode = 8;
880
+            self::$error = "商家暂停营业中";
881
+            return false;
882
+        }
883
+
884
+        // 判断是否过期
885
+        $expire_time = $shop->expire_time;
886
+        //echo $expire_time;die;
887
+        $expire_time = strtotime($expire_time);
888
+        if (time() < $expire_time) {
889
+            //未过期 不进行扣除
890
+           return true;
891
+        }
892
+
893
+        if ($shop->hksy_count < $count) {
894
+            self::$errCode = 5;
895
+            self::$error = "剩余数量不足";
896
+            return false;
897
+        }
898
+
899
+        Db::startTrans();
900
+        try {
901
+            //code...
902
+            $old_hksy_count = $shop->hksy_count;
903
+            $shop->hksy_count = $shop->hksy_count - $count;
904
+            $shop->save();
905
+            // 添加数量记录
906
+            $hk = new ShopHkLog();
907
+            $hk->shop_id = $shop['id'];
908
+            $hk->source_type = 101;
909
+            $hk->change_count = 0 - $count;
910
+            $hk->left_count = $shop->hksy_count;
911
+            $hk->remark = $remark;
912
+
913
+            $hk->save();
914
+
915
+            Db::commit();
916
+        } catch (\Throwable $th) {
917
+            //throw $th;
918
+            Db::rollback();
919
+            self::$errCode = 6;
920
+            self::$error = "扣除失败";
921
+            return false;
922
+        }
923
+
924
+        return $shop->hksy_count;
925
+    }
665
 }
926
 }

+ 7
- 0
app/common/basics/Logic.php View File

43
     {
43
     {
44
         return self::$error;
44
         return self::$error;
45
     }
45
     }
46
+
47
+    // 错误码 ZMH 2025-03-18
48
+    protected static $errCode = 0;
49
+    public static function getErrCode()
50
+    {
51
+        return self::$errCode;
52
+    }
46
 }
53
 }

+ 58
- 3
app/common/model/content/Closure.php View File

42
         return $content;
42
         return $content;
43
     }
43
     }
44
 
44
 
45
+    private function replaceContent($content)
46
+    {
47
+        // 替换空格
48
+        $content = preg_replace("/\s+/", "", $content);
49
+        // var_dump(111, $content);
50
+        str_replace("|", '|', $content);
51
+        $arr = explode('|', $content);
52
+        $arr = array_filter($arr);
53
+        return implode('|', $arr);
54
+    }
55
+
56
+    private function replaceContent2($content)
57
+    {
58
+        // 替换空格
59
+        $content = preg_replace("/\s+/", "", $content);
60
+        // str_replace("-", '-', $content);
61
+        $arr = explode('-', $content);
62
+        $arr = array_filter($arr);
63
+        if (count($arr) > 3) {
64
+            throw new \Exception('匹配词不能超过3个');
65
+        }
66
+
67
+        if (count($arr) <= 0) {
68
+            throw new \Exception('匹配词选项填写错误');
69
+        }
70
+
71
+        return implode('-', $arr);
72
+    }
73
+
45
     /*
74
     /*
46
      * 处理表达数据
75
      * 处理表达数据
47
      */
76
      */
48
     public function postDataHandle($post=[]){
77
     public function postDataHandle($post=[]){
78
+
79
+        //处理操作总数
80
+        $post['a3'] = $post['a2'] ?? 0;
81
+        $post['a3'] = intval($post['a3'] / 10);
82
+
83
+        // var_dump(123, $post['b3']);
84
+        $post['b3'] = $this->replaceContent($post['b3']);
85
+        // var_dump(456, $post['b3']);
86
+        // return true;
87
+
88
+        $post['a7'] = $this->replaceContent($post['a7']);
89
+        $post['e7'] = $this->replaceContent($post['e7']);
90
+        $post['f10'] = $this->replaceContent($post['f10']);
91
+        $post['f11'] = $this->replaceContent($post['f11']);
92
+        $post['f12'] = $this->replaceContent($post['f12']);
93
+        $post['f13'] = $this->replaceContent($post['f13']);
94
+        $post['f14'] = $this->replaceContent($post['f14']);
95
+        $post['f15'] = $this->replaceContent($post['f15']);
96
+        $post['f17'] = $this->replaceContent($post['f17']);
97
+        $post['f19'] = $this->replaceContent($post['f19']);
98
+        $post['f20'] = $this->replaceContent($post['f20']);
99
+        $post['f24'] = $this->replaceContent($post['f24']);
100
+        $post['k6'] = $this->replaceContent($post['k6']);
101
+
49
         //处理b2
102
         //处理b2
50
         $str = [];
103
         $str = [];
51
         foreach ($post['b2_1'] as $k => $v) {
104
         foreach ($post['b2_1'] as $k => $v) {
52
             if(!empty($v)) {
105
             if(!empty($v)) {
106
+                $v_str = $this->replaceContent2($v);
53
                 $str[] = $v . '_' . $post['b2_2'][$k] . '-' . $post['b2_3'][$k] . '-' . $post['b2_4'][$k];
107
                 $str[] = $v . '_' . $post['b2_2'][$k] . '-' . $post['b2_3'][$k] . '-' . $post['b2_4'][$k];
54
             }
108
             }
55
         }
109
         }
166
         $str7 = [];
220
         $str7 = [];
167
         foreach ($post['f21_1'] as $k => $v) {
221
         foreach ($post['f21_1'] as $k => $v) {
168
             if(!empty($v)) {
222
             if(!empty($v)) {
169
-                $str7[$v] = $post['f21_2'][$k];
223
+                $str7[$v] = $this->replaceContent($post['f21_2'][$k]);
170
             }
224
             }
171
         }
225
         }
172
 
226
 
174
         $str8 = [];
228
         $str8 = [];
175
         foreach ($post['f25_1'] as $k => $v) {
229
         foreach ($post['f25_1'] as $k => $v) {
176
             if(!empty($v)) {
230
             if(!empty($v)) {
177
-                $str8[$v] = $post['f25_2'][$k];
231
+                $str8[$v] = $this->replaceContent($post['f25_2'][$k]);
178
             }
232
             }
179
         }
233
         }
180
 
234
 
304
             "评论钩子内容" =>  $post['k6']
358
             "评论钩子内容" =>  $post['k6']
305
 
359
 
306
         ];
360
         ];
307
-        return $json;
361
+
362
+        return [$json, $post];
308
     }
363
     }
309
 }
364
 }

+ 15
- 0
app/common/model/shop/OrderRenew.php View File

1
+<?php
2
+/*
3
+ * @Author: xiaohai zmhwork@qq.com
4
+ * @Date: 2025-03-14 16:47:53
5
+ * @LastEditors: xiaohai zmhwork@qq.com
6
+ * @LastEditTime: 2025-03-14 17:19:06
7
+ * @FilePath: \opkpm\app\common\model\shop\OrderRenew.php
8
+ * @Description: 续费订单
9
+ */
10
+
11
+namespace app\common\model\shop;
12
+
13
+use app\common\basics\Models;
14
+
15
+class OrderRenew extends Models {}

+ 22
- 0
app/common/model/shop/ShopGoodsRenew.php View File

1
+<?php
2
+/*
3
+ * @Author: ZMH
4
+ * @Email: zmhwork@qq.com
5
+ * @Date: 2025-03-13 15:09:37
6
+ * @LastEditTime: 2025-03-13 15:14:52
7
+ * @LastEditors: ZMH
8
+ * @FilePath: \opkpm\app\common\model\shop\ShopGoodsRenew.php
9
+ * 
10
+ * @Description: 续费套餐
11
+ */
12
+
13
+
14
+namespace app\common\model\shop;
15
+
16
+
17
+use app\common\basics\Models;
18
+
19
+
20
+class ShopGoodsRenew extends Models {
21
+    
22
+}

+ 15
- 0
app/common/model/shop/ShopHkLog.php View File

1
+<?php
2
+/*
3
+ * @Author: xiaohai zmhwork@qq.com
4
+ * @Date: 2025-03-17 15:56:14
5
+ * @LastEditors: xiaohai zmhwork@qq.com
6
+ * @LastEditTime: 2025-03-17 15:56:26
7
+ * @FilePath: \opkpm\app\common\model\shop\ShopHkLog.php
8
+ * @Description: 获客记录
9
+ */
10
+
11
+namespace app\common\model\shop;
12
+
13
+use app\common\basics\Models;
14
+
15
+class ShopHkLog extends Models {}

+ 59
- 1
app/shop/controller/Index.php View File

25
 use app\common\model\shop\ShopRole;
25
 use app\common\model\shop\ShopRole;
26
 use app\common\server\ConfigServer;
26
 use app\common\server\ConfigServer;
27
 use app\common\server\JsonServer;
27
 use app\common\server\JsonServer;
28
+use app\shop\logic\content\ClosureCategoryLogic;
29
+use app\shop\logic\content\EquiCategoryLogic;
30
+use app\shop\logic\content\ClosureLogic;
31
+use app\shop\logic\content\IndustryCategoryLogic;
28
 use app\shop\logic\index\StatLogic;
32
 use app\shop\logic\index\StatLogic;
29
 use app\shop\server\MenuServer;
33
 use app\shop\server\MenuServer;
30
 use think\facade\Config;
34
 use think\facade\Config;
60
         if($this->request->isAjax()){
64
         if($this->request->isAjax()){
61
             return JsonServer::success('', StatLogic::graphData($this->shop_id));
65
             return JsonServer::success('', StatLogic::graphData($this->shop_id));
62
         }
66
         }
67
+
68
+
69
+        /*
70
+         * 判断站点是否存在
71
+         * 只能用js
72
+         */
73
+        /*$url = "http://localhost/?time=".time();
74
+        $res = file_get_contents($url);
75
+        dump($res);
76
+        $is_inPage = 1;
77
+        if (strpos($res,"没有找到站点") !== false) {
78
+            $is_inPage = 0;
79
+        }*/
80
+        $is_inPage = 1;
81
+
82
+        /*
83
+         * 执行初始化操作
84
+         */
85
+
86
+        //行业分类
87
+        $shop_id = $this->shop_id;
88
+        IndustryCategoryLogic::insertDefault($shop_id);
89
+        //应用分类
90
+        ClosureCategoryLogic::insertDefault($shop_id);
91
+        //初始化一个默认配置
92
+        ClosureLogic::insertDefault($shop_id);
93
+        //初始化设备
94
+        EquiCategoryLogic::insertDefault($shop_id);
95
+
96
+
63
         return view('', [
97
         return view('', [
64
-            'res' => StatLogic::stat($this->shop_id)
98
+            'res' => StatLogic::stat($this->shop_id),
99
+            "is_in_page" => $is_inPage,
65
         ]);
100
         ]);
66
     }
101
     }
102
+
103
+    /**
104
+     * 检测网址连接是否可用
105
+     **/
106
+    public function check_url($url){
107
+        $httpcode = 0;
108
+        $ch = curl_init();
109
+        $timeout = 1; // 设置超时的时间[单位:秒]
110
+        curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
111
+        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
112
+        curl_setopt($ch, CURLOPT_HEADER, 1);
113
+        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
114
+        curl_setopt($ch,CURLOPT_URL,$url);
115
+        curl_exec($ch);
116
+        # 获取状态码赋值
117
+        $httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
118
+        curl_close($ch);
119
+        if($httpcode == 200){
120
+            return true;
121
+        }else{
122
+            return false;
123
+        }
124
+    }
67
     
125
     
68
     /**
126
     /**
69
      * 工作台商品数据
127
      * 工作台商品数据

+ 1
- 3
app/shop/controller/content/Closure.php View File

33
 
33
 
34
             $post = $this->request->post();
34
             $post = $this->request->post();
35
             $post['shop_id'] = $this->shop_id;
35
             $post['shop_id'] = $this->shop_id;
36
-
37
             (new ClosureValidate())->goCheck('add',$post);
36
             (new ClosureValidate())->goCheck('add',$post);
38
             $res = ClosureLogic::add($post);
37
             $res = ClosureLogic::add($post);
39
             if ($res === false) {
38
             if ($res === false) {
92
 
91
 
93
             $post = $this->request->post();
92
             $post = $this->request->post();
94
             $post['shop_id'] = $this->shop_id;
93
             $post['shop_id'] = $this->shop_id;
95
-
96
             (new ClosureValidate())->goCheck('edit',$post);
94
             (new ClosureValidate())->goCheck('edit',$post);
97
-
98
             $res = ClosureLogic::edit($post);
95
             $res = ClosureLogic::edit($post);
99
             if ($res === false) {
96
             if ($res === false) {
100
                 $error = ClosureLogic::getError() ?: '编辑失败';
97
                 $error = ClosureLogic::getError() ?: '编辑失败';
136
         if ($this->request->isAjax()) {
133
         if ($this->request->isAjax()) {
137
             (new ClosureValidate())->goCheck('id');
134
             (new ClosureValidate())->goCheck('id');
138
             $id = $this->request->post('id');
135
             $id = $this->request->post('id');
136
+
139
             $res = ClosureLogic::del($id);
137
             $res = ClosureLogic::del($id);
140
             if ($res === false) {
138
             if ($res === false) {
141
                 $error = ClosureLogic::getError() ?: '删除失败';
139
                 $error = ClosureLogic::getError() ?: '删除失败';

+ 4
- 0
app/shop/controller/content/EquiCategory.php View File

75
         //获取商家信息
75
         //获取商家信息
76
         $end_time = EquiCategoryLogic::getShopInfo($this->shop_id);
76
         $end_time = EquiCategoryLogic::getShopInfo($this->shop_id);
77
 
77
 
78
+        // 获取剩余评论数
79
+        $shop = EquiCategoryLogic::getShop($this->shop_id);
80
+        $hksy_count =$shop->hksy_count;
78
 
81
 
79
         return view('lists',['end_time' => $end_time,
82
         return view('lists',['end_time' => $end_time,
80
             'edui_info' => $str,
83
             'edui_info' => $str,
84
+            'hksy_count' => $hksy_count,
81
             'server_info' => $res]);
85
             'server_info' => $res]);
82
     }
86
     }
83
 
87
 

+ 1
- 1
app/shop/controller/content/appService.php View File

6
 use app\common\server\JsonServer;
6
 use app\common\server\JsonServer;
7
 use app\common\server\UrlServer;
7
 use app\common\server\UrlServer;
8
 
8
 
9
-class appService extends ShopBase
9
+class AppService extends ShopBase
10
 {
10
 {
11
 
11
 
12
     /*
12
     /*

+ 141
- 0
app/shop/controller/order/OrderRenew.php View File

1
+<?php
2
+/*
3
+ * @Author: xiaohai zmhwork@qq.com
4
+ * @Date: 2025-03-14 17:27:51
5
+ * @LastEditors: xiaohai zmhwork@qq.com
6
+ * @LastEditTime: 2025-03-22 18:10:24
7
+ * @FilePath: \opkpm\app\shop\controller\order\OrderRenew.php
8
+ * @Description: 续费订单
9
+ */
10
+
11
+namespace app\shop\controller\order;
12
+
13
+use app\common\basics\ShopBase;
14
+use app\common\server\JsonServer;
15
+use app\shop\logic\order\OrderRenewLogic;
16
+use Nette\Utils\Json;
17
+
18
+class OrderRenew extends ShopBase
19
+{
20
+    public function lists()
21
+    {
22
+        if ($this->request->isAjax()) {
23
+            $get = $this->request->get();
24
+            $get['shop_id'] = $this->shop_id;
25
+            return JsonServer::success('', OrderRenewLogic::lists($get));
26
+        }
27
+
28
+        //自动取消订单
29
+        $shop_id = $this->shop_id;
30
+        OrderRenewLogic::cancelOrder($shop_id);
31
+
32
+
33
+        return view('');
34
+    }
35
+
36
+    public function renewLists()
37
+    {
38
+        if ($this->request->isAjax()) {
39
+            $get = $this->request->get();
40
+            $get['shop_id'] = $this->shop_id;
41
+            return JsonServer::success('', OrderRenewLogic::renewLists($get));
42
+        }
43
+
44
+        return view('');
45
+    }
46
+
47
+    public function renewLog()
48
+    {
49
+        if ($this->request->isAjax()) {
50
+            $get = $this->request->get();
51
+            $get['shop_id'] = $this->shop_id;
52
+            $get['type_id'] = 1;
53
+            return JsonServer::success('', OrderRenewLogic::renewLog($get));
54
+        }
55
+
56
+        return view('');
57
+    }
58
+
59
+    public function renewMonthLog()
60
+    {
61
+        if ($this->request->isAjax()) {
62
+            $get = $this->request->get();
63
+            $get['shop_id'] = $this->shop_id;
64
+            $get['type_id'] = 2;
65
+            return JsonServer::success('', OrderRenewLogic::renewLog($get));
66
+        }
67
+
68
+        return view('');
69
+    }
70
+
71
+    public function buy()
72
+    {
73
+        $get = $this->request->get();
74
+        $get['shop_id'] = $this->shop_id;
75
+        $id = $get['id'] ?? 0;
76
+        $data = OrderRenewLogic::buy($id);
77
+
78
+        return view('', ['detail' => $data]);
79
+    }
80
+
81
+    public function add()
82
+    {
83
+        if ($this->request->isPost()) {
84
+            $post = $this->request->post();
85
+            $post['shop_id'] = $this->shop_id;
86
+            $data = OrderRenewLogic::add($post);
87
+            if (!$data) {
88
+                return JsonServer::error(OrderRenewLogic::getError());
89
+            }
90
+
91
+            return JsonServer::success('', $data);
92
+        }
93
+
94
+        return JsonServer::error('请求方式错误');
95
+    }
96
+
97
+    public function cancel()
98
+    {
99
+        if ($this->request->isPost()) {
100
+            $post = $this->request->post();
101
+            $post['shop_id'] = $this->shop_id;
102
+            $data = OrderRenewLogic::cancel($post);
103
+            if (!$data) {
104
+                return JsonServer::error(OrderRenewLogic::getError());
105
+            }
106
+
107
+            return JsonServer::success('操作成功');
108
+        }
109
+
110
+        return JsonServer::error('请求方式错误');
111
+    }
112
+
113
+    public function payPage()
114
+    {
115
+        $get = $this->request->get();
116
+        $get['shop_id'] = $this->shop_id;
117
+        $data = OrderRenewLogic::payPage($get);
118
+
119
+        if($data[0] === 1){
120
+            return JsonServer::error($data[1]);
121
+        }
122
+
123
+        return view('', ['detail' => $data[1]]);
124
+    }
125
+
126
+    public function payWay()
127
+    {
128
+        if ($this->request->isPost()) {
129
+            $post = $this->request->post();
130
+            $post['shop_id'] = $this->shop_id;
131
+            $data = OrderRenewLogic::payWay($post);
132
+            if (!$data) {
133
+                return JsonServer::error(OrderRenewLogic::getError());
134
+            }
135
+
136
+            return JsonServer::success('', ['page' => $data]);
137
+        }
138
+
139
+        return JsonServer::error('请求方式错误');
140
+    }
141
+}

+ 34
- 0
app/shop/controller/order/Pay.php View File

1
+<?php
2
+/*
3
+ * @Author: xiaohai zmhwork@qq.com
4
+ * @Date: 2025-03-17 14:27:51
5
+ * @LastEditors: xiaohai zmhwork@qq.com
6
+ * @LastEditTime: 2025-03-17 18:02:17
7
+ * @FilePath: \opkpm\app\shop\controller\order\Pay.php
8
+ * @Description: 支付回调
9
+ */
10
+
11
+namespace app\shop\controller\order;
12
+
13
+use app\common\basics\ShopBase;
14
+use app\common\server\JsonServer;
15
+use app\shop\logic\order\OrderRenewLogic;
16
+use think\facade\Log;
17
+
18
+class Pay extends ShopBase
19
+{
20
+    public $like_not_need_login = ['notifyMnp', 'notifyOa', 'notifyApp', 'aliNotify'];
21
+
22
+    public function aliNotify()
23
+    {
24
+        $post = $this->request->post();
25
+        Log::info('aliNotify 支付宝回调:' . json_encode($post));
26
+        $data = OrderRenewLogic::aliNotify($post);
27
+        if (!$data) {
28
+            Log::error('aliNotify 支付宝回调错误:' . OrderRenewLogic::getError());
29
+            return JsonServer::error(OrderRenewLogic::getError());
30
+        }
31
+
32
+        return 'success';
33
+    }
34
+}

+ 37
- 19
app/shop/logic/content/ClosureCategoryLogic.php View File

41
             }
41
             }
42
 
42
 
43
             //比对 测试商家的应用 有哪些 自动添加
43
             //比对 测试商家的应用 有哪些 自动添加
44
-            $be = [
45
-                'del' => 0,
46
-                'shop_id' => 1,
47
-            ];
48
-            $be_name_list = $model->where($be)->column('name');
49
-            $names = [];
50
-            foreach($lists['data'] as $key => $row){
51
-                $names[] = $row['name'];
52
-            }
53
-            foreach($be_name_list as $key=>$row){
54
-                if(!in_array($row,$names)){
55
-                    $third_cate_id = 0;
56
-                    if($item == '默认'){
57
-                        $third_cate_id = 1;
58
-                    }
59
-                    $model->insert(['name'=>$item,'shop_id'=>$shop_id,'is_show'=>1,'third_cate_id' => $third_cate_id,'create_time' => time(),
60
-                        'update_time' => time()]);
61
-                }
62
-            }
44
+            self::insertDefault($shop_id);
63
 
45
 
64
             return ['count'=>$lists['total'], 'lists'=>$lists['data']];
46
             return ['count'=>$lists['total'], 'lists'=>$lists['data']];
65
         } catch (Exception $e) {
47
         } catch (Exception $e) {
67
         }
49
         }
68
     }
50
     }
69
 
51
 
52
+    public static function insertDefault($shop_id){
53
+        $be = [
54
+            'del' => 0,
55
+            'shop_id' => 1,
56
+        ];
57
+        $where = [
58
+            ['shop_id', '=', $shop_id],
59
+            ['del', '=', 0]
60
+        ];
61
+        $model = new ClosureCategory();
62
+        $lists = $model->field(true)
63
+            ->where($where)
64
+            ->order('id', 'desc')
65
+            ->paginate([
66
+                'page'      => 1,
67
+                'list_rows' => 100,
68
+                'var_page'  => 'page'
69
+            ])
70
+            ->toArray();
71
+        $be_name_list = $model->where($be)->column('name');
72
+        $names = [];
73
+        foreach($lists['data'] as $key => $row){
74
+            $names[] = $row['name'];
75
+        }
76
+        foreach($be_name_list as $key=>$row){
77
+            if(!in_array($row,$names)){
78
+                $third_cate_id = 0;
79
+                if($row == '默认'){
80
+                    $third_cate_id = 1;
81
+                }
82
+                $model->insert(['name'=>$row,'shop_id'=>$shop_id,'is_show'=>1,'third_cate_id' => $third_cate_id,'create_time' => time(),
83
+                    'update_time' => time()]);
84
+            }
85
+        }
86
+    }
87
+
70
     /**
88
     /**
71
      * @Notes: 获取文章分类
89
      * @Notes: 获取文章分类
72
      * @Author: 张无忌
90
      * @Author: 张无忌

+ 95
- 17
app/shop/logic/content/ClosureLogic.php View File

8
 
8
 
9
 use app\common\model\content\Closure; //截流配置表 模型
9
 use app\common\model\content\Closure; //截流配置表 模型
10
 
10
 
11
+use app\common\model\content\IndustryCategory as IndustryCategoryModel; //行业表 模型
12
+
13
+use app\common\model\content\ClosureCategory as ClosureCategoryModel; //应用分类表 模型
14
+
11
 use Exception;
15
 use Exception;
12
 
16
 
13
 class ClosureLogic extends Logic
17
 class ClosureLogic extends Logic
17
      * @param $get
21
      * @param $get
18
      * @return array
22
      * @return array
19
      */
23
      */
20
-    public static function lists($get,$shop_id)
24
+    public static function lists($get, $shop_id)
21
     {
25
     {
22
         try {
26
         try {
23
             $where = [
27
             $where = [
26
             ];
30
             ];
27
 
31
 
28
             if (!empty($get['title']) and $get['title'])
32
             if (!empty($get['title']) and $get['title'])
29
-                $where[] = ['title', 'like', '%'.$get['title'].'%'];
33
+                $where[] = ['title', 'like', '%' . $get['title'] . '%'];
30
 
34
 
31
             if (!empty($get['cid']) and is_numeric($get['cid']))
35
             if (!empty($get['cid']) and is_numeric($get['cid']))
32
                 $where[] = ['cid', '=', $get['cid']];
36
                 $where[] = ['cid', '=', $get['cid']];
42
             $model = new Closure();
46
             $model = new Closure();
43
             $lists = $model->field(true)
47
             $lists = $model->field(true)
44
                 ->where($where)
48
                 ->where($where)
45
-                ->with(['category','category2'])
49
+                ->with(['category', 'category2'])
46
                 //->order('sort', 'asc')
50
                 //->order('sort', 'asc')
47
                 ->order([
51
                 ->order([
48
                     'yid' => 'asc',
52
                     'yid' => 'asc',
62
                 $item['is_show']   = $item['is_show'] ? '显示' : '隐藏';
66
                 $item['is_show']   = $item['is_show'] ? '显示' : '隐藏';
63
             }
67
             }
64
 
68
 
65
-            return ['count'=>$lists['total'], 'lists'=>$lists['data']];
69
+            return ['count' => $lists['total'], 'lists' => $lists['data']];
66
         } catch (Exception $e) {
70
         } catch (Exception $e) {
67
-            return ['error'=>$e->getMessage()];
71
+            return ['error' => $e->getMessage()];
68
         }
72
         }
69
     }
73
     }
70
 
74
 
82
         return $data;
86
         return $data;
83
     }
87
     }
84
 
88
 
89
+
85
     /**
90
     /**
86
      * @Notes: 添加文章
91
      * @Notes: 添加文章
87
      * @Author: 张无忌
92
      * @Author: 张无忌
93
         try {
98
         try {
94
 
99
 
95
             $model = new Closure();
100
             $model = new Closure();
96
-            $json = $model->postDataHandle($post);
101
+            $arr = $model->postDataHandle($post);
97
 
102
 
98
             Closure::create([
103
             Closure::create([
99
                 'shop_id'       => $post['shop_id'],
104
                 'shop_id'       => $post['shop_id'],
108
                 'sort'      => $post['sort'] ?? 0,
113
                 'sort'      => $post['sort'] ?? 0,
109
                 'is_notice' => $post['is_notice'],
114
                 'is_notice' => $post['is_notice'],
110
                 'is_show'   => $post['is_show'],
115
                 'is_show'   => $post['is_show'],
111
-                'version' => $post['version'],
112
-                'form_data' => json_encode($post, JSON_UNESCAPED_UNICODE),
113
-                'json_data' => json_encode($json, JSON_UNESCAPED_UNICODE)
116
+                'version' => $post['shop_id'] . '-' . time(),
117
+                'form_data' => json_encode($arr[1], JSON_UNESCAPED_UNICODE),
118
+                'json_data' => json_encode($arr[0], JSON_UNESCAPED_UNICODE)
114
             ]);
119
             ]);
115
 
120
 
116
             return true;
121
             return true;
131
         try {
136
         try {
132
 
137
 
133
             $model = new Closure();
138
             $model = new Closure();
134
-            $json = $model->postDataHandle($post);
139
+            $arr = $model->postDataHandle($post);
135
 
140
 
136
             Closure::update([
141
             Closure::update([
137
                 'shop_id'       => $post['shop_id'],
142
                 'shop_id'       => $post['shop_id'],
138
                 'cid'       => $post['cid'],
143
                 'cid'       => $post['cid'],
139
-                'yid'       => $post['yid']?? '',
144
+                'yid'       => $post['yid'] ?? '',
140
                 'title'     => $post['title'],
145
                 'title'     => $post['title'],
141
                 'image'     => $post['image'] ?? '',
146
                 'image'     => $post['image'] ?? '',
142
                 'intro'     => $post['intro'] ?? '',
147
                 'intro'     => $post['intro'] ?? '',
147
                 'is_notice' => $post['is_notice'],
152
                 'is_notice' => $post['is_notice'],
148
                 'is_show'   => $post['is_show'],
153
                 'is_show'   => $post['is_show'],
149
                 'version' => $post['version'],
154
                 'version' => $post['version'],
150
-                'form_data' => json_encode($post, JSON_UNESCAPED_UNICODE),
151
-                'json_data' => json_encode($json, JSON_UNESCAPED_UNICODE)
152
-            ], ['id'=>$post['id']]);
155
+                'form_data' => json_encode($arr[1], JSON_UNESCAPED_UNICODE),
156
+                'json_data' => json_encode($arr[0], JSON_UNESCAPED_UNICODE)
157
+            ], ['id' => $post['id']]);
153
 
158
 
154
             return true;
159
             return true;
155
         } catch (\Exception $e) {
160
         } catch (\Exception $e) {
167
     public static function del($id)
172
     public static function del($id)
168
     {
173
     {
169
         try {
174
         try {
175
+
176
+            $item = Closure::where(['id' => $id])->find();
177
+            $t = $item['shop_id'].'_'.'默认配置';
178
+            if($item['title'] == $t){
179
+                static::$error = "默认配置不允许删除";
180
+                return false;
181
+            }
182
+
170
             Closure::update([
183
             Closure::update([
171
                 'del'         => 1,
184
                 'del'         => 1,
172
                 'update_time' => time()
185
                 'update_time' => time()
173
-            ], ['id'=>$id]);
186
+            ], ['id' => $id]);
174
 
187
 
175
             return true;
188
             return true;
176
         } catch (\Exception $e) {
189
         } catch (\Exception $e) {
194
             Closure::update([
207
             Closure::update([
195
                 'is_show'     => !$article['is_show'],
208
                 'is_show'     => !$article['is_show'],
196
                 'update_time' => time()
209
                 'update_time' => time()
197
-            ], ['id'=>$id]);
210
+            ], ['id' => $id]);
198
 
211
 
199
             return true;
212
             return true;
200
         } catch (\Exception $e) {
213
         } catch (\Exception $e) {
202
             return false;
215
             return false;
203
         }
216
         }
204
     }
217
     }
205
-}
206
 
218
 
219
+    /*
220
+     * 初始化一个默认配置
221
+     */
222
+    public static function insertDefault($shop_id){
223
+        /*
224
+         * 查询默认记录
225
+         */
226
+        $model = new Closure();
227
+        $where = [
228
+            "shop_id" => 1,
229
+            "cid"   => 3,
230
+            "yid"   => 4,
231
+        ];
232
+        //先查询用户是否已有配置
233
+        $t = $model->where(['del'=>0,'shop_id'=>$shop_id])->order('id asc')->find();
234
+        //$t = $t->toArray();
235
+        if(empty($t)){
236
+            //不存在配置
237
+            $row = $model->where($where)->order('id asc')->find();
238
+            //默认配置id
239
+            $cid = ClosureCategoryModel::where(['shop_id'=>$shop_id,'del'=>0,'name'=>'默认'])->value('id');
240
+            //默认行业id
241
+            $sid = IndustryCategoryModel::where(['shop_id'=>$shop_id,'del'=>0,'name'=>'默认'])->value('id');
242
+
243
+            if(!empty($row)){
244
+                //转成数组
245
+                $row = $row->toArray();
246
+                //dump($row);
247
+                //复制给用户
248
+                unset($row['id']);
249
+                $row['cid'] = $cid;
250
+                $row['yid'] = $sid;
251
+                $row['title'] = $shop_id."_默认配置";
252
+                $row['version'] = $shop_id.'_'.time();
253
+                $row['create_time'] = time();
254
+                $row['update_time'] = time();
255
+                $row['shop_id'] = $shop_id;
256
+                //插入数据库
257
+                $model->insert($row);
258
+            }
259
+        }else{
260
+            //查找是否存在默认配置 重新增加 这条记录不可删除
261
+            //现有用户的记录如果已绑定 也不影响
262
+            $title = $shop_id."_默认配置";
263
+            $item = $model->where(['del'=>0,'shop_id'=>$shop_id,'title'=>$title])->find();
264
+            //$item = $item->toArray();
265
+            if(empty($item)){
266
+                //不存在 则新增
267
+                $row = $model->where($where)->order('id asc')->find();
268
+                if(!empty($row)){
269
+                    //转成数组
270
+                    $row = $row->toArray();
271
+                    //复制给用户
272
+                    unset($row['id']);
273
+                    $row['title'] = $shop_id."_默认配置";
274
+                    $row['version'] = $shop_id.'_'.time();
275
+                    $row['create_time'] = time();
276
+                    $row['update_time'] = time();
277
+                    $row['shop_id'] = $shop_id;
278
+                    //插入数据库
279
+                    $model->insert($row);
280
+                }
207
 
281
 
282
+            }
283
+        }
284
+    }
285
+}

+ 107
- 5
app/shop/logic/content/EquiCategoryLogic.php View File

44
    */
44
    */
45
   public static function lists($shop_id)
45
   public static function lists($shop_id)
46
   {
46
   {
47
-    $lists = EquiCategoryModel::field('id,name,pid,is_show,level,image, bg_image, sort,yid,ename,code,machine_code,is_user')
47
+    $lists = EquiCategoryModel::field('id,name,pid,is_show,level,image, bg_image, sort,yid,ename,code,machine_code,is_user,pz')
48
         ->with(['category2'])
48
         ->with(['category2'])
49
       ->where('del', 0)
49
       ->where('del', 0)
50
         ->where('shop_id', $shop_id)
50
         ->where('shop_id', $shop_id)
114
       $level = EquiCategoryModel::where(['id' => $post['pid']], ['del' => 0])->value('level');
114
       $level = EquiCategoryModel::where(['id' => $post['pid']], ['del' => 0])->value('level');
115
     }
115
     }
116
 
116
 
117
+      //生成默认配置
118
+      $ver = "v.8.68.5.5684ad5";
119
+      //查找默认应用ID
120
+      $cid = ClosureCategoryModel::where(['shop_id'=>$post['shop_id'],'del'=>0,'name'=>'小红书'])->value('id');
121
+      $did = ClosureCategoryModel::where(['shop_id'=>$post['shop_id'],'del'=>0,'name'=>'抖音'])->value('id');
122
+      //查找默认应用配置
123
+      $title = $post['shop_id']."_默认配置";
124
+      $pid = ClosureModel::where(['shop_id'=>$post['shop_id'],'del'=>0,'title'=>$title])->value('id');
125
+      //配置格式 json格式
126
+      $pz = '[{"cid":"'.$cid.'","val":"'.$pid.'","ver":"'.$ver.'"},{"cid":"'.$did.'","val":"'.$pid.'","ver":"'.$ver.'"}]';
127
+
117
       //生成一个唯一授权码 商家id和时间 加起来就是唯一的 不存在并发 string($mode->id)
128
       //生成一个唯一授权码 商家id和时间 加起来就是唯一的 不存在并发 string($mode->id)
129
+      $host = $_SERVER['HTTP_HOST'];
130
+      if (preg_match('/([^\.]+)\.[^\.]+\.[a-z]{2,}$/i', $host, $matches)) {
131
+          $subdomain = $matches[1];
132
+          //echo $subdomain;
133
+      }else{
134
+          $subdomain = 'www';
135
+      }
118
       $code = '';
136
       $code = '';
119
       if($post['pid'] == 0){
137
       if($post['pid'] == 0){
120
           //电脑才有授权码
138
           //电脑才有授权码
121
-          $code = md5((string)time().(string)$post['shop_id']);
139
+          $code = $subdomain.'_'.md5((string)time().(string)$post['shop_id']);
122
       }else{
140
       }else{
123
-          $code = md5((string)time());
141
+          $code = $subdomain.'_'.md5((string)time());
124
       }
142
       }
125
 
143
 
144
+
145
+      $sid = IndustryCategoryModel::where(['shop_id'=>$post['shop_id'],'del'=>0,'name'=>'默认'])->value('id');
126
     $data = [
146
     $data = [
127
         'shop_id'            => $post['shop_id'],
147
         'shop_id'            => $post['shop_id'],
128
           'name'              => trim($post['name']),
148
           'name'              => trim($post['name']),
137
           'create_time'       => time(),
157
           'create_time'       => time(),
138
           'update_time'       => time(),
158
           'update_time'       => time(),
139
             'code' => $code,
159
             'code' => $code,
140
-            'yid' => 0,
141
-            'ver' => $post['ver']
160
+        'pz' => $pz,
161
+            'yid' => $post['yid'] ?? $sid, //行业id
162
+            'type' => $post['type'] ?? 3, //配置类型 写死为3
163
+            'ver' => $post['ver'] ?? $ver //版本号默认
142
     ];
164
     ];
143
 
165
 
144
     $mode = EquiCategoryModel::create($data);
166
     $mode = EquiCategoryModel::create($data);
505
         return $str;
527
         return $str;
506
     }
528
     }
507
 
529
 
530
+    public static function getShop($shop_id) {
531
+        $shop = shopModel::where(['id' => $shop_id])->find();
532
+        return $shop;
533
+    }
534
+
535
+    /*
536
+     * 初始化一个默认配置
537
+     */
538
+    public static function insertDefault($shop_id){
539
+        /*
540
+         * 查询默认记录
541
+         */
542
+        //先查询用户是否已有设备
543
+        $t = EquiCategoryModel::where(['del'=>0,'shop_id'=>$shop_id,'pid'=>0])->order('id asc')->find();
544
+        //$t = $t->toArray();
545
+        if(empty($t)){
546
+            //不存在配置 生成机器码
547
+            $host = $_SERVER['HTTP_HOST'];
548
+            if (preg_match('/([^\.]+)\.[^\.]+\.[a-z]{2,}$/i', $host, $matches)) {
549
+                $subdomain = $matches[1];
550
+                //echo $subdomain;
551
+            }else{
552
+                $subdomain = 'www';
553
+            }
554
+            $code = $subdomain.'_'.md5((string)time().(string)$shop_id);
555
+            //$code = $subdomain.'_'.md5((string)time());
556
+
557
+            //生成默认配置
558
+            $ver = "v.8.68.5.5684ad5";
559
+            //查找默认应用ID
560
+            $cid = ClosureCategoryModel::where(['shop_id'=>$shop_id,'del'=>0,'name'=>'小红书'])->value('id');
561
+            $did = ClosureCategoryModel::where(['shop_id'=>$shop_id,'del'=>0,'name'=>'抖音'])->value('id');
562
+            //查找默认应用配置
563
+            $title = $shop_id."_默认配置";
564
+            $pid = ClosureModel::where(['shop_id'=>$shop_id,'del'=>0,'title'=>$title])->value('id');
565
+            //配置格式 json格式
566
+            $pz = '[{"cid":"'.$cid.'","val":"'.$pid.'","ver":"'.$ver.'"},{"cid":"'.$did.'","val":"'.$pid.'","ver":"'.$ver.'"}]';
567
+
568
+            $row['name'] = "defaultPc";
569
+            $row['create_time'] = time();
570
+            $row['update_time'] = time();
571
+            $row['shop_id'] = $shop_id;
572
+            $row['pid'] = 0;
573
+            $row['level'] = 1;
574
+            $row['sort'] = 255;
575
+            $row['is_show'] = 1;
576
+            $row['image'] = "";
577
+            $row['bg_image'] = "";
578
+            $row['remark'] = "";
579
+            $row['del'] = 0;
580
+            $row['ename'] = "默认电脑";
581
+            $row['yid'] = 0; //不需要绑定行业ID
582
+            $row['pz'] = $pz; //不要默认配置 去除默认配置
583
+            $row['type'] = 0; //配置类型
584
+            $row['code'] = $code;
585
+            //$row['machine_code'] = "";
586
+            $row['ver'] = $ver;
587
+            $row['is_user'] = 0;
588
+            $row['is_server'] = 0;
589
+            //插入数据库
590
+            $id = EquiCategoryModel::insertGetId($row);
591
+            //查找默认行业ID
592
+            $sid = IndustryCategoryModel::where(['shop_id'=>$shop_id,'del'=>0,'name'=>'默认'])->value('id');
593
+            //插入手机
594
+            if($id > 0){
595
+                $row['pid'] = $id; //更改上级ID
596
+                $code = $subdomain.'_'.md5((string)time());
597
+                $row['name'] = "mobile1";
598
+                $row['ename'] = "手机1";
599
+                $row['yid'] = $sid;
600
+                $row['code'] = $code;
601
+                $row['level'] = 2;
602
+                $row['ver'] = $ver; //清空版本 需要手动绑定 提示绑定状态
603
+                $row['pz'] = $pz; //清空配置 或 直接绑定默认配置
604
+                $row['type'] = 3; //写死就是3
605
+                $row['is_user'] = 1; //默认启用
606
+                EquiCategoryModel::insert($row);
607
+            }
608
+        }
609
+    }
508
 }
610
 }

+ 29
- 2
app/shop/logic/content/IndustryCategoryLogic.php View File

39
                 $item['is_show'] = $item['is_show'] ? '启用' : '停用';
39
                 $item['is_show'] = $item['is_show'] ? '启用' : '停用';
40
             }
40
             }
41
 
41
 
42
-            //判断是否默认行业
42
+            /*//判断是否默认行业
43
             $one = $model->field(true)
43
             $one = $model->field(true)
44
                 ->where($where)
44
                 ->where($where)
45
                 ->where(['name'=> '默认'])->find();
45
                 ->where(['name'=> '默认'])->find();
55
                     'third_cate_id' => 1
55
                     'third_cate_id' => 1
56
                 ];
56
                 ];
57
                 $model->insert($insert_data);
57
                 $model->insert($insert_data);
58
-            }
58
+            }*/
59
+            self::insertDefault($get['shop_id']);
59
 
60
 
60
             return ['count'=>$lists['total'], 'lists'=>$lists['data']];
61
             return ['count'=>$lists['total'], 'lists'=>$lists['data']];
61
         } catch (Exception $e) {
62
         } catch (Exception $e) {
63
         }
64
         }
64
     }
65
     }
65
 
66
 
67
+    public static function insertDefault($shop_id){
68
+        $where = [
69
+            ['del', '=', 0],
70
+            ['shop_id', '=',$shop_id]
71
+        ];
72
+        $model = new IndustryCategory();
73
+        //判断是否默认行业
74
+        $one = $model->field(true)
75
+            ->where($where)
76
+            ->where(['name'=> '默认'])->find();
77
+        //$one = $one->toArray();
78
+        if(empty($one)){
79
+            //不存在 新增
80
+            $insert_data = [
81
+                'name'        => '默认',
82
+                'is_show'     => 1,
83
+                'del'     => 0,
84
+                'shop_id'     => $shop_id,
85
+                'create_time' => time(),
86
+                'update_time' => time(),
87
+                'third_cate_id' => 1
88
+            ];
89
+            $model->insert($insert_data);
90
+        }
91
+    }
92
+
66
     /**
93
     /**
67
      * @Notes: 获取文章分类
94
      * @Notes: 获取文章分类
68
      * @Author: 张无忌
95
      * @Author: 张无忌

+ 426
- 0
app/shop/logic/order/OrderRenewLogic.php View File

1
+<?php
2
+/*
3
+ * @Author: xiaohai zmhwork@qq.com
4
+ * @Date: 2025-03-14 17:38:50
5
+ * @LastEditors: xiaohai zmhwork@qq.com
6
+ * @LastEditTime: 2025-03-23 21:29:28
7
+ * @FilePath: \opkpm\app\shop\logic\order\OrderRenewLogic.php
8
+ * @Description: 续费订单逻辑处理
9
+ */
10
+
11
+namespace app\shop\logic\order;
12
+
13
+use app\common\model\shop\OrderRenew;
14
+use app\common\model\shop\ShopGoodsRenew;
15
+
16
+use app\common\basics\Logic;
17
+use app\common\enum\OrderEnum;
18
+use app\common\model\shop\Shop;
19
+use app\common\model\shop\ShopHkLog;
20
+use app\common\server\AliPayServer;
21
+use app\common\server\YansongdaAliPayServer;
22
+use app\shop\validate\order\OrderRenewValidate;
23
+use think\facade\Db;
24
+use think\facade\Log;
25
+use Yansongda\Pay\Pay;
26
+
27
+class OrderRenewLogic extends Logic
28
+{
29
+    public static function lists($get)
30
+    {
31
+        $page = $get['page'] ?? 1;
32
+        $limit = $get['limit'] ?? 10;
33
+
34
+        $where[] = ['del', '=', 0];
35
+        $where[] = ['shop_id', '=', $get['shop_id']];
36
+
37
+        $count = OrderRenew::where($where)->count();
38
+        $lists = OrderRenew::where($where)
39
+            ->page($page, $limit)
40
+            ->order('id', 'desc')
41
+            ->select()->toArray();
42
+        foreach ($lists as $key => $value) {
43
+            $lists[$key]['type_str'] = $value['renew_type_id'] == 0 ? '包月' : '按量付费';
44
+            $lists[$key]['order_status_str'] = OrderEnum::getOrderStatus($value['order_status']);
45
+            $lists[$key]['pay_status_str'] = OrderEnum::getPayStatus($value['pay_status']);
46
+            $lists[$key]['pay_way_str'] = $value['pay_way'] == 1 ? '微信' : '支付宝';
47
+            $lists[$key]['pay_time_str'] = $value['pay_time'] ? date('Y-m-d H:i:s', $value['pay_time']) : '';
48
+        }
49
+
50
+        return ['count' => $count, 'lists' => $lists];
51
+    }
52
+
53
+    public static function renewLists($get)
54
+    {
55
+        $page = $get['page'] ?? 1;
56
+        $limit = $get['limit'] ?? 10;
57
+
58
+        $where = [
59
+            ['del', '=', 0],
60
+            //['status', '=', 1]
61
+        ];
62
+
63
+        if (!empty($get['name']) && $get['name']) {
64
+            $where[] = ['name', 'like', '%' . $get['name'] . '%'];
65
+        }
66
+        // var_dump($get, $where);        
67
+
68
+        $count = ShopGoodsRenew::where($where)->count();
69
+        $lists = ShopGoodsRenew::where($where)
70
+            ->page($page, $limit)
71
+            ->order('id', 'desc')
72
+            ->select()->toArray();
73
+        foreach ($lists as $key => $value) {
74
+            $lists[$key]['type_str'] = $value['type_id'] == 0 ? '包月' : '按量付费';
75
+            $lists[$key]['status_str'] = $value['status'] == 0 ? '禁用' : '启用';
76
+        }
77
+
78
+        return ['count' => $count, 'lists' => $lists];
79
+    }
80
+
81
+    public static function buy($id)
82
+    {
83
+        $where = [
84
+            ['del', '=', 0],
85
+            ['status', '=', 1],
86
+            ['id', '=', $id]
87
+        ];
88
+        $info = ShopGoodsRenew::where($where)->find();
89
+        if (!$info) {
90
+            static::$error = '数据不存在';
91
+            return false;
92
+        }
93
+
94
+        return $info->toArray();
95
+    }
96
+
97
+    public static function cancelOrder($shop_id)
98
+    {
99
+        //dump("dffd");
100
+        //查找未付款 待支付
101
+        //获取1个小时前的时间戳
102
+        $oneHourAgo = strtotime("-1 hour", time());
103
+        $where = [
104
+            ['shop_id','=',$shop_id],
105
+            ['del', '=', 0],
106
+            ['pay_status', '=', 0],
107
+            ['order_status', '=', 0],
108
+            ['create_time', '<', $oneHourAgo]
109
+        ];
110
+        OrderRenew::where($where)->update([
111
+                'order_status' => 4,
112
+                'cancel_time' => time(),
113
+                'update_time' => time(),
114
+            ]);
115
+    }
116
+    public static function cancel($post)
117
+    {
118
+        try {
119
+            validate(OrderRenewValidate::class)->scene('cancel')->check($post);
120
+        } catch (\Exception $e) {
121
+            static::$error = $e->getMessage();
122
+            return false;
123
+        }
124
+
125
+        $where = [
126
+            ['del', '=', 0],
127
+            ['id', '=', $post['id']],
128
+            ['shop_id', '=', $post['shop_id']],
129
+        ];
130
+
131
+        $info = OrderRenew::where($where)->find();
132
+        if (!$info) {
133
+            self::$error = '数据不存在';
134
+            return false;
135
+        }
136
+
137
+        if ($info->order_status > 0) {
138
+            self::$error = '订单状态不可取消';
139
+            return false;
140
+        }
141
+
142
+        $info->order_status = 4;
143
+        $info->save();
144
+
145
+        return true;
146
+    }
147
+
148
+    public static function add($post)
149
+    {
150
+        try {
151
+            validate(OrderRenewValidate::class)->scene('add')->check($post);
152
+        } catch (\Exception $e) {
153
+            static::$error = $e->getMessage();
154
+            return false;
155
+        }
156
+
157
+        $model = new OrderRenew();
158
+        $name = $model->getName();
159
+        $post['order_sn'] = createSn($name, 'order_sn');
160
+        $post['renew_name'] = $post['name'];
161
+        $post['renew_image'] = $post['image'] ?? "";
162
+        $post['renew_desc'] = $post['desc'];
163
+        $post['renew_type_id'] = $post['type_id'];
164
+        $post['renew_price'] = $post['price'];
165
+        $post['renew_op_count'] = $post['op_count'];
166
+
167
+        $post['total_amount'] = $post['renew_price'] * $post['renew_num'];
168
+        $post['total_num'] = $post['renew_num'];
169
+        $post['order_amount'] = $post['total_amount'];
170
+
171
+        $info = $model->create($post);
172
+
173
+        return $info->toArray();
174
+    }
175
+
176
+    public static function payPage($get)
177
+    {
178
+        $where = [
179
+            ['del', '=', 0],
180
+            ['id', '=', $get['id']],
181
+            ['shop_id', '=', $get['shop_id']],
182
+        ];
183
+
184
+        $info = OrderRenew::where($where)->find();
185
+
186
+        //dump($info->toArray());
187
+        $good = ShopGoodsRenew::where([
188
+                ['id', '=', $info['renew_id']],
189
+            ])->find();
190
+
191
+        if(empty($good)){
192
+            $msg = '商品已删除';
193
+            return [1,$msg];
194
+        }
195
+
196
+        if((int)$good['status'] === 0){
197
+            $msg = '商品已下架';
198
+            return [1,$msg];
199
+        }
200
+
201
+        if (!$info) {
202
+            $msg = '数据不存在';
203
+            return [1,$msg];
204
+        }
205
+
206
+        return [0,$info->toArray()];
207
+    }
208
+
209
+    private static function aliPay($info, $time_expire)
210
+    {
211
+        // 支付宝PC端支付
212
+        $domain = request()->domain();
213
+
214
+        $return_url = (string) url('shop/order.OrderRenew/lists', [], false, true);
215
+        $notify_url = (string) url('shop/order.Pay/aliNotify', [], false, true);
216
+
217
+        $ali_data = [
218
+            'out_trade_no'      => $info['order_sn'],
219
+            'total_amount'      => $info['order_amount'],
220
+            'subject'           => '订单:' . $info['order_sn'],
221
+            // 'return_url'        => $domain . '/shop/order.OrderRenew/lists',
222
+            'return_url'        => $return_url,
223
+            'time_expire'   => date('Y-m-d H:i:s', $time_expire),
224
+        ];
225
+
226
+        $aliPayConf = YansongdaAliPayServer::config();
227
+        $aliPayConf['notify_url'] = $notify_url;
228
+
229
+        $aliPay = Pay::alipay($aliPayConf);
230
+
231
+        // $ali_data['notify_url'] = $domain . '/shop/order.Pay/aliNotify';
232
+        $ali_data['notify_url'] = $notify_url;
233
+        return $aliPay->web($ali_data)->getContent();
234
+    }
235
+
236
+    public static function payWay($post)
237
+    {
238
+        try {
239
+            validate(OrderRenewValidate::class)->scene('pay_way')->check($post);
240
+        } catch (\Exception $e) {
241
+            static::$error = $e->getMessage();
242
+            return false;
243
+        }
244
+
245
+        $where = [
246
+            ['del', '=', 0],
247
+            ['id', '=', $post['id']],
248
+            ['shop_id', '=', $post['shop_id']],
249
+        ];
250
+
251
+        $info = OrderRenew::where($where)->find();
252
+        if (!$info) {
253
+            static::$error = '数据不存在';
254
+            return false;
255
+        }
256
+
257
+        if ($info['order_status'] > 0) {
258
+            static::$error = '订单不处于可支付状态下';
259
+            return false;
260
+        }
261
+
262
+        //计算是否已过期
263
+        $oneHourAgo = strtotime("-1 hour", time());
264
+        if(strtotime($info->create_time) < $oneHourAgo){
265
+            //已过期
266
+            $info->order_status = 4;
267
+            $info->cancel_time = time();
268
+            $info->update_time = time();
269
+            $info->save();
270
+            self::$error = '订单已过期';
271
+            return false;
272
+        }
273
+
274
+        $time_expire = time() + 3600 * 2;
275
+
276
+        $info->pay_way = $post['pay_way'];
277
+        $info->time_expire = $time_expire - 600;
278
+        $info->save();
279
+
280
+        if ($post['pay_way'] == 2) {
281
+            return self::aliPay($info, $time_expire);
282
+        }
283
+
284
+        self::$error = '暂不支持该支付方式';
285
+        return false;
286
+    }
287
+
288
+    private static function changeHkCount($info, $time)
289
+    {
290
+        // 添加用户套餐时间或者数量
291
+        // 操作数量
292
+        $op_count = $info['renew_op_count'] * $info['total_num'];
293
+        $shop = Shop::find($info['shop_id']);
294
+
295
+        // 添加用户套餐时间或者数量
296
+        $hk = new ShopHkLog();
297
+        $hk->shop_id = $shop['id'];
298
+        $hk->source_id = $info->id;
299
+        $hk->change_count = $op_count;
300
+
301
+        // 包月
302
+        if ($info['renew_type_id'] == 0) {
303
+            $old_expire_time = $shop->getData('expire_time');
304
+            if ($old_expire_time < $time) {
305
+                $old_expire_time = $time;
306
+            }
307
+
308
+            $di = \DateInterval::createFromDateString(strval($op_count) . ' months');
309
+            $dt = date_create_from_format('Y-m-d H:i:s', date('Y-m-d H:i:s', $old_expire_time))->add($di);
310
+            $dt_str = $dt->format('Y-m-d 00:00:00');
311
+            $shop->expire_time = $dt->getTimestamp();
312
+
313
+            $hk->source_type = 200;
314
+            $hk->before_date = date('Y-m-d H:i:s', $old_expire_time);
315
+            $hk->after_date = date('Y-m-d H:i:s', $dt->getTimestamp());
316
+
317
+            $hk->remark = '[' . $info->renew_name . '],订单号:' . $info->order_sn . ',增加月份数:' . $op_count;
318
+            $hk->save();
319
+        } else {
320
+            // 按量付费
321
+            // 添加数量记录
322
+            $old_hksy_count = $shop->hksy_count;
323
+            //$hk = new ShopHkLog();
324
+            //$hk->shop_id = $shop['id'];
325
+            //$hk->source_id = $info->id;
326
+            //$hk->change_count = $op_count;
327
+            $hk->left_count = $op_count + $old_hksy_count;
328
+            $hk->remark = '[' . $info->renew_name . '],订单号:' . $info->order_sn . ',增加总数:' . $op_count;
329
+            $hk->save();
330
+
331
+            $shop->hksy_count += $op_count;
332
+        }
333
+
334
+        $shop->save();
335
+
336
+        return true;
337
+    }
338
+
339
+    public static function renewLog($get)
340
+    {
341
+        $page = $get['page'] ?? 1;
342
+        $limit = $get['limit'] ?? 10;
343
+
344
+        $where = [];
345
+        $where[] = ['shop_id', '=', $get['shop_id']];
346
+        $type_id = $get['type_id'] ?? 1;
347
+        if ($type_id == 1) {
348
+            //搜索
349
+            $source_type = $get['source_type'] ?? 0;
350
+            if($source_type != 0){
351
+                $where[] = ['source_type', '=', $source_type];
352
+            }else{
353
+                $where[] = ['source_type', '>=', 100];
354
+                $where[] = ['source_type', '<', 200];
355
+            }
356
+        } else {
357
+            $where[] = ['source_type', '>=', 200];
358
+            $where[] = ['source_type', '<', 300];
359
+        }
360
+
361
+        $count = ShopHkLog::where($where)->count();
362
+        $lists = ShopHkLog::where($where)
363
+            ->page($page, $limit)
364
+            ->order('id', 'desc')
365
+            ->select()->toArray();
366
+
367
+        return ['count' => $count, 'lists' => $lists];
368
+    }
369
+
370
+    private static function aliPaySucc($order_sn, $result)
371
+    {
372
+        $time = time();
373
+        Db::startTrans();
374
+
375
+        try {
376
+            $where = [
377
+                ['del', '=', 0],
378
+                ['order_sn', '=', $order_sn],
379
+            ];
380
+
381
+            $info = OrderRenew::where($where)->find();
382
+            if (empty($info)) {
383
+                static::$error = '数据不存在';
384
+                return false;
385
+            }
386
+
387
+            $info->order_status = 3;
388
+            $info->pay_status = 1;
389
+            $info->pay_time = $time;
390
+            $info->notify_content = $result->toJson();
391
+            $info->buyer_id = $result->buyer_open_id;
392
+            $info->trade_no = $result->trade_no;
393
+            $info->save();
394
+
395
+            self::changeHkCount($info, $time);
396
+
397
+            Db::commit();
398
+        } catch (\Exception $e) {
399
+            Db::rollback();
400
+            Log::error('aliPaySucc 支付宝回调错误:' . $e->getMessage());
401
+            static::$error = $e->getMessage();
402
+            return false;
403
+        }
404
+
405
+        return true;
406
+    }
407
+
408
+    public static function aliNotify($post)
409
+    {
410
+        try {
411
+            $aliPayConf = YansongdaAliPayServer::config();
412
+            $aliPay = Pay::alipay($aliPayConf);
413
+            $result = $aliPay->verify($post);
414
+        } catch (\Exception $e) {
415
+            static::$error = $e->getMessage();
416
+            return false;
417
+        }
418
+
419
+        // 支付成功
420
+        if ($result->trade_status === 'TRADE_SUCCESS') {
421
+            self::aliPaySucc($result->out_trade_no, $result);
422
+        }
423
+
424
+        return true;
425
+    }
426
+}

+ 107
- 65
app/shop/validate/content/ClosureValidate.php View File

13
         'id'    => 'require|number',
13
         'id'    => 'require|number',
14
         'cid'   => 'require|number',
14
         'cid'   => 'require|number',
15
         'title' => 'require',
15
         'title' => 'require',
16
-        'version' => 'require|checkVersion',
16
+        // 'version' => 'require|checkVersion',
17
         'a2' => 'require|number|checkPost',
17
         'a2' => 'require|number|checkPost',
18
         'a3' => 'require|number',
18
         'a3' => 'require|number',
19
     ];
19
     ];
34
     protected $scene = [
34
     protected $scene = [
35
         'id'   => ['id'],
35
         'id'   => ['id'],
36
         'add'  => [
36
         'add'  => [
37
-            'cid', 'title','version',
37
+            'cid', 'title',
38
             'a2',
38
             'a2',
39
             'a3'
39
             'a3'
40
         ],
40
         ],
41
         'edit' => [
41
         'edit' => [
42
-            'id', 'cid', 'title','version',
42
+            'id', 'cid', 'title',
43
             'a2',
43
             'a2',
44
             'a3'
44
             'a3'
45
         ],
45
         ],
72
      */
72
      */
73
     protected function checkPost($value,$rule,$data){
73
     protected function checkPost($value,$rule,$data){
74
 
74
 
75
+
76
+        $msg = "-不能为空!";
77
+        if(empty($data['a7'])){
78
+            return "切换搜索词".$msg;
79
+        }
80
+        if(empty($data['e7'])){
81
+            return "互动评论随机语句".$msg;
82
+        }
83
+        if(empty($data['f10'])){
84
+            return "指定账号列表".$msg;
85
+        }
86
+        if(empty($data['f11'])){
87
+            return "账号关键词列表".$msg;
88
+        }
89
+        if(empty($data['f12'])){
90
+            return "账号过滤词列表".$msg;
91
+        }
92
+        if(empty($data['f13'])){
93
+            return "标题名称关键词".$msg; //截流内容名称关键词
94
+        }
95
+        if(empty($data['f14'])){
96
+            return "标题名称过滤词".$msg; //截流内容名称过滤词
97
+        }
98
+        if(empty($data['f15'])){
99
+            return "笔记评论满足时间条件的关键词".$msg; //截流笔记内容满足时间条件的关键词正则
100
+        }
101
+        if(empty($data['f17'])){
102
+            return "视频评论满足时间条件的关键词".$msg; //截流视频内容满足时间条件的关键词正则
103
+        }
104
+        if(empty($data['f19'])){
105
+            return "评论账号过滤词".$msg;
106
+        }
107
+        if(empty($data['f20'])){
108
+            return "评论名称关键词".$msg;
109
+        }
110
+        if(empty($data['f24'])){
111
+            return "私信名称关键词".$msg;
112
+        }
113
+        if(empty($data['k6'])){
114
+            return "评论钩子内容".$msg;
115
+        }
116
+
75
         if((int)$data['a2'] < 900){
117
         if((int)$data['a2'] < 900){
76
             return "运行时长不能小于900秒!";
118
             return "运行时长不能小于900秒!";
77
         }
119
         }
78
 
120
 
79
-        if((int)$data['a3'] < 100){
80
-            return "操作总数不能小于100个!";
121
+        if((int)$data['a3'] < 20){
122
+            return "操作总数不能小于20个!";
81
         }
123
         }
82
 
124
 
83
         if((int)$data['a4'] === 1){
125
         if((int)$data['a4'] === 1){
111
             return "列表设置-过滤词格式不正确!";
153
             return "列表设置-过滤词格式不正确!";
112
         }
154
         }
113
         //分类规则
155
         //分类规则
114
-        foreach ($data['b2_1'] as $k => $v) {
115
-            if(empty($v) && $k !== 1){
156
+        foreach ($data['b2_1'] as $k100 => $v100) {
157
+            if(empty($v100) && $k100 !== 1){
116
                 return "列表设置-分类规则-匹配词不能为空!";
158
                 return "列表设置-分类规则-匹配词不能为空!";
117
             }
159
             }
118
         }
160
         }
119
-        foreach ($data['b2_2'] as $k => $v) {
120
-            if(empty($v) && $k !== 1){
161
+        foreach ($data['b2_2'] as $k101 => $v101) {
162
+            if(empty($v101) && $k101 !== 1){
121
                 return "列表设置-分类规则-每[]个不能为空!";
163
                 return "列表设置-分类规则-每[]个不能为空!";
122
             }
164
             }
123
         }
165
         }
124
-        foreach ($data['b2_3'] as $k => $v) {
125
-            if(empty($v) && $k !== 1){
166
+        foreach ($data['b2_3'] as $k102 => $v102) {
167
+            if(empty($v102) && $k102 !== 1){
126
                 return "列表设置-分类规则-点击[]个不能为空!";
168
                 return "列表设置-分类规则-点击[]个不能为空!";
127
             }
169
             }
128
-            if($v > $data['b2_4'][$k] && $k !== 1){
170
+            if($v102 > $data['b2_4'][$k102] && $k102 !== 1){
129
                 return "列表设置-分类规则-点击范围大小错误";
171
                 return "列表设置-分类规则-点击范围大小错误";
130
             }
172
             }
131
         }
173
         }
132
-        foreach ($data['b2_4'] as $k => $v) {
133
-            if(empty($v) && $k !== 1){
174
+        foreach ($data['b2_4'] as $k103 => $v103) {
175
+            if(empty($v103) && $k103 !== 1){
134
                 return "列表设置-分类规则-到[]个不能为空!";
176
                 return "列表设置-分类规则-到[]个不能为空!";
135
             }
177
             }
136
         }
178
         }
155
 
197
 
156
         //浏览笔记
198
         //浏览笔记
157
         foreach ($data['c1_1'] as $k => $v) {
199
         foreach ($data['c1_1'] as $k => $v) {
158
-            if(empty($v) && $k > 1){
200
+            if(empty($v) && $k > 2){
159
                 return "浏览笔记-观看时长-评论数-不能为空!";
201
                 return "浏览笔记-观看时长-评论数-不能为空!";
160
-            }else if(strpos($v, "-") === false && $k > 1) {
202
+            }else if(strpos($v, "-") === false && $k > 2) {
161
                 return "浏览笔记-观看时长-评论数规则格式不正确!";
203
                 return "浏览笔记-观看时长-评论数规则格式不正确!";
162
             }else{
204
             }else{
163
-                if($k !== 1){
205
+                if($k !== 2){
164
                     if(empty($data['c1_2'][$k]) || $data['c1_2'][$k] == 0){
206
                     if(empty($data['c1_2'][$k]) || $data['c1_2'][$k] == 0){
165
                         return "浏览笔记-观看时长-观看秒数不能为空或等于0!";
207
                         return "浏览笔记-观看时长-观看秒数不能为空或等于0!";
166
                     }else if(empty($data['c1_3'][$k]) || $data['c1_3'][$k] == 0){
208
                     }else if(empty($data['c1_3'][$k]) || $data['c1_3'][$k] == 0){
245
         }
287
         }
246
 
288
 
247
         //浏览视频
289
         //浏览视频
248
-        foreach ($data['d1_1'] as $k => $v) {
249
-            if(empty($v) && $k > 1){
290
+        foreach ($data['d1_1'] as $k2 => $v2) {
291
+            //echo $k;
292
+            //dump($v);
293
+            if(empty($v2) && $k2 > 2){
250
                 return "浏览视频-观看时长-评论数-不能为空!";
294
                 return "浏览视频-观看时长-评论数-不能为空!";
251
-            }else if(strpos($v, "-") === false && $k > 1) {
295
+            }else if(strpos($v2, "-") === false && $k2 > 2) {
252
                 return "浏览视频-观看时长-评论数规则格式不正确!";
296
                 return "浏览视频-观看时长-评论数规则格式不正确!";
253
             }else{
297
             }else{
254
-                if($k !== 1){
255
-                    if(empty($data['d1_2'][$k]) || $data['d1_2'][$k] == 0){
298
+                if($k2 !== 2){
299
+                    if(empty($data['d1_2'][$k2]) || $data['d1_2'][$k2] == 0){
256
                         return "浏览视频-观看时长-观看秒数不能为空或等于0!";
300
                         return "浏览视频-观看时长-观看秒数不能为空或等于0!";
257
-                    }else if(empty($data['d1_3'][$k]) || $data['d1_3'][$k] == 0){
301
+                    }else if(empty($data['d1_3'][$k2]) || $data['d1_3'][$k2] == 0){
258
                         return "浏览视频-观看时长-观看秒数不能为空或等于0!";
302
                         return "浏览视频-观看时长-观看秒数不能为空或等于0!";
259
-                    }else if((int)$data['d1_2'][$k] > (int)$data['d1_3'][$k]){
303
+                    }else if((int)$data['d1_2'][$k2] > (int)$data['d1_3'][$k2]){
260
                         return "浏览视频-观看时长-观看时间大小有误!";
304
                         return "浏览视频-观看时长-观看时间大小有误!";
261
                     }
305
                     }
262
                 }
306
                 }
263
             }
307
             }
264
         }
308
         }
265
 
309
 
266
-
267
-
268
         //非列表视频操作 - 观看时长
310
         //非列表视频操作 - 观看时长
269
         if(empty($data['d2'][0]) || $data['d2'][0] == 0){
311
         if(empty($data['d2'][0]) || $data['d2'][0] == 0){
270
             return "浏览视频-非列表视频操作-观看时长-秒数不能为空或等于0!";
312
             return "浏览视频-非列表视频操作-观看时长-秒数不能为空或等于0!";
356
         if((int)$data['e1'] === 1){
398
         if((int)$data['e1'] === 1){
357
              if($data['e2'] == '场景1_是否开启全局默认互动'){
399
              if($data['e2'] == '场景1_是否开启全局默认互动'){
358
                  $ks = ['e5_1','e5_2','e5_3','e5_4','e5_5','e5_6'];
400
                  $ks = ['e5_1','e5_2','e5_3','e5_4','e5_5','e5_6'];
359
-                 foreach ($ks as $k => $v) {
401
+                 foreach ($ks as $k112 => $v112) {
360
                      //只验证默认参数
402
                      //只验证默认参数
361
-                     if(empty($data[$v][0])){
362
-                         return "互动设置-默认互动-第".$k."行-每[]个不能为空!";
403
+                     if(empty($data[$v112][0])){
404
+                         return "互动设置-默认互动-第".$k112."行-每[]个不能为空!";
363
                      }
405
                      }
364
-                     if(empty($data[$v][1])){
365
-                         return "互动设置-默认互动-第".$k."行-点击[]个不能为空!";
406
+                     if(empty($data[$v112][1])){
407
+                         return "互动设置-默认互动-第".$k112."行-点击[]个不能为空!";
366
                      }
408
                      }
367
-                     if($data[$v][1] > $data[$v][2]){
368
-                         return "互动设置-默认互动-第".$k."行-点击范围大小错误";
409
+                     if($data[$v112][1] > $data[$v112][2]){
410
+                         return "互动设置-默认互动-第".$k112."行-点击范围大小错误";
369
                      }
411
                      }
370
-                     if(empty($data[$v][2])){
371
-                         return "互动设置-默认互动-第".$k."行-到[]个不能为空!";
412
+                     if(empty($data[$v112][2])){
413
+                         return "互动设置-默认互动-第".$k112."行-到[]个不能为空!";
372
                      }
414
                      }
373
                  }
415
                  }
374
              }else{
416
              }else{
375
                  //验证 截流和非截流
417
                  //验证 截流和非截流
376
                  $ks = ['e3_1','e3_2','e3_3','e3_4','e3_5','e3_6'];
418
                  $ks = ['e3_1','e3_2','e3_3','e3_4','e3_5','e3_6'];
377
-                 foreach ($ks as $k => $v) {
419
+                 foreach ($ks as $k111 => $v111) {
378
                      //只验证默认参数
420
                      //只验证默认参数
379
-                     if(empty($data[$v][0])){
380
-                         return "互动设置-截流互动-第".$k."行-每[]个不能为空!";
421
+                     if(empty($data[$v111][0])){
422
+                         return "互动设置-截流互动-第".$k111."行-每[]个不能为空!";
381
                      }
423
                      }
382
-                     if(empty($data[$v][1])){
383
-                         return "互动设置-截流互动-第".$k."行-点击[]个不能为空!";
424
+                     if(empty($data[$v111][1])){
425
+                         return "互动设置-截流互动-第".$k111."行-点击[]个不能为空!";
384
                      }
426
                      }
385
-                     if($data[$v][1] > $data[$v][2]){
386
-                         return "互动设置-截流互动-第".$k."行-点击范围大小错误";
427
+                     if($data[$v111][1] > $data[$v111][2]){
428
+                         return "互动设置-截流互动-第".$k111."行-点击范围大小错误";
387
                      }
429
                      }
388
-                     if(empty($data[$v][2])){
389
-                         return "互动设置-截流互动-第".$k."行-到[]个不能为空!";
430
+                     if(empty($data[$v111][2])){
431
+                         return "互动设置-截流互动-第".$k111."行-到[]个不能为空!";
390
                      }
432
                      }
391
                  }
433
                  }
392
                  $ks = ['e4_1','e4_2','e4_3','e4_4','e4_5','e4_6'];
434
                  $ks = ['e4_1','e4_2','e4_3','e4_4','e4_5','e4_6'];
393
-                 foreach ($ks as $k => $v) {
435
+                 foreach ($ks as $k110 => $v110) {
394
                      //只验证默认参数
436
                      //只验证默认参数
395
-                     if(empty($data[$v][0])){
396
-                         return "互动设置-非截流互动-第".$k."行-每[]个不能为空!";
437
+                     if(empty($data[$v110][0])){
438
+                         return "互动设置-非截流互动-第".$k110."行-每[]个不能为空!";
397
                      }
439
                      }
398
-                     if(empty($data[$v][1])){
399
-                         return "互动设置-非截流互动-第".$k."行-点击[]个不能为空!";
440
+                     if(empty($data[$v110][1])){
441
+                         return "互动设置-非截流互动-第".$k110."行-点击[]个不能为空!";
400
                      }
442
                      }
401
-                     if($data[$v][1] > $data[$v][2]){
402
-                         return "互动设置-非截流互动-第".$k."行-点击范围大小错误";
443
+                     if($data[$v110][1] > $data[$v110][2]){
444
+                         return "互动设置-非截流互动-第".$k110."行-点击范围大小错误";
403
                      }
445
                      }
404
-                     if(empty($data[$v][2])){
405
-                         return "互动设置-非截流互动-第".$k."行-到[]个不能为空!";
446
+                     if(empty($data[$v110][2])){
447
+                         return "互动设置-非截流互动-第".$k110."行-到[]个不能为空!";
406
                      }
448
                      }
407
                  }
449
                  }
408
              }
450
              }
451
         }
493
         }
452
 
494
 
453
         //评论内容
495
         //评论内容
454
-        foreach ($data['f21_1'] as $k => $v) {
455
-            if($k !== 1) {
456
-                if (empty($v)) {
496
+        foreach ($data['f21_1'] as $k108 => $v108) {
497
+            if($k108 !== 1) {
498
+                if (empty($v108)) {
457
                     return "截流设置-评论内容-关键词-请填写关键词";
499
                     return "截流设置-评论内容-关键词-请填写关键词";
458
                 }
500
                 }
459
             }
501
             }
460
         }
502
         }
461
-        foreach ($data['f21_2'] as $k => $v) {
462
-            if($k !== 1) {
463
-                if (empty($v)) {
503
+        foreach ($data['f21_2'] as $k107 => $v107) {
504
+            if($k107 !== 1) {
505
+                if (empty($v107)) {
464
                     return "截流设置-评论内容-评论语句-请填写评论语句";
506
                     return "截流设置-评论内容-评论语句-请填写评论语句";
465
                 }
507
                 }
466
             }
508
             }
467
         }
509
         }
468
 
510
 
469
         //私信内容
511
         //私信内容
470
-        foreach ($data['f25_1'] as $k => $v) {
471
-            if($k !== 1) {
472
-                if (empty($v)) {
512
+        foreach ($data['f25_1'] as $k106 => $v106) {
513
+            if($k106 !== 1) {
514
+                if (empty($v106)) {
473
                     return "截流设置-私信内容-关键词-请填写关键词";
515
                     return "截流设置-私信内容-关键词-请填写关键词";
474
                 }
516
                 }
475
             }
517
             }
476
         }
518
         }
477
-        foreach ($data['f25_2'] as $k => $v) {
478
-            if($k !== 1) {
479
-                if (empty($v)) {
519
+        foreach ($data['f25_2'] as $k105 => $v105) {
520
+            if($k105 !== 1) {
521
+                if (empty($v105)) {
480
                     return "截流设置-私信内容-私信语句-请填写私信语句";
522
                     return "截流设置-私信内容-私信语句-请填写私信语句";
481
                 }
523
                 }
482
             }
524
             }

+ 54
- 0
app/shop/validate/order/OrderRenewValidate.php View File

1
+<?php
2
+/*
3
+ * @Author: xiaohai zmhwork@qq.com
4
+ * @Date: 2025-03-17 10:36:54
5
+ * @LastEditors: xiaohai zmhwork@qq.com
6
+ * @LastEditTime: 2025-03-17 13:42:47
7
+ * @FilePath: \opkpm\app\shop\validate\order\OrderRenewValidate.php
8
+ * @Description: 续费订单验证
9
+ */
10
+
11
+namespace app\shop\validate\order;
12
+
13
+use app\common\basics\Validate;
14
+
15
+use app\common\model\shop\OrderRenew;
16
+use app\common\model\shop\ShopGoodsRenew;
17
+
18
+class OrderRenewValidate extends Validate
19
+{
20
+    protected $rule = [
21
+        'id' => 'require',
22
+        'shop_id|用户' => 'require|number|gt:0',
23
+        'renew_id|套餐' => 'require|number|gt:0|checkTypePay',
24
+        'renew_num|续费数量' => 'require|number|gt:0',
25
+        'pay_way|支付方式' => 'require|number|in:1,2',
26
+    ];
27
+
28
+    protected $message = [
29
+        'id.require' => '缺少ID字段',
30
+    ];
31
+
32
+    protected $scene = [
33
+        'detail' => ['id', 'shop_id'],
34
+        'add' => ['shop_id', 'renew_id', 'renew_num'],
35
+        'cancel' => ['id', 'shop_id'],
36
+        'pay_way' => ['id', 'shop_id', 'pay_way'],
37
+    ];
38
+
39
+    // 查看同类型订单是否有待支付状态
40
+    protected function checkTypePay($value, $rule, $data)
41
+    {
42
+        $renew = ShopGoodsRenew::where('id', $data['renew_id'])->where('status',1)->where("del", 0)->findOrEmpty();
43
+        if ($renew->isEmpty()) {
44
+            return '续费套餐不存在';
45
+        }
46
+        
47
+        $order = OrderRenew::where(['shop_id' => $data['shop_id'], 'renew_id' => $data['renew_id'], 'order_status' => 0])->findOrEmpty();
48
+        if (!$order->isEmpty()) {
49
+            return '已存在' . $renew['name'] . '待支付的订单';
50
+        }
51
+
52
+        return true;
53
+    }
54
+}

+ 20
- 8
app/shop/view/content/closure/add.html View File

35
     .ks:nth-child(2){
35
     .ks:nth-child(2){
36
         display: none;
36
         display: none;
37
     }
37
     }
38
+    .c1 .ks:nth-child(2){
39
+        display: block;
40
+    }
41
+    .d1 .ks:nth-child(2){
42
+        display: block;
43
+    }
44
+    .c1 .ks:nth-child(3){
45
+        display: none;
46
+    }
47
+    .d1 .ks:nth-child(3){
48
+        display: none;
49
+    }
38
 
50
 
39
     .ks_del2{
51
     .ks_del2{
40
         color: #01AAED;
52
         color: #01AAED;
72
                 <li data-type='1' class="layui-this">基础信息</li>
84
                 <li data-type='1' class="layui-this">基础信息</li>
73
                 <li data-type='2'>启动设置</li>
85
                 <li data-type='2'>启动设置</li>
74
                 <li data-type='3'>列表设置</li>
86
                 <li data-type='3'>列表设置</li>
75
-                <li data-type='4'>浏览笔记</li>
87
+                <li data-type='4'>浏览图文</li>
76
                 <li data-type='5'>浏览视频</li>
88
                 <li data-type='5'>浏览视频</li>
77
                 <li data-type='6'>互动设置</li>
89
                 <li data-type='6'>互动设置</li>
78
-                <li data-type='7'>目标设置</li>
79
-                <li data-type='8'>目标规则</li>
90
+                <li data-type='7'>获客设置</li>
91
+                <li data-type='8'>获客规则</li>
80
                 <li data-type='9'>其他设置</li>
92
                 <li data-type='9'>其他设置</li>
81
             </ul>
93
             </ul>
82
             <div class="layui-tab-content">
94
             <div class="layui-tab-content">
92
                 <div class="layui-tab-item">
104
                 <div class="layui-tab-item">
93
                     {include file="content/closure/setting/03"/}
105
                     {include file="content/closure/setting/03"/}
94
                 </div>
106
                 </div>
95
-                <!--浏览笔记-->
107
+                <!--浏览图文-->
96
                 <div class="layui-tab-item">
108
                 <div class="layui-tab-item">
97
                     {include file="content/closure/setting/04"/}
109
                     {include file="content/closure/setting/04"/}
98
                 </div>
110
                 </div>
104
                 <div class="layui-tab-item">
116
                 <div class="layui-tab-item">
105
                     {include file="content/closure/setting/06"/}
117
                     {include file="content/closure/setting/06"/}
106
                 </div>
118
                 </div>
107
-                <!--目标设置-->
119
+                <!--获客设置-->
108
                 <div class="layui-tab-item">
120
                 <div class="layui-tab-item">
109
                     {include file="content/closure/setting/07"/}
121
                     {include file="content/closure/setting/07"/}
110
                 </div>
122
                 </div>
111
-                <!--目标规则-->
123
+                <!--获客规则-->
112
                 <div class="layui-tab-item">
124
                 <div class="layui-tab-item">
113
                     {include file="content/closure/setting/08"/}
125
                     {include file="content/closure/setting/08"/}
114
                 </div>
126
                 </div>
182
         //增加新的数据规则
194
         //增加新的数据规则
183
         $(document).on("click","#add_c1",function (){
195
         $(document).on("click","#add_c1",function (){
184
             var html = '<span class="ks">';
196
             var html = '<span class="ks">';
185
-            html += $(".c1 .ks:eq(1)").html();
197
+            html += $(".c1 .ks:eq(2)").html();
186
             html += '</span>';
198
             html += '</span>';
187
             $(".c1 .ks:last").before(html);
199
             $(".c1 .ks:last").before(html);
188
         });
200
         });
190
         //增加新的数据规则
202
         //增加新的数据规则
191
         $(document).on("click","#add_d1",function (){
203
         $(document).on("click","#add_d1",function (){
192
             var html = '<span class="ks">';
204
             var html = '<span class="ks">';
193
-            html += $(".d1 .ks:eq(1)").html();
205
+            html += $(".d1 .ks:eq(2)").html();
194
             html += '</span>';
206
             html += '</span>';
195
             $(".d1 .ks:last").before(html);
207
             $(".d1 .ks:last").before(html);
196
         });
208
         });

+ 20
- 8
app/shop/view/content/closure/edit.html View File

35
     .ks:nth-child(2){
35
     .ks:nth-child(2){
36
         display: none;
36
         display: none;
37
     }
37
     }
38
+    .c1 .ks:nth-child(2){
39
+        display: block;
40
+    }
41
+    .d1 .ks:nth-child(2){
42
+        display: block;
43
+    }
44
+    .c1 .ks:nth-child(3){
45
+        display: none;
46
+    }
47
+    .d1 .ks:nth-child(3){
48
+        display: none;
49
+    }
38
 
50
 
39
     .ks_del2{
51
     .ks_del2{
40
         color: #01AAED;
52
         color: #01AAED;
69
                 <li data-type='1' class="layui-this">基础信息</li>
81
                 <li data-type='1' class="layui-this">基础信息</li>
70
                 <li data-type='2'>启动设置</li>
82
                 <li data-type='2'>启动设置</li>
71
                 <li data-type='3'>列表设置</li>
83
                 <li data-type='3'>列表设置</li>
72
-                <li data-type='4'>浏览笔记</li>
84
+                <li data-type='4'>浏览图文</li>
73
                 <li data-type='5'>浏览视频</li>
85
                 <li data-type='5'>浏览视频</li>
74
                 <li data-type='6'>互动设置</li>
86
                 <li data-type='6'>互动设置</li>
75
-                <li data-type='7'>目标设置</li>
76
-                <li data-type='8'>目标规则</li>
87
+                <li data-type='7'>获客设置</li>
88
+                <li data-type='8'>获客规则</li>
77
                 <li data-type='9'>其他设置</li>
89
                 <li data-type='9'>其他设置</li>
78
             </ul>
90
             </ul>
79
             <div class="layui-tab-content">
91
             <div class="layui-tab-content">
89
                 <div class="layui-tab-item">
101
                 <div class="layui-tab-item">
90
                     {include file="content/closure/edit/03"/}
102
                     {include file="content/closure/edit/03"/}
91
                 </div>
103
                 </div>
92
-                <!--浏览笔记-->
104
+                <!--浏览图文-->
93
                 <div class="layui-tab-item">
105
                 <div class="layui-tab-item">
94
                     {include file="content/closure/edit/04"/}
106
                     {include file="content/closure/edit/04"/}
95
                 </div>
107
                 </div>
101
                 <div class="layui-tab-item">
113
                 <div class="layui-tab-item">
102
                     {include file="content/closure/edit/06"/}
114
                     {include file="content/closure/edit/06"/}
103
                 </div>
115
                 </div>
104
-                <!--目标设置-->
116
+                <!--获客设置-->
105
                 <div class="layui-tab-item">
117
                 <div class="layui-tab-item">
106
                     {include file="content/closure/edit/07"/}
118
                     {include file="content/closure/edit/07"/}
107
                 </div>
119
                 </div>
108
-                <!--目标规则-->
120
+                <!--获客规则-->
109
                 <div class="layui-tab-item">
121
                 <div class="layui-tab-item">
110
                     {include file="content/closure/edit/08"/}
122
                     {include file="content/closure/edit/08"/}
111
                 </div>
123
                 </div>
179
         //增加新的数据规则
191
         //增加新的数据规则
180
         $(document).on("click","#add_c1",function (){
192
         $(document).on("click","#add_c1",function (){
181
             var html = '<span class="ks">';
193
             var html = '<span class="ks">';
182
-            html += $(".c1 .ks:eq(1)").html();
194
+            html += $(".c1 .ks:eq(2)").html();
183
             html += '</span>';
195
             html += '</span>';
184
             $(".c1 .ks:last").before(html);
196
             $(".c1 .ks:last").before(html);
185
         });
197
         });
187
         //增加新的数据规则
199
         //增加新的数据规则
188
         $(document).on("click","#add_d1",function (){
200
         $(document).on("click","#add_d1",function (){
189
             var html = '<span class="ks">';
201
             var html = '<span class="ks">';
190
-            html += $(".d1 .ks:eq(1)").html();
202
+            html += $(".d1 .ks:eq(2)").html();
191
             html += '</span>';
203
             html += '</span>';
192
             $(".d1 .ks:last").before(html);
204
             $(".d1 .ks:last").before(html);
193
         });
205
         });

+ 15
- 11
app/shop/view/content/closure/edit/01.html View File

1
 <div class="layui-form-item">
1
 <div class="layui-form-item">
2
-    <label for="title" class="layui-form-label"><span style="color:red;">*</span>配置标题:</label>
2
+    <label for="title" class="layui-form-label"><span style="color:red;">*</span>任务名称:</label>
3
     <div class="layui-input-inline">
3
     <div class="layui-input-inline">
4
-        <input type="text" name="title" id="title" value="{$detail.title}" lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input">
4
+        {php}
5
+        $t = $detail['shop_id'].'_'.'默认配置';
6
+        {/php}
7
+        <input type="text" {if $detail.title == $t}disabled{/if} name="title" id="title" value="{$detail.title}" lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input">
8
+        <div class="layui-form-mid layui-word-aux" style="clear: both;">可自行修改名称</div>
5
     </div>
9
     </div>
6
 </div>
10
 </div>
7
 
11
 
8
 <div class="layui-form-item">
12
 <div class="layui-form-item">
9
-    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>配置分类:</label>
13
+    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>任务分类:</label>
10
     <div class="layui-input-inline">
14
     <div class="layui-input-inline">
11
-        <select name="cid" id="cid" lay-verType="tips" lay-verify="required">
15
+        <select name="cid" id="cid" lay-verType="tips" lay-verify="required" {if $detail.title == $t}disabled{/if}>
12
             {volist name="category" id="vo"}
16
             {volist name="category" id="vo"}
13
             <option value="{$vo.id}" {if $detail.cid==$vo.id}selected{/if}>{$vo.name}</option>
17
             <option value="{$vo.id}" {if $detail.cid==$vo.id}selected{/if}>{$vo.name}</option>
14
             {/volist}
18
             {/volist}
17
 </div>
21
 </div>
18
 
22
 
19
 <div class="layui-form-item">
23
 <div class="layui-form-item">
20
-    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>配置行业:</label>
24
+    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>任务行业:</label>
21
     <div class="layui-input-inline">
25
     <div class="layui-input-inline">
22
-        <select name="yid" id="yid" lay-verType="tips" lay-verify="required">
26
+        <select name="yid" id="yid" lay-verType="tips" lay-verify="required" {if $detail.title == $t}disabled{/if}>
23
             {volist name="category2" id="vo"}
27
             {volist name="category2" id="vo"}
24
             <option value="{$vo.id}" {if $detail.yid==$vo.id}selected{/if}>{$vo.name}</option>
28
             <option value="{$vo.id}" {if $detail.yid==$vo.id}selected{/if}>{$vo.name}</option>
25
             {/volist}
29
             {/volist}
27
     </div>
31
     </div>
28
 </div>
32
 </div>
29
 
33
 
30
-<div class="layui-form-item">
34
+<div class="layui-form-item" style="display: none;">
31
     <label for="intro" class="layui-form-label">版本号:</label>
35
     <label for="intro" class="layui-form-label">版本号:</label>
32
     <div class="layui-input-inline">
36
     <div class="layui-input-inline">
33
         <input type="text" name="version" id="version" autocomplete="off" class="layui-input" value="{$detail.version}" />
37
         <input type="text" name="version" id="version" autocomplete="off" class="layui-input" value="{$detail.version}" />
35
 </div>
39
 </div>
36
 
40
 
37
 <div class="layui-form-item">
41
 <div class="layui-form-item">
38
-    <label for="intro" class="layui-form-label">配置简介:</label>
42
+    <label for="intro" class="layui-form-label">任务简介:</label>
39
     <div class="layui-input-inline">
43
     <div class="layui-input-inline">
40
         <input type="text" name="intro" id="intro" value="{$detail.intro}" autocomplete="off" class="layui-input">
44
         <input type="text" name="intro" id="intro" value="{$detail.intro}" autocomplete="off" class="layui-input">
41
     </div>
45
     </div>
42
 </div>
46
 </div>
43
 
47
 
44
 <div class="layui-form-item">
48
 <div class="layui-form-item">
45
-    <label for="sort" class="layui-form-label">配置排序:</label>
49
+    <label for="sort" class="layui-form-label">任务排序:</label>
46
     <div class="layui-input-inline">
50
     <div class="layui-input-inline">
47
         <input type="text" name="sort" id="sort" value="{$detail.sort}" autocomplete="off" class="layui-input">
51
         <input type="text" name="sort" id="sort" value="{$detail.sort}" autocomplete="off" class="layui-input">
48
     </div>
52
     </div>
76
 </div>
80
 </div>
77
 
81
 
78
 <div class="layui-form-item">
82
 <div class="layui-form-item">
79
-    <label class="layui-form-label">配置状态:</label>
83
+    <label class="layui-form-label">任务状态:</label>
80
     <div class="layui-input-inline">
84
     <div class="layui-input-inline">
81
         <input type="radio" name="is_show" value="1" title="显示" {if $detail.is_show==1}checked{/if}>
85
         <input type="radio" name="is_show" value="1" title="显示" {if $detail.is_show==1}checked{/if}>
82
         <input type="radio" name="is_show" value="0" title="隐藏" {if $detail.is_show==0}checked{/if}>
86
         <input type="radio" name="is_show" value="0" title="隐藏" {if $detail.is_show==0}checked{/if}>
83
     </div>
87
     </div>
84
 </div>
88
 </div>
85
 <div class="layui-form-item" style="display: none;">
89
 <div class="layui-form-item" style="display: none;">
86
-    <label for="content" class="layui-form-label">配置内容:</label>
90
+    <label for="content" class="layui-form-label">任务内容:</label>
87
     <div class="layui-input-block">
91
     <div class="layui-input-block">
88
         <textarea name="content" id="content" lay-verify="content">{$detail.content|raw}</textarea>
92
         <textarea name="content" id="content" lay-verify="content">{$detail.content|raw}</textarea>
89
     </div>
93
     </div>

+ 23
- 19
app/shop/view/content/closure/edit/02.html View File

1
 
1
 
2
+
3
+<div class="layui-form-item">
4
+    <label for="intro" class="layui-form-label">任务时长:</label>
5
+    <div class="layui-input-inline">
6
+        <input type="number" name="a2" id="a2" autocomplete="off" class="layui-input" value="{$extend.a2??'1800'}">
7
+        <div class="layui-form-mid layui-word-aux">按秒s,单次任务的运行时长</div>
8
+    </div>
9
+</div>
10
+
11
+
2
 <div class="layui-form-item">
12
 <div class="layui-form-item">
3
-    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>数据入口:</label>
13
+    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>优先类型:</label>
4
     <div class="layui-input-inline">
14
     <div class="layui-input-inline">
5
         <select name="a1" id="a1" lay-verType="tips" lay-verify="required" lay-filter="a1">
15
         <select name="a1" id="a1" lay-verType="tips" lay-verify="required" lay-filter="a1">
6
             <option value="推荐" {if $extend.a1=='推荐'}selected{/if}>推荐</option>
16
             <option value="推荐" {if $extend.a1=='推荐'}selected{/if}>推荐</option>
7
             <option value="搜索" {if $extend.a1=='搜索'}selected{/if}>搜索</option>
17
             <option value="搜索" {if $extend.a1=='搜索'}selected{/if}>搜索</option>
8
             <!--<option value="发现-频道" {if $extend.a1=='发现-频道'}selected{/if}>发现-频道</option>-->
18
             <!--<option value="发现-频道" {if $extend.a1=='发现-频道'}selected{/if}>发现-频道</option>-->
9
         </select>
19
         </select>
10
-        <div class="layui-form-mid layui-word-aux">默认打开app推荐页,选择搜索模式时,请填写下方的搜索词.</div>
20
+        <div class="layui-form-mid layui-word-aux" style="float: none;">默认打开app推荐页,选择搜索模式时,请填写下方的搜索词.</div>
11
     </div>
21
     </div>
12
 </div>
22
 </div>
13
 
23
 
14
 
24
 
15
 <div class="layui-form-item">
25
 <div class="layui-form-item">
16
-    <label class="layui-form-label">是否组合:</label>
17
-    <div class="layui-input-inline">
26
+    <label class="layui-form-label">切换开关:</label>
27
+    <div class="layui-input-block">
18
         <input type="radio" name="a4" value="0"  lay-filter="a4" title="否" {if isset($extend.a4)&&$extend.a4==0}checked{/if} {if !isset($extend.a4)}checked{/if}>
28
         <input type="radio" name="a4" value="0"  lay-filter="a4" title="否" {if isset($extend.a4)&&$extend.a4==0}checked{/if} {if !isset($extend.a4)}checked{/if}>
19
         <input type="radio" name="a4" value="1"  lay-filter="a4" title="是" {if isset($extend.a4)&&$extend.a4==1}checked{/if}>
29
         <input type="radio" name="a4" value="1"  lay-filter="a4" title="是" {if isset($extend.a4)&&$extend.a4==1}checked{/if}>
30
+        <div class="layui-form-mid layui-word-aux" style="float: none;">搜索和浏览推荐(发现页),运行过程是否切换,选择"是",请设置切换时间间隔</div>
20
     </div>
31
     </div>
21
 </div>
32
 </div>
22
 
33
 
23
 
34
 
24
-<div class="layui-form-item" id="a5">
25
-    <label for="intro" class="layui-form-label">推荐搜索:</label>
35
+<div class="layui-form-item" id="a5" {if $extend.a1=='搜索'}style="display: none;{/if}>
36
+    <label for="intro" class="layui-form-label">切换间隔:</label>
26
     <div class="layui-input-block">
37
     <div class="layui-input-block">
27
         每运行<font>推荐</font>
38
         每运行<font>推荐</font>
28
         <input type="number" name="a5[]" id="" autocomplete="off" class="layui-input w60" value="{$extend.a5[0]??'1800'}">
39
         <input type="number" name="a5[]" id="" autocomplete="off" class="layui-input w60" value="{$extend.a5[0]??'1800'}">
33
     </div>
44
     </div>
34
 </div>
45
 </div>
35
 
46
 
36
-<div class="layui-form-item" id="a6" style="display: none;">
37
-    <label for="intro" class="layui-form-label">搜索推荐:</label>
47
+<div class="layui-form-item" id="a6" {if $extend.a1=='推荐'}style="display: none;{/if}">
48
+    <label for="intro" class="layui-form-label">切换间隔:</label>
38
     <div class="layui-input-block">
49
     <div class="layui-input-block">
39
         每运行<font>搜索</font>
50
         每运行<font>搜索</font>
40
         <input type="number" name="a6[]" id="" autocomplete="off" class="layui-input w60" value="{$extend.a6[0]??'1800'}">
51
         <input type="number" name="a6[]" id="" autocomplete="off" class="layui-input w60" value="{$extend.a6[0]??'1800'}">
50
     <div class="layui-input-inline">
61
     <div class="layui-input-inline">
51
         <input type="text" name="a7" id="" autocomplete="off" class="layui-input" value="{$extend.a7??'职称|职称评审'}">
62
         <input type="text" name="a7" id="" autocomplete="off" class="layui-input" value="{$extend.a7??'职称|职称评审'}">
52
 
63
 
53
-        <div class="layui-form-mid layui-word-aux">切换搜索词 填写格式参考: 职称|职称评审</div>
64
+        <div class="layui-form-mid layui-word-aux" >切换搜索词 填写格式参考: 职称|职称评审</div>
54
     </div>
65
     </div>
55
 </div>
66
 </div>
56
 <div class="layui-form-item">
67
 <div class="layui-form-item">
57
     <label class="layui-form-label">切换选择:</label>
68
     <label class="layui-form-label">切换选择:</label>
58
-    <div class="layui-input-inline">
69
+    <div class="layui-input-block">
59
         <input type="radio" name="a8" value="0"  lay-filter="a8" title="随机" {if isset($extend.a8)&&$extend.a8==0}checked{/if} {if !isset($extend.a8)}checked{/if}>
70
         <input type="radio" name="a8" value="0"  lay-filter="a8" title="随机" {if isset($extend.a8)&&$extend.a8==0}checked{/if} {if !isset($extend.a8)}checked{/if}>
60
         <input type="radio" name="a8" value="1"  lay-filter="a8" title="顺序" {if isset($extend.a8)&&$extend.a8==1}checked{/if}>
71
         <input type="radio" name="a8" value="1"  lay-filter="a8" title="顺序" {if isset($extend.a8)&&$extend.a8==1}checked{/if}>
72
+        <div class="layui-form-mid layui-word-aux" style="float: none;">切换搜索词时,是按搜索词随机获取其中一个,还是按顺序搜索.</div>
61
     </div>
73
     </div>
62
 </div>
74
 </div>
63
 
75
 
131
 
143
 
132
 
144
 
133
 
145
 
134
-<div class="layui-form-item">
135
-    <label for="intro" class="layui-form-label">运行时长:</label>
136
-    <div class="layui-input-inline">
137
-        <input type="number" name="a2" id="a2" autocomplete="off" class="layui-input" value="{$extend.a2??'1800'}">
138
-        <div class="layui-form-mid layui-word-aux">按秒s</div>
139
-    </div>
140
-</div>
141
-
142
-<div class="layui-form-item">
146
+ <div class="layui-form-item" style="display: none;">
143
     <label for="intro" class="layui-form-label">操作总数:</label>
147
     <label for="intro" class="layui-form-label">操作总数:</label>
144
     <div class="layui-input-inline">
148
     <div class="layui-input-inline">
145
         <input type="number" name="a3" id="a3" autocomplete="off" class="layui-input" value="{$extend.a3??'180'}">
149
         <input type="number" name="a3" id="a3" autocomplete="off" class="layui-input" value="{$extend.a3??'180'}">

+ 22
- 20
app/shop/view/content/closure/edit/03.html View File

1
 
1
 
2
 
2
 
3
 
3
 
4
-<div class="layui-form-item">
5
-    <label for="intro" class="layui-form-label">过滤词:</label>
6
-    <div class="layui-input-inline">
7
-        <input type="text" name="b3" id="" autocomplete="off" class="layui-input" value="{$extend.b3??'课题|教师'}">
8
-
9
-        <div class="layui-form-mid layui-word-aux">列表标题过滤词 填写格式参考: 课题|教师</div>
10
-    </div>
11
-</div>
12
 
4
 
13
 <div class="layui-bg-gray" style="padding: 0px;">
5
 <div class="layui-bg-gray" style="padding: 0px;">
14
     <div class="layui-row layui-col-space15">
6
     <div class="layui-row layui-col-space15">
16
             <div class="layui-card">
8
             <div class="layui-card">
17
                 <div class="layui-card-header">列表数据</div>
9
                 <div class="layui-card-header">列表数据</div>
18
                 <div class="layui-card-body">
10
                 <div class="layui-card-body">
19
-                    <div class="layui-form-item">
11
+                    <div class="layui-form-item" style="display: none;">
20
                         <label class="layui-form-label">数据分类:</label>
12
                         <label class="layui-form-label">数据分类:</label>
21
                         <div class="layui-input-inline">
13
                         <div class="layui-input-inline">
22
-                            <input type="radio" name="b1" value="1" title="是" {if $extend.b1==1}checked{/if} >
23
-                            <input type="radio" name="b1" value="0" title="否" {if $extend.b1==0}checked{/if} disabled>
14
+                            <input type="radio" name="b1" value="1" title="是" class="layui-input" {if $extend.b1==1}checked{/if} >
15
+                            <input type="radio" name="b1" value="0" title="否" class="layui-input" {if $extend.b1==0}checked{/if} disabled>
24
                         </div>
16
                         </div>
25
                     </div>
17
                     </div>
26
 
18
 
29
                         <div class="layui-input-block">
21
                         <div class="layui-input-block">
30
 
22
 
31
         <span class="ks">
23
         <span class="ks">
32
-        匹配词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="{$extend.b2_1[0]??'其他'}" disabled>
24
+        关键词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="{$extend.b2_1[0]??'其他'}" disabled>
33
25
34
         <input type="text" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b2_2[0]??'10'}">
26
         <input type="text" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b2_2[0]??'10'}">
35
         个点击
27
         个点击
40
         </span>
32
         </span>
41
 
33
 
42
                             <span class="ks">
34
                             <span class="ks">
43
-        匹配词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="">
35
+        关键词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="">
44
36
45
         <input type="number" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="">
37
         <input type="number" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="">
46
         个点击
38
         个点击
56
 {volist name="$extend.b2_1" id="vo" key="i"}
48
 {volist name="$extend.b2_1" id="vo" key="i"}
57
     {if $key>0 && !empty($vo)}
49
     {if $key>0 && !empty($vo)}
58
         <span class="ks">
50
         <span class="ks">
59
-        匹配词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="{$vo}">
51
+        关键词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="{$vo}">
60
52
61
         <input type="number" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b2_2[$key]}">
53
         <input type="number" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b2_2[$key]}">
62
         个点击
54
         个点击
82
                     <div class="layui-form-item">
74
                     <div class="layui-form-item">
83
                         <label class="layui-form-label"></label>
75
                         <label class="layui-form-label"></label>
84
                         <div class="layui-input-block tips">
76
                         <div class="layui-input-block tips">
85
-                            匹配词不宜过长,用"-"号连接多个词语,例:
86
-                            职称-评审-申报
77
+                            <b style="color: red;">优先级1: 即在笔记列表,只要出现该关键词 - 按照设定的点击率 - 点击进入后 - 再根据获客规则 进行判定是否获客 (需要符合这里的关键词设定, 进入后再判定是否获客)</b><br/>
78
+                            每组关键词不宜过长,用"-"号连接多个词语,每组最多3个词语,例:
79
+                            职称-评审-申报  (当标题出现 职称或者评审或者申报 其中一个词 即按后面对应的点击率 进行点击)<br/>
87
                         </div>
80
                         </div>
88
                     </div>
81
                     </div>
89
 
82
 
90
 
83
 
84
+                    <div class="layui-form-item">
85
+                        <label for="intro" class="layui-form-label">标题过滤:</label>
86
+                        <div class="layui-input-inline">
87
+                            <input type="text" name="b3" id="" autocomplete="off" class="layui-input" value="{$extend.b3??'课题|教师'}">
88
+
89
+                            <div class="layui-form-mid layui-word-aux"><b style="color: red;">优先级2: 如果列表标题包含这些词,则对该笔记不进行点击,后续也就不再对这篇笔记进行获客</b><br/>推荐或搜索列表标题过滤词 填写格式参考: 课题|教师</div>
90
+                        </div>
91
+                    </div>
92
+
91
 
93
 
92
                 </div>
94
                 </div>
93
             </div>
95
             </div>
94
         </div>
96
         </div>
95
         <div class="layui-col-md12">
97
         <div class="layui-col-md12">
96
             <div class="layui-card">
98
             <div class="layui-card">
97
-                <div class="layui-card-header">滑动操作</div>
99
+                <div class="layui-card-header">列表浏览过程 - 滑动操作</div>
98
                 <div class="layui-card-body">
100
                 <div class="layui-card-body">
99
 
101
 
100
                     <div class="layui-form-item">
102
                     <div class="layui-form-item">
106
                             <input type="number" name="b4[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b4[1]??'0'}">
108
                             <input type="number" name="b4[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b4[1]??'0'}">
107
109
108
 
110
 
109
-                            <div class="layui-form-mid layui-word-aux">列表翻页随机来回滑动屏幕次数</div>
111
+                            <div class="layui-form-mid layui-word-aux">列表随机来回滑动屏幕次数 , 默认触发概率为 33%</div>
110
                         </div>
112
                         </div>
111
                     </div>
113
                     </div>
112
 
114
 
119
                             <input type="number" name="b5[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b5[1]??'0'}">
121
                             <input type="number" name="b5[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.b5[1]??'0'}">
120
122
121
 
123
 
122
-                            <div class="layui-form-mid layui-word-aux">浏览内容详情返回列表随机滑动屏幕次数</div>
124
+                            <div class="layui-form-mid layui-word-aux">浏览笔记内容详情返回列表随机滑动屏幕次数</div>
123
                         </div>
125
                         </div>
124
                     </div>
126
                     </div>
125
 
127
 
130
                             <input type="number" name="b6" id="" autocomplete="off" class="layui-input w30" value="{$extend.b6??'2'}">
132
                             <input type="number" name="b6" id="" autocomplete="off" class="layui-input w30" value="{$extend.b6??'2'}">
131
133
132
 
134
 
133
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">列表每次循环至少滑动多少次</div>
135
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">列表刷新数据 - 往上滑屏 - 至少滑动多少次</div>
134
                         </div>
136
                         </div>
135
                     </div>
137
                     </div>
136
 
138
 

+ 42
- 29
app/shop/view/content/closure/edit/04.html View File

14
14
15
         </span>
15
         </span>
16
 
16
 
17
+        <?php
18
+        //var_dump($extend['c1_1']);
19
+        ?>
20
+
21
+        <span class="ks">
22
+        评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="{if !isset($extend.c1_1[1]) || empty($extend.c1_1[1])}5-9{else/}{$extend.c1_1[1]}{/if}">
23
+        观看
24
+        <input type="number" name="c1_2[]" id="" autocomplete="off" class="layui-input w30" value="{if !isset($extend.c1_2[1]) || empty($extend.c1_2[1])}5{else/}{$extend.c1_2[1]}{/if}">
25
+        秒到
26
+        <input type="number" name="c1_3[]" id="" autocomplete="off" class="layui-input w30" value="{if !isset($extend.c1_3[1]) || empty($extend.c1_3[1])}9{else/}{$extend.c1_3[1]}{/if}">
27
+        秒
28
+        </span>
29
+
17
         <span class="ks">
30
         <span class="ks">
18
         评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
31
         评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
19
         观看
32
         观看
27
 
40
 
28
         <!--循环其他规则-->
41
         <!--循环其他规则-->
29
         {volist name="$extend.c1_1" id="vo" key="i"}
42
         {volist name="$extend.c1_1" id="vo" key="i"}
30
-        {if $key>0 && !empty($vo)}
43
+        {if $key>1 && !empty($vo)}
31
         <span class="ks">
44
         <span class="ks">
32
         评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="{$vo}">
45
         评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="{$vo}">
33
         观看
46
         观看
54
     <label class="layui-form-label"></label>
67
     <label class="layui-form-label"></label>
55
     <div class="layui-input-block tips">
68
     <div class="layui-input-block tips">
56
         评论数,用"-"号连接多个数字,例:
69
         评论数,用"-"号连接多个数字,例:
57
-        10-20 表示 10秒到20秒
70
+        <b style="color:red;">10-20 表示 10秒到20秒</b>
58
     </div>
71
     </div>
59
 </div>
72
 </div>
60
 
73
 
63
     <div class="layui-row layui-col-space15">
76
     <div class="layui-row layui-col-space15">
64
         <div class="layui-col-md12">
77
         <div class="layui-col-md12">
65
             <div class="layui-card">
78
             <div class="layui-card">
66
-                <div class="layui-card-header">随机滑动</div>
79
+                <div class="layui-card-header">浏览图文过程 - 每次翻看图文内容 - 随机往上滑动次数 (正常翻看浏览是滑动一次)</div>
67
                 <div class="layui-card-body">
80
                 <div class="layui-card-body">
68
                     <div class="layui-form-item">
81
                     <div class="layui-form-item">
69
                         <label for="intro" class="layui-form-label">随机滑动:</label>
82
                         <label for="intro" class="layui-form-label">随机滑动:</label>
74
                             <input type="number" name="c2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c2[1]??'3'}">
87
                             <input type="number" name="c2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c2[1]??'3'}">
75
88
76
 
89
 
77
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机往上滑动次数</div>
90
+                            <div class="layui-form-mid layui-word-aux">每次翻看浏览内容图文 -- 随机往上滑动次数</div>
78
                         </div>
91
                         </div>
79
                     </div>
92
                     </div>
80
 
93
 
87
                             <input type="number" name="c3[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c3[1]??'3'}">
100
                             <input type="number" name="c3[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c3[1]??'3'}">
88
101
89
 
102
 
90
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机往上滑动次数等待秒数</div>
103
+                            <div class="layui-form-mid layui-word-aux">每次滑动随机等待秒数</div>
91
                         </div>
104
                         </div>
92
                     </div>
105
                     </div>
93
                 </div>
106
                 </div>
105
                             <input type="number" name="c4" id="" autocomplete="off" class="layui-input w30" value="{$extend.c4??'15'}">
118
                             <input type="number" name="c4" id="" autocomplete="off" class="layui-input w30" value="{$extend.c4??'15'}">
106
 
119
 
107
 
120
 
108
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">浏览内容笔记类型评论总数与滑动次数比例, 评论数超过300按300算, 比例15, 表示评论区最多滑动20次</div>
121
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">浏览内容图文 - 评论区操作 - 评论总数与滑动次数比例, 评论数超过300按300算 <br/> 比例15, 表示评论区最多滑动20次, 假设评论150, 那么最多滑动10次, 比例越大 , 滑动次数越少.</div>
109
                         </div>
122
                         </div>
110
                     </div>
123
                     </div>
111
 
124
 
118
                             <input type="number" name="c5[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c5[1]??'5'}">
131
                             <input type="number" name="c5[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c5[1]??'5'}">
119
132
120
 
133
 
121
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型评论区展开回复次数</div>
134
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 次数范围</div>
122
                         </div>
135
                         </div>
123
                     </div>
136
                     </div>
124
 
137
 
125
                     <div class="layui-form-item">
138
                     <div class="layui-form-item">
126
                         <label for="intro" class="layui-form-label">展开概率:</label>
139
                         <label for="intro" class="layui-form-label">展开概率:</label>
127
                         <div class="layui-input-inline">
140
                         <div class="layui-input-inline">
128
-                            最大
129
-                            <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c6[0]??'1'}">
130
-                            随机数至最大
141
+                            从数字
142
+                            <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c6[0]??'1'}" disabled>
143
+                            至数字
131
                             <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c6[1]??'3'}">
144
                             <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c6[1]??'3'}">
132
-                            随机数
145
+                            范围内随机取一个整
133
 
146
 
134
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型评论区展开回复随机概率</div>
147
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 概率,当值=1时,进行点击</div>
135
                         </div>
148
                         </div>
136
                     </div>
149
                     </div>
137
 
150
 
138
                     <div class="layui-form-item">
151
                     <div class="layui-form-item">
139
                         <label for="intro" class="layui-form-label">更多回复:</label>
152
                         <label for="intro" class="layui-form-label">更多回复:</label>
140
                         <div class="layui-input-inline">
153
                         <div class="layui-input-inline">
141
-                            最小
142
-                            <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c7[0]??'1'}">
143
-                            随机数至最大
154
+                            从数字
155
+                            <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c7[0]??'1'}" disabled>
156
+                            至数字
144
                             <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c7[1]??'3'}">
157
                             <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c7[1]??'3'}">
145
-                            随机数
158
+                            范围内随机取一个整
146
 
159
 
147
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型评论区展开更多回复随机概率</div>
160
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开更多回复" 按钮 - 进行点击的 - 概率,当值=1时,进行点击</div>
148
                         </div>
161
                         </div>
149
                     </div>
162
                     </div>
150
 
163
 
156
 
169
 
157
         <div class="layui-col-md12">
170
         <div class="layui-col-md12">
158
             <div class="layui-card">
171
             <div class="layui-card">
159
-                <div class="layui-card-header">来回观看</div>
172
+                <div class="layui-card-header">浏览图文过程 - 来回观看</div>
160
                 <div class="layui-card-body">
173
                 <div class="layui-card-body">
161
 
174
 
162
 
175
 
163
                     <div class="layui-form-item">
176
                     <div class="layui-form-item">
164
                         <label for="intro" class="layui-form-label">来回观看:</label>
177
                         <label for="intro" class="layui-form-label">来回观看:</label>
165
                         <div class="layui-input-inline">
178
                         <div class="layui-input-inline">
166
-                            最小
167
-                            <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c8[0]??'1'}">
168
-                            随机数至最大
179
+                            从数字
180
+                            <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c8[0]??'1'}" disabled>
181
+                            至数字
169
                             <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c8[1]??'3'}">
182
                             <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c8[1]??'3'}">
170
-                            随机数
183
+                            范围内随机取一个整
171
 
184
 
172
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机来回观看概率</div>
185
+                            <div class="layui-form-mid layui-word-aux">来回观看图文内容(每次) - 触发概率,当值=1时,进行来回观看(包含上滑和下滑)</div>
173
                         </div>
186
                         </div>
174
                     </div>
187
                     </div>
175
 
188
 
176
                     <div class="layui-form-item">
189
                     <div class="layui-form-item">
177
                         <label for="intro" class="layui-form-label">向上滑动:</label>
190
                         <label for="intro" class="layui-form-label">向上滑动:</label>
178
                         <div class="layui-input-inline">
191
                         <div class="layui-input-inline">
179
-                            最
192
+                            最
180
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c9[0]??'1'}">
193
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c9[0]??'1'}">
181
-                            次至最
194
+                            次至最
182
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c9[1]??'3'}">
195
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c9[1]??'3'}">
183
196
184
 
197
 
185
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机来回观看向上滑动次数</div>
198
+                            <div class="layui-form-mid layui-word-aux">浏览内容图文类型随机来回观看(每次),向上滑动次数范围</div>
186
                         </div>
199
                         </div>
187
                     </div>
200
                     </div>
188
 
201
 
189
                     <div class="layui-form-item">
202
                     <div class="layui-form-item">
190
                         <label for="intro" class="layui-form-label">向下滑动:</label>
203
                         <label for="intro" class="layui-form-label">向下滑动:</label>
191
                         <div class="layui-input-inline">
204
                         <div class="layui-input-inline">
192
-                            最
205
+                            最
193
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c10[0]??'1'}">
206
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c10[0]??'1'}">
194
-                            次至最
207
+                            次至最
195
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c10[1]??'3'}">
208
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.c10[1]??'3'}">
196
209
197
 
210
 
198
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机来回观看向下滑动次数</div>
211
+                            <div class="layui-form-mid layui-word-aux">浏览内容图文类型随机来回观看(每次),向下滑动次数范围</div>
199
                         </div>
212
                         </div>
200
                     </div>
213
                     </div>
201
 
214
 

+ 26
- 17
app/shop/view/content/closure/edit/05.html View File

11
         <input type="number" name="d1_3[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d1_3[0]??'9'}">
11
         <input type="number" name="d1_3[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d1_3[0]??'9'}">
12
12
13
         </span>
13
         </span>
14
+        <span class="ks">
15
+
16
+        评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="{if !isset($extend.d1_1[1]) || empty($extend.d1_1[1])}5-9{else/}{$extend.d1_1[1]}{/if}">
17
+        观看
18
+        <input type="number" name="d1_2[]" id="" autocomplete="off" class="layui-input w30" value="{if !isset($extend.d1_2[1]) || empty($extend.d1_2[1])}5{else/}{$extend.d1_2[1]}{/if}">
19
+        秒到
20
+        <input type="number" name="d1_3[]" id="" autocomplete="off" class="layui-input w30" value="{if !isset($extend.d1_3[1]) || empty($extend.d1_3[1])}9{else/}{$extend.d1_3[1]}{/if}">
21
+        秒
22
+        </span>
14
 
23
 
15
         <span class="ks">
24
         <span class="ks">
16
         评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
25
         评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
25
 
34
 
26
         <!--循环其他规则-->
35
         <!--循环其他规则-->
27
         {volist name="$extend.d1_1" id="vo" key="i"}
36
         {volist name="$extend.d1_1" id="vo" key="i"}
28
-        {if $key>0 && !empty($vo)}
37
+        {if $key>1 && !empty($vo)}
29
         <span class="ks">
38
         <span class="ks">
30
         评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="{$vo}">
39
         评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="{$vo}">
31
         观看
40
         观看
52
 <div class="layui-form-item">
61
 <div class="layui-form-item">
53
     <label class="layui-form-label"></label>
62
     <label class="layui-form-label"></label>
54
     <div class="layui-input-block tips">
63
     <div class="layui-input-block tips">
55
-        来自列表进入的视频, 非用户,非下滑的视频, 评论数,用"-"号连接多个数字,例:
56
-        10-20 表示 10秒到20秒
64
+        来自列表点击进入的视频, 评论数,用"-"号连接多个数字,例:  <!--非用户,非下滑的视频-->
65
+        <b style="color:red;">10-20 表示 10秒到20秒</b>
57
     </div>
66
     </div>
58
 </div>
67
 </div>
59
 
68
 
63
     <div class="layui-row layui-col-space15">
72
     <div class="layui-row layui-col-space15">
64
         <div class="layui-col-md12">
73
         <div class="layui-col-md12">
65
             <div class="layui-card">
74
             <div class="layui-card">
66
-                <div class="layui-card-header">非列表视频操作</div>
75
+                <div class="layui-card-header">浏览视频后,往下滑,浏览新的视频</div>
67
                 <div class="layui-card-body">
76
                 <div class="layui-card-body">
68
 
77
 
69
                     <div class="layui-form-item">
78
                     <div class="layui-form-item">
75
                             <input type="number" name="d2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d2[1]??'5'}">
84
                             <input type="number" name="d2[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d2[1]??'5'}">
76
85
77
 
86
 
78
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型不互动观看时长</div>
87
+                            <div class="layui-form-mid layui-word-aux">观看时长</div>
79
                         </div>
88
                         </div>
80
                     </div>
89
                     </div>
81
 
90
 
88
                             <input type="number" name="d3[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d3[1]??'3'}">
97
                             <input type="number" name="d3[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d3[1]??'3'}">
89
98
90
 
99
 
91
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型后往下浏览视频个数</div>
100
+                            <div class="layui-form-mid layui-word-aux">往下浏览视频个数</div>
92
                         </div>
101
                         </div>
93
                     </div>
102
                     </div>
94
 
103
 
98
         </div>
107
         </div>
99
         <div class="layui-col-md12">
108
         <div class="layui-col-md12">
100
             <div class="layui-card">
109
             <div class="layui-card">
101
-                <div class="layui-card-header">评论区操作</div>
110
+                <div class="layui-card-header">视频评论区操作</div>
102
                 <div class="layui-card-body">
111
                 <div class="layui-card-body">
103
 
112
 
104
                     <div class="layui-form-item">
113
                     <div class="layui-form-item">
105
                         <label for="intro" class="layui-form-label">滑动次数:</label>
114
                         <label for="intro" class="layui-form-label">滑动次数:</label>
106
                         <div class="layui-input-inline">
115
                         <div class="layui-input-inline">
107
-                            最
116
+                            最
108
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d4[0]??'3'}">
117
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d4[0]??'3'}">
109
-                            次至最
118
+                            次至最
110
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d4[1]??'6'}">
119
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d4[1]??'6'}">
111
120
112
 
121
 
113
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型评论区最多滑动次数</div>
122
+                            <div class="layui-form-mid layui-word-aux">评论区最多滑动次数,如果遇到 "评论到底",会自动退出.</div>
114
                         </div>
123
                         </div>
115
                     </div>
124
                     </div>
116
 
125
 
124
                             <input type="number" name="d5[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d5[1]??'5'}">
133
                             <input type="number" name="d5[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d5[1]??'5'}">
125
134
126
 
135
 
127
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型评论区展开回复次数</div>
136
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 次数范围</div>
128
                         </div>
137
                         </div>
129
                     </div>
138
                     </div>
130
 
139
 
131
                     <div class="layui-form-item">
140
                     <div class="layui-form-item">
132
                         <label for="intro" class="layui-form-label">展开概率:</label>
141
                         <label for="intro" class="layui-form-label">展开概率:</label>
133
                         <div class="layui-input-inline">
142
                         <div class="layui-input-inline">
134
-                            最大
143
+                            从数字
135
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d6[0]??'1'}">
144
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d6[0]??'1'}">
136
-                            随机数至最大
145
+                            至数字
137
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d6[1]??'3'}">
146
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d6[1]??'3'}">
138
-                            随机数
147
+                            范围内随机取一个整
139
 
148
 
140
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型评论区展开回复随机概率</div>
149
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 概率,当值=1时,进行点击</div>
141
                         </div>
150
                         </div>
142
                     </div>
151
                     </div>
143
 
152
 
147
             </div>
156
             </div>
148
         </div>
157
         </div>
149
 
158
 
150
-        <div class="layui-col-md12">
159
+        <div class="layui-col-md12" style="display: none;">
151
             <div class="layui-card">
160
             <div class="layui-card">
152
                 <div class="layui-card-header">是否完整观看以及观看时长(已丢弃)</div>
161
                 <div class="layui-card-header">是否完整观看以及观看时长(已丢弃)</div>
153
                 <div class="layui-card-body">
162
                 <div class="layui-card-body">
183
                     </div>
192
                     </div>
184
 
193
 
185
                     <div class="layui-form-item">
194
                     <div class="layui-form-item">
186
-                        <label for="intro" class="layui-form-label">目标视频:</label>
195
+                        <label for="intro" class="layui-form-label">获客视频:</label>
187
                         <div class="layui-input-block">
196
                         <div class="layui-input-block">
188
                             每浏览
197
                             每浏览
189
                             <input type="number" name="d9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d9[0]??'10'}">
198
                             <input type="number" name="d9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.d9[0]??'10'}">

+ 8
- 8
app/shop/view/content/closure/edit/06.html View File

12
     <label for="" class="layui-form-label"><span style="color:red;">*</span>互动场景:</label>
12
     <label for="" class="layui-form-label"><span style="color:red;">*</span>互动场景:</label>
13
     <div class="layui-input-inline">
13
     <div class="layui-input-inline">
14
         <select name="e2" id="" lay-verType="" lay-verify="required">
14
         <select name="e2" id="" lay-verType="" lay-verify="required">
15
-            <option value="场景1_是否开启全局默认互动" {if $extend.e2=='场景1_是否开启全局默认互动'}selected{/if} >场景1_是否开启全局默认互动</option>
16
-            <option value="场景2_是否开启目标与非目标独立互动" {if $extend.e2=='场景2_是否开启目标与非目标独立互动'}selected{/if} >场景2_是否开启目标与非目标独立互动</option>
15
+            <option value="场景1_是否开启全局默认互动" {if $extend.e2=='场景1_是否开启全局默认互动'}selected{/if} >场景1_全局默认互动</option>
16
+            <option value="场景2_是否开启截流与非截流独立互动" {if $extend.e2=='场景2_是否开启截流与非截流独立互动'}selected{/if} >场景2_获客目标笔记进行单独互动设置</option>
17
         </select>
17
         </select>
18
     </div>
18
     </div>
19
 </div>
19
 </div>
28
         <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
28
         <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
29
             <ul class="layui-tab-title">
29
             <ul class="layui-tab-title">
30
                 <li class="layui-this">默认互动</li>
30
                 <li class="layui-this">默认互动</li>
31
-                <li>目标互动</li>
32
-                <li>非目标互动</li>
31
+                <li>获客目标笔记互动</li>
32
+                <li>非获客笔记互动</li>
33
             </ul>
33
             </ul>
34
             <div class="layui-tab-content" style="">
34
             <div class="layui-tab-content" style="">
35
                 <div class="layui-tab-item layui-show">
35
                 <div class="layui-tab-item layui-show">
120
 
120
 
121
 
121
 
122
                     <div class="layui-form-item">
122
                     <div class="layui-form-item">
123
-                        <label for="intro" class="layui-form-label">目标:</label>
123
+                        <label for="intro" class="layui-form-label">获客:</label>
124
                         <div class="layui-input-block">
124
                         <div class="layui-input-block">
125
 
125
 
126
         <span class="ds">
126
         <span class="ds">
203
 
203
 
204
 
204
 
205
                     <div class="layui-form-item">
205
                     <div class="layui-form-item">
206
-                        <label for="intro" class="layui-form-label">非目标:</label>
206
+                        <label for="intro" class="layui-form-label">非获客:</label>
207
                         <div class="layui-input-block">
207
                         <div class="layui-input-block">
208
 
208
 
209
         <span class="ds">
209
         <span class="ds">
298
         <textarea name="e7" placeholder="" class="layui-textarea">{$extend.e7??''}</textarea>
298
         <textarea name="e7" placeholder="" class="layui-textarea">{$extend.e7??''}</textarea>
299
 
299
 
300
         <div class="layui-form-mid layui-word-aux" style="float: none;">
300
         <div class="layui-form-mid layui-word-aux" style="float: none;">
301
-            互动评论随机语句, 每一句用符号"|" 号隔开,长度500字以内;
301
+            互动评论随机语句, 每一句用符号"|" 号隔开,长度500字以内;
302
         </div>
302
         </div>
303
     </div>
303
     </div>
304
 </div>
304
 </div>
319
                             <input type="number" name="e6" id="" autocomplete="off" class="layui-input w30" value="{$extend.e6??'1'}">
319
                             <input type="number" name="e6" id="" autocomplete="off" class="layui-input w30" value="{$extend.e6??'1'}">
320
 
320
 
321
 
321
 
322
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">进入用户主页观看多少个内容</div>
322
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">访问用户主页,浏览该用户几个作品</div>
323
                         </div>
323
                         </div>
324
                     </div>
324
                     </div>
325
 
325
 

+ 21
- 21
app/shop/view/content/closure/edit/07.html View File

1
 
1
 
2
-<div class="layui-form-item">
3
-    <label class="layui-form-label">限制目标:</label>
2
+<div class="layui-form-item" style="display: none;">
3
+    <label class="layui-form-label">限制获客:</label>
4
     <div class="layui-input-inline">
4
     <div class="layui-input-inline">
5
 
5
 
6
         <input type="radio" name="f1" value="1" title="是" {if $extend.f1==1}checked{/if} disabled>
6
         <input type="radio" name="f1" value="1" title="是" {if $extend.f1==1}checked{/if} disabled>
7
         <input type="radio" name="f1" value="0" title="否" {if $extend.f1==0}checked{/if} >
7
         <input type="radio" name="f1" value="0" title="否" {if $extend.f1==0}checked{/if} >
8
 
8
 
9
-        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启强制目标模式</div>
9
+        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启强制获客模式</div>
10
     </div>
10
     </div>
11
 </div>
11
 </div>
12
 
12
 
13
 
13
 
14
 <div class="layui-form-item">
14
 <div class="layui-form-item">
15
-    <label class="layui-form-label">目标开关:</label>
15
+    <label class="layui-form-label">获客开关:</label>
16
     <div class="layui-input-inline">
16
     <div class="layui-input-inline">
17
 
17
 
18
         <input type="radio" name="f27" value="1" title="是" {if isset($extend.f27)&&$extend.f27==1}checked{/if} {if !isset($extend.f27)}checked{/if}>
18
         <input type="radio" name="f27" value="1" title="是" {if isset($extend.f27)&&$extend.f27==1}checked{/if} {if !isset($extend.f27)}checked{/if}>
19
         <input type="radio" name="f27" value="0" title="否"  {if isset($extend.f27)&&$extend.f27==0}checked{/if}>
19
         <input type="radio" name="f27" value="0" title="否"  {if isset($extend.f27)&&$extend.f27==0}checked{/if}>
20
 
20
 
21
-        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启目标</div>
21
+        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启获客</div>
22
     </div>
22
     </div>
23
 </div>
23
 </div>
24
 
24
 
28
     <div class="layui-row layui-col-space15">
28
     <div class="layui-row layui-col-space15">
29
         <div class="layui-col-md12">
29
         <div class="layui-col-md12">
30
             <div class="layui-card">
30
             <div class="layui-card">
31
-                <div class="layui-card-header">目标相关互动设置</div>
31
+                <div class="layui-card-header">获客-针对目标笔记-相关互动设置</div>
32
                 <div class="layui-card-body">
32
                 <div class="layui-card-body">
33
 
33
 
34
 
34
 
35
                     <div class="layui-form-item">
35
                     <div class="layui-form-item">
36
-                        <label class="layui-form-label">目标互动:</label>
36
+                        <label class="layui-form-label">作者互动:</label>
37
                         <div class="layui-input-inline">
37
                         <div class="layui-input-inline">
38
 
38
 
39
                             <input type="radio" name="f2" value="1" title="是" {if $extend.f2==1}checked{/if}>
39
                             <input type="radio" name="f2" value="1" title="是" {if $extend.f2==1}checked{/if}>
40
                             <input type="radio" name="f2" value="0" title="否" {if $extend.f2==0}checked{/if}>
40
                             <input type="radio" name="f2" value="0" title="否" {if $extend.f2==0}checked{/if}>
41
 
41
 
42
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标对象是否进行互动行为</div>
42
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">进行获客 过程中 对目标笔记内容(作者) 是否进行互动行为</div>
43
                         </div>
43
                         </div>
44
                     </div>
44
                     </div>
45
 
45
 
51
                             <input type="radio" name="f3" value="0" title="否" {if $extend.f3==0}checked{/if}>
51
                             <input type="radio" name="f3" value="0" title="否" {if $extend.f3==0}checked{/if}>
52
                             <input type="radio" name="f3" value="2" title="随机" {if $extend.f3==2}checked{/if}>
52
                             <input type="radio" name="f3" value="2" title="随机" {if $extend.f3==2}checked{/if}>
53
 
53
 
54
-                            <div class="layui-form-mid layui-word-aux" >进入用户主页,浏览笔记评论后,是否对用户进行关注</div>
54
+                            <div class="layui-form-mid layui-word-aux" >进入用户主页,浏览笔记评论或私信后,是否对用户进行关注</div>
55
                         </div>
55
                         </div>
56
                     </div>
56
                     </div>
57
 
57
 
58
                     <div class="layui-form-item">
58
                     <div class="layui-form-item">
59
-                        <label for="intro" class="layui-form-label">关注概率:</label>
59
+                        <label for="intro" class="layui-form-label">随机概率:</label>
60
                         <div class="layui-input-block">
60
                         <div class="layui-input-block">
61
 
61
 
62
                             <input type="number" name="f4" id="" autocomplete="off" class="layui-input w30" value="{$extend.f4??'30'}">%
62
                             <input type="number" name="f4" id="" autocomplete="off" class="layui-input w30" value="{$extend.f4??'30'}">%
63
 
63
 
64
 
64
 
65
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标用户是否进行关注随机概率_百分比</div>
65
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">获客用户是否进行关注随机概率_百分比</div>
66
                         </div>
66
                         </div>
67
                     </div>
67
                     </div>
68
 
68
 
71
         </div>
71
         </div>
72
         <div class="layui-col-md12">
72
         <div class="layui-col-md12">
73
             <div class="layui-card">
73
             <div class="layui-card">
74
-                <div class="layui-card-header">内容评论区目标</div>
74
+                <div class="layui-card-header">内容评论区获客</div>
75
                 <div class="layui-card-body">
75
                 <div class="layui-card-body">
76
 
76
 
77
 
77
 
78
                     <div class="layui-form-item">
78
                     <div class="layui-form-item">
79
-                        <label for="intro" class="layui-form-label">笔记滑动:</label>
79
+                        <label for="intro" class="layui-form-label">图文滑动:</label>
80
                         <div class="layui-input-block">
80
                         <div class="layui-input-block">
81
 
81
 
82
                             评论区滑动 <input type="number" name="f5" id="" autocomplete="off" class="layui-input w30" value="{$extend.f5??'20'}"> 次
82
                             评论区滑动 <input type="number" name="f5" id="" autocomplete="off" class="layui-input w30" value="{$extend.f5??'20'}"> 次
83
 
83
 
84
 
84
 
85
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标笔记内容对象评论区最多滑动多少次</div>
85
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">获客目标图文内容 - 评论区最多滑动多少次</div>
86
                         </div>
86
                         </div>
87
                     </div>
87
                     </div>
88
 
88
 
92
 
92
 
93
                             评论区滑动 <input type="number" name="f6" id="" autocomplete="off" class="layui-input w30" value="{$extend.f6??'20'}"> 次
93
                             评论区滑动 <input type="number" name="f6" id="" autocomplete="off" class="layui-input w30" value="{$extend.f6??'20'}"> 次
94
 
94
 
95
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标视频内容对象评论区最多滑动多少次</div>
95
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">获客视频内容对象评论区最多滑动多少次</div>
96
                         </div>
96
                         </div>
97
                     </div>
97
                     </div>
98
 
98
 
99
                     <div class="layui-form-item">
99
                     <div class="layui-form-item">
100
-                        <label for="intro" class="layui-form-label">目标总数:</label>
100
+                        <label for="intro" class="layui-form-label">获客总数:</label>
101
                         <div class="layui-input-block">
101
                         <div class="layui-input-block">
102
 
102
 
103
-                            (针对用户)可评论总数 <input type="number" name="f7" id="" autocomplete="off" class="layui-input w30" value="{$extend.f7??'40'}"> 次
103
+                            (针对用户主页笔记)可评论总数 <input type="number" name="f7" id="" autocomplete="off" class="layui-input w30" value="{$extend.f7??'40'}"> 次
104
 
104
 
105
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标进入用户存在内容可评论总数</div>
105
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">单次任务 - 进入用户笔记 - 进行评论的总数量</div>
106
                         </div>
106
                         </div>
107
                     </div>
107
                     </div>
108
 
108
 
109
                     <div class="layui-form-item">
109
                     <div class="layui-form-item">
110
-                        <label for="intro" class="layui-form-label">笔记匹配:</label>
110
+                        <label for="intro" class="layui-form-label">图文匹配:</label>
111
                         <div class="layui-input-block">
111
                         <div class="layui-input-block">
112
 
112
 
113
                             评论
113
                             评论
116
                             <input type="number" name="f8[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.f8[1]??'7'}">
116
                             <input type="number" name="f8[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.f8[1]??'7'}">
117
117
118
 
118
 
119
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标 每篇 笔记内容最多成功匹配多少个评论</div>
119
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">每篇图文-评论区-最多成功匹配多少个评论</div>
120
                         </div>
120
                         </div>
121
                     </div>
121
                     </div>
122
 
122
 
130
                             <input type="number" name="f9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.f9[1]??'7'}">
130
                             <input type="number" name="f9[]" id="" autocomplete="off" class="layui-input w30" value="{$extend.f9[1]??'7'}">
131
131
132
 
132
 
133
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标 每篇 视频内容最多成功匹配多少个评论</div>
133
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">每个视频-评论区-最多成功匹配多少个评论</div>
134
                         </div>
134
                         </div>
135
                     </div>
135
                     </div>
136
 
136
 

+ 107
- 97
app/shop/view/content/closure/edit/08.html View File

1
 
1
 
2
 <div class="layui-collapse wb80" lay-accordion>
2
 <div class="layui-collapse wb80" lay-accordion>
3
     <div class="layui-colla-item">
3
     <div class="layui-colla-item">
4
-        <h2 class="layui-colla-title">标题账号触发与过滤</h2>
4
+        <h2 class="layui-colla-title">获客目标笔记 - 标题和账号 - 关键词匹配与过滤</h2>
5
         <div class="layui-colla-content layui-show">
5
         <div class="layui-colla-content layui-show">
6
 
6
 
7
             <div class="layui-form-item">
7
             <div class="layui-form-item">
11
                     <textarea name="f10" placeholder="" class="layui-textarea">{$extend.f10??''}</textarea>
11
                     <textarea name="f10" placeholder="" class="layui-textarea">{$extend.f10??''}</textarea>
12
 
12
 
13
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
13
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
14
-                        目标指定账号列表, 每一句用符号"|" 号隔开,长度500字以内;
14
+                        <b style="color: red;">优先级为3: 指定账号列表,进入笔记后,只要作者 包含于所指定的账号内 直接进入评论区获客</b>, 每一句用符号"|" 号隔开,总长度500字以内;
15
                     </div>
15
                     </div>
16
                 </div>
16
                 </div>
17
             </div>
17
             </div>
18
 
18
 
19
             <div class="layui-form-item">
19
             <div class="layui-form-item">
20
-                <label for="intro" class="layui-form-label">关键词:</label>
20
+                <label for="intro" class="layui-form-label">标题匹配:</label>
21
                 <div class="layui-input-block">
21
                 <div class="layui-input-block">
22
 
22
 
23
-                    <textarea name="f11" placeholder="" class="layui-textarea">{$extend.f11??''}</textarea>
23
+                    <textarea name="f13" placeholder="" class="layui-textarea">{$extend.f13??''}</textarea>
24
 
24
 
25
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
25
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
26
-                        目标<账号>关键词, 每一句用符号"|" 号隔开,长度500字以内;
26
+                        <b style="color: red;">优先级4 针对笔记标题进行匹配</b>, 每一句用符号"|" 号隔开,总长度500字以内;
27
                     </div>
27
                     </div>
28
                 </div>
28
                 </div>
29
             </div>
29
             </div>
30
 
30
 
31
-
32
             <div class="layui-form-item">
31
             <div class="layui-form-item">
33
-                <label for="intro" class="layui-form-label">过滤词:</label>
32
+                <label for="intro" class="layui-form-label">账号匹配:</label>
34
                 <div class="layui-input-block">
33
                 <div class="layui-input-block">
35
 
34
 
36
-                    <textarea name="f12" placeholder="" class="layui-textarea">{$extend.f12??''}</textarea>
35
+                    <textarea name="f11" placeholder="" class="layui-textarea">{$extend.f11??''}</textarea>
37
 
36
 
38
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
37
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
39
-                        目标<账号>过滤词列表, 每一句用符号"|" 号隔开,长度500字以内;
38
+                        <b style="color: red;">优先级5 针对笔记作者账号关键词进行匹配</b>, 每一句用符号"|" 号隔开,长度500字以内;
40
                     </div>
39
                     </div>
41
                 </div>
40
                 </div>
42
             </div>
41
             </div>
43
 
42
 
43
+
44
+
44
             <div class="layui-form-item">
45
             <div class="layui-form-item">
45
-                <label for="intro" class="layui-form-label">标题触发:</label>
46
+                <label for="intro" class="layui-form-label">标题过滤:</label>
46
                 <div class="layui-input-block">
47
                 <div class="layui-input-block">
47
 
48
 
48
-                    <textarea name="f13" placeholder="" class="layui-textarea">{$extend.f13??''}</textarea>
49
+                    <textarea name="f14" placeholder="" class="layui-textarea">{$extend.f14??''}</textarea>
49
 
50
 
50
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
51
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
51
-                        目标内容名称关键词, 每一句用符号"|" 号隔开,长度500字以内;
52
+                        <b style="color: red;">优先级6 针对笔记作者账号关键词进行过滤</b>, 每一句用符号"|" 号隔开,总长度500字以内;
52
                     </div>
53
                     </div>
53
                 </div>
54
                 </div>
54
             </div>
55
             </div>
55
 
56
 
56
 
57
 
57
             <div class="layui-form-item">
58
             <div class="layui-form-item">
58
-                <label for="intro" class="layui-form-label">标题过滤:</label>
59
+                <label for="intro" class="layui-form-label">账号过滤:</label>
59
                 <div class="layui-input-block">
60
                 <div class="layui-input-block">
60
 
61
 
61
-                    <textarea name="f14" placeholder="" class="layui-textarea">{$extend.f14??''}</textarea>
62
+                    <textarea name="f12" placeholder="" class="layui-textarea">{$extend.f12??''}</textarea>
62
 
63
 
63
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
64
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
64
-                        目标内容名称过滤词, 每一句用符号"|" 号隔开,长度500字以内;
65
+                        <b style="color: red;">优先级7 针对笔记作者账号关键词进行过滤</b>, 每一句用符号"|" 号隔开,总长度500字以内;
65
                     </div>
66
                     </div>
66
                 </div>
67
                 </div>
67
             </div>
68
             </div>
68
 
69
 
69
 
70
 
71
+
72
+
73
+
74
+
70
         </div>
75
         </div>
71
     </div>
76
     </div>
72
     <div class="layui-colla-item">
77
     <div class="layui-colla-item">
73
-        <h2 class="layui-colla-title">评论与私信触发与过滤</h2>
78
+        <h2 class="layui-colla-title">笔记评论区 - 作者笔记下面的用户评论 - 针对用户进行评论与私信的规则-触发与过滤</h2>
74
         <div class="layui-colla-content">
79
         <div class="layui-colla-content">
75
 
80
 
76
             <div class="layui-form-item">
81
             <div class="layui-form-item">
77
-                <label for="intro" class="layui-form-label">笔记评论:</label>
82
+                <label for="intro" class="layui-form-label">评论:</label>
78
                 <div class="layui-input-block">
83
                 <div class="layui-input-block">
79
 
84
 
80
                     <textarea name="f15" placeholder="" class="layui-textarea">{$extend.f15??''}</textarea>
85
                     <textarea name="f15" placeholder="" class="layui-textarea">{$extend.f15??''}</textarea>
81
 
86
 
82
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
87
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
83
-                        目标笔记内容 评论/私信 满足时间条件的关键词 正则, 每一句用符号"|" 号隔开,长度500字以内;
88
+                        针对 用户评论<b style="color:red;">(图文类笔记评论区)</b> 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
84
                     </div>
89
                     </div>
85
                 </div>
90
                 </div>
86
             </div>
91
             </div>
92
                     <textarea name="f16" placeholder="" class="layui-textarea">{$extend.f16??''}</textarea>
97
                     <textarea name="f16" placeholder="" class="layui-textarea">{$extend.f16??''}</textarea>
93
 
98
 
94
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
99
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
95
-                        目标笔记内容 评论/私信 满足时间条件的关键词, 每一句用符号 "," 号隔开,长度500字以内;
100
+                        针对 用户评论 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
96
                     </div>
101
                     </div>
97
                 </div>
102
                 </div>
98
             </div>
103
             </div>
99
 
104
 
100
             <div class="layui-form-item">
105
             <div class="layui-form-item">
101
-                <label for="intro" class="layui-form-label">视频评论:</label>
106
+                <label for="intro" class="layui-form-label">评论:</label>
102
                 <div class="layui-input-block">
107
                 <div class="layui-input-block">
103
 
108
 
104
                     <textarea name="f17" placeholder="" class="layui-textarea">{$extend.f17??''}</textarea>
109
                     <textarea name="f17" placeholder="" class="layui-textarea">{$extend.f17??''}</textarea>
105
 
110
 
106
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
111
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
107
-                        目标视频内容 评论/私信 满足时间条件的关键词 正则, 每一句用符号"|" 号隔开,长度500字以内;
112
+                        针对 用户评论<b style="color:red;">(视频类笔记评论区)</b> 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
108
                     </div>
113
                     </div>
109
                 </div>
114
                 </div>
110
             </div>
115
             </div>
116
                     <textarea name="f18" placeholder="" class="layui-textarea">{$extend.f18??''}</textarea>
121
                     <textarea name="f18" placeholder="" class="layui-textarea">{$extend.f18??''}</textarea>
117
 
122
 
118
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
123
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
119
-                        目标视频内容 评论/私信 满足时间条件的关键词, 每一句用符号 "," 号隔开,长度500字以内;
124
+                        针对 用户评论 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
120
                     </div>
125
                     </div>
121
                 </div>
126
                 </div>
122
             </div>
127
             </div>
123
 
128
 
124
             <div class="layui-form-item">
129
             <div class="layui-form-item">
125
-                <label for="intro" class="layui-form-label">评论账号:</label>
130
+                <label for="intro" class="layui-form-label">用户账号:</label>
126
                 <div class="layui-input-block">
131
                 <div class="layui-input-block">
127
 
132
 
128
                     <textarea name="f19" placeholder="" class="layui-textarea">{$extend.f19??''}</textarea>
133
                     <textarea name="f19" placeholder="" class="layui-textarea">{$extend.f19??''}</textarea>
129
 
134
 
130
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
135
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
131
-                        目标 评论/私信 账号 过滤词, 每一句用符号"|" 号隔开,长度500字以内;
136
+                        针对评论区的 用户账号 进行 过滤词设置, 每一句用符号"|" 号隔开,总长度500字以内;
132
                     </div>
137
                     </div>
133
                 </div>
138
                 </div>
134
             </div>
139
             </div>
137
 
142
 
138
         </div>
143
         </div>
139
     </div>
144
     </div>
145
+
140
     <div class="layui-colla-item">
146
     <div class="layui-colla-item">
141
-        <h2 class="layui-colla-title">具体评论设置</h2>
147
+        <h2 class="layui-colla-title">针对笔记评论区 用户的评论内容 进行关键词 匹配,进行私信的操作</h2>
142
         <div class="layui-colla-content">
148
         <div class="layui-colla-content">
143
 
149
 
144
 
150
 
145
-
146
-
147
             <div class="layui-form-item">
151
             <div class="layui-form-item">
148
-                <label class="layui-form-label">开启评论:</label>
152
+                <label class="layui-form-label">开启私信:</label>
149
                 <div class="layui-input-inline">
153
                 <div class="layui-input-inline">
150
-                    <input type="radio" name="f22" value="1" title="是" {if isset($extend.f22)&&$extend.f22==1}checked{/if} {if !isset($extend.f22)}checked{/if}>
151
-                    <input type="radio" name="f22" value="0" title="否" {if isset($extend.f22)&&$extend.f22==0}checked{/if}>
154
+                    <input type="radio" name="f23" value="1" title="是" {if isset($extend.f23)&&$extend.f23==1}checked{/if} {if
155
+                           !isset($extend.f23)}checked{/if}>
156
+                    <input type="radio" name="f23" value="0" title="否" {if isset($extend.f23)&&$extend.f23==0}checked{/if}>
152
                 </div>
157
                 </div>
153
             </div>
158
             </div>
154
 
159
 
155
 
160
 
156
             <div class="layui-form-item">
161
             <div class="layui-form-item">
157
-                <label for="intro" class="layui-form-label">评论触发:</label>
162
+                <label for="intro" class="layui-form-label">私信触发:</label>
158
                 <div class="layui-input-block">
163
                 <div class="layui-input-block">
159
 
164
 
160
-                    <textarea name="f20" placeholder="" class="layui-textarea">{$extend.f20??''}</textarea>
165
+                    <textarea name="f24" placeholder="" class="layui-textarea">{$extend.f24??''}</textarea>
161
 
166
 
162
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
167
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
163
-                        目标评论 内容 关键词, 每一句用符号"|" 号隔开,长度500字以内;
168
+                        用户的评论内容 关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
169
+                        <br/>
170
+                        <b style="color: red;">优先匹配私信规则,匹配成功不再匹配评论设置</b>
164
                     </div>
171
                     </div>
165
                 </div>
172
                 </div>
166
             </div>
173
             </div>
167
 
174
 
168
 
175
 
169
-
170
-
171
-            <div class="layui-form-item f21">
172
-                <label class="layui-form-label">评论内容:</label>
176
+            <div class="layui-form-item f25">
177
+                <label class="layui-form-label">私信内容:</label>
173
                 <div class="layui-input-block">
178
                 <div class="layui-input-block">
174
 
179
 
175
         <span class="ks">
180
         <span class="ks">
180
     </div>
185
     </div>
181
     <div class="layui-col-xs3">
186
     <div class="layui-col-xs3">
182
       <div class="grid-demo">
187
       <div class="grid-demo">
183
-          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="{$extend.f21_1[0]??'default'}" disabled>
188
+          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="{$extend.f25_1[0]??'default'}" disabled>
184
       </div>
189
       </div>
185
     </div>
190
     </div>
186
     <div class="layui-col-xs1">
191
     <div class="layui-col-xs1">
187
-      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
192
+      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
188
     </div>
193
     </div>
189
     <div class="layui-col-xs4">
194
     <div class="layui-col-xs4">
190
       <div class="grid-demo">
195
       <div class="grid-demo">
191
-          <textarea name="f21_2[]" placeholder="" class="layui-textarea">{$extend.f21_2[0]??''}</textarea>
196
+          <textarea name="f25_2[]" placeholder="" class="layui-textarea">{$extend.f25_2[0]??''}</textarea>
192
       </div>
197
       </div>
193
     </div>
198
     </div>
194
 
199
 
210
     </div>
215
     </div>
211
     <div class="layui-col-xs3">
216
     <div class="layui-col-xs3">
212
       <div class="grid-demo">
217
       <div class="grid-demo">
213
-          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="">
218
+          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="">
214
       </div>
219
       </div>
215
     </div>
220
     </div>
216
     <div class="layui-col-xs1">
221
     <div class="layui-col-xs1">
217
-      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
222
+      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
218
     </div>
223
     </div>
219
     <div class="layui-col-xs4">
224
     <div class="layui-col-xs4">
220
       <div class="grid-demo">
225
       <div class="grid-demo">
221
-          <textarea name="f21_2[]" placeholder="" class="layui-textarea"></textarea>
226
+          <textarea name="f25_2[]" placeholder="" class="layui-textarea"></textarea>
222
       </div>
227
       </div>
223
     </div>
228
     </div>
224
 
229
 
234
 
239
 
235
         </span>
240
         </span>
236
 
241
 
242
+
237
                     <!--循环其他规则-->
243
                     <!--循环其他规则-->
238
-                    {volist name="$extend.f21_1" id="vo" key="i"}
244
+                    {if isset($extend.f25_1)}
245
+                    {volist name="$extend.f25_1" id="vo" key="i"}
239
                     {if $key>0 && !empty($vo)}
246
                     {if $key>0 && !empty($vo)}
240
 
247
 
241
                     <span class="ks">
248
                     <span class="ks">
245
     </div>
252
     </div>
246
     <div class="layui-col-xs3">
253
     <div class="layui-col-xs3">
247
       <div class="grid-demo">
254
       <div class="grid-demo">
248
-          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="{$vo}">
255
+          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="{$vo}">
249
       </div>
256
       </div>
250
     </div>
257
     </div>
251
     <div class="layui-col-xs1">
258
     <div class="layui-col-xs1">
252
-      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
259
+      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
253
     </div>
260
     </div>
254
     <div class="layui-col-xs4">
261
     <div class="layui-col-xs4">
255
       <div class="grid-demo">
262
       <div class="grid-demo">
256
-          <textarea name="f21_2[]" placeholder="" class="layui-textarea">{$extend.f21_2[$key]}</textarea>
263
+          <textarea name="f25_2[]" placeholder="" class="layui-textarea">{$extend.f25_2[$key]}</textarea>
257
       </div>
264
       </div>
258
     </div>
265
     </div>
259
 
266
 
270
         </span>
277
         </span>
271
                     {/if}
278
                     {/if}
272
                     {/volist}
279
                     {/volist}
280
+                    {/if}
273
 
281
 
274
 
282
 
275
 
283
 
276
-
277
-
278
-        <span class="ks">
279
-            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f21" lay-event="add_f21">新增规则</button>
284
+                    <span class="ks">
285
+            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f25" lay-event="add_f25">新增规则</button>
280
         </span>
286
         </span>
281
 
287
 
282
                 </div>
288
                 </div>
286
             <div class="layui-form-item">
292
             <div class="layui-form-item">
287
                 <label class="layui-form-label"></label>
293
                 <label class="layui-form-label"></label>
288
                 <div class="layui-input-block tips">
294
                 <div class="layui-input-block tips">
289
-                    关键词,比如"怎么评" , 目标评论随机语句 ,用"-"号连接多个语句
295
+                    关键词, 比如"怎么评"(每条规则一个词), 获客私信语句 ,用"|"号连接多个语句,随机其中一个
290
                 </div>
296
                 </div>
291
             </div>
297
             </div>
292
 
298
 
299
+            <div class="layui-form-item">
300
+                <label for="intro" class="layui-form-label">私信条数:</label>
301
+                <div class="layui-input-block">
302
+                    <input type="number" name="f26" id="" autocomplete="off" class="layui-input w30" value="{$extend.f26??'10'}">
303
+                    <div class="layui-form-mid layui-word-aux" style="float: none;">小红书规则,一般一个账号一天最多10条主动私信</div>
304
+                </div>
305
+            </div>
293
 
306
 
294
             <div class="layui-form-item">
307
             <div class="layui-form-item">
295
-                <label class="layui-form-label">转为私信:</label>
308
+                <label class="layui-form-label">转为评论:</label>
296
                 <div class="layui-input-inline">
309
                 <div class="layui-input-inline">
297
-                    <input type="radio" name="f28" value="1" title="是" {if isset($extend.f28)&&$extend.f28==1}checked{/if} {if !isset($extend.f28)}checked{/if}>
298
-                    <input type="radio" name="f28" value="0" title="否" {if isset($extend.f28)&&$extend.f28==0}checked{/if}>
310
+                    <input type="radio" name="f29" value="1" title="是" {if isset($extend.f29)&&$extend.f29==1}checked{/if} {if
311
+                           !isset($extend.f29)}checked{/if}>
312
+                    <input type="radio" name="f29" value="0" title="否" {if isset($extend.f29)&&$extend.f29==0}checked{/if}>
299
 
313
 
300
-                    <div class="layui-form-mid layui-word-aux" style="float: none;">评论失败的时候(包含用户没有笔记) 是否转为私信</div>
314
+                    <div class="layui-form-mid layui-word-aux" style="float: none;">私信失败(用户关闭私信权限)的时候(包含私信发送失败) 是否转为私信</div>
301
                 </div>
315
                 </div>
302
             </div>
316
             </div>
303
 
317
 
318
+
304
         </div>
319
         </div>
305
     </div>
320
     </div>
306
 
321
 
307
-
308
-
309
     <div class="layui-colla-item">
322
     <div class="layui-colla-item">
310
-        <h2 class="layui-colla-title">具体私信设置</h2>
323
+        <h2 class="layui-colla-title">针对笔记评论区 用户的评论内容 进行关键词 匹配,进行评论的操作</h2>
311
         <div class="layui-colla-content">
324
         <div class="layui-colla-content">
312
 
325
 
313
 
326
 
327
+
328
+
314
             <div class="layui-form-item">
329
             <div class="layui-form-item">
315
-                <label class="layui-form-label">开启私信:</label>
330
+                <label class="layui-form-label">开启评论:</label>
316
                 <div class="layui-input-inline">
331
                 <div class="layui-input-inline">
317
-                    <input type="radio" name="f23" value="1" title="是" {if isset($extend.f23)&&$extend.f23==1}checked{/if} {if
318
-                           !isset($extend.f23)}checked{/if}>
319
-                    <input type="radio" name="f23" value="0" title="否" {if isset($extend.f23)&&$extend.f23==0}checked{/if}>
332
+                    <input type="radio" name="f22" value="1" title="是" {if isset($extend.f22)&&$extend.f22==1}checked{/if} {if !isset($extend.f22)}checked{/if}>
333
+                    <input type="radio" name="f22" value="0" title="否" {if isset($extend.f22)&&$extend.f22==0}checked{/if}>
320
                 </div>
334
                 </div>
321
             </div>
335
             </div>
322
 
336
 
323
 
337
 
324
             <div class="layui-form-item">
338
             <div class="layui-form-item">
325
-                <label for="intro" class="layui-form-label">私信触发:</label>
339
+                <label for="intro" class="layui-form-label">评论触发:</label>
326
                 <div class="layui-input-block">
340
                 <div class="layui-input-block">
327
 
341
 
328
-                    <textarea name="f24" placeholder="" class="layui-textarea">{$extend.f24??''}</textarea>
342
+                    <textarea name="f20" placeholder="" class="layui-textarea">{$extend.f20??''}</textarea>
329
 
343
 
330
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
344
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
331
-                        目标评论 内容 关键词, 每一句用符号"|" 号隔开,长度500字以内;
345
+                        用户的评论内容 关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
332
                     </div>
346
                     </div>
333
                 </div>
347
                 </div>
334
             </div>
348
             </div>
335
 
349
 
336
 
350
 
337
-            <div class="layui-form-item f25">
338
-                <label class="layui-form-label">私信内容:</label>
351
+
352
+
353
+            <div class="layui-form-item f21">
354
+                <label class="layui-form-label">评论内容:</label>
339
                 <div class="layui-input-block">
355
                 <div class="layui-input-block">
340
 
356
 
341
         <span class="ks">
357
         <span class="ks">
346
     </div>
362
     </div>
347
     <div class="layui-col-xs3">
363
     <div class="layui-col-xs3">
348
       <div class="grid-demo">
364
       <div class="grid-demo">
349
-          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="{$extend.f25_1[0]??'default'}" disabled>
365
+          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="{$extend.f21_1[0]??'default'}" disabled>
350
       </div>
366
       </div>
351
     </div>
367
     </div>
352
     <div class="layui-col-xs1">
368
     <div class="layui-col-xs1">
353
-      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
369
+      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
354
     </div>
370
     </div>
355
     <div class="layui-col-xs4">
371
     <div class="layui-col-xs4">
356
       <div class="grid-demo">
372
       <div class="grid-demo">
357
-          <textarea name="f25_2[]" placeholder="" class="layui-textarea">{$extend.f25_2[0]??''}</textarea>
373
+          <textarea name="f21_2[]" placeholder="" class="layui-textarea">{$extend.f21_2[0]??''}</textarea>
358
       </div>
374
       </div>
359
     </div>
375
     </div>
360
 
376
 
376
     </div>
392
     </div>
377
     <div class="layui-col-xs3">
393
     <div class="layui-col-xs3">
378
       <div class="grid-demo">
394
       <div class="grid-demo">
379
-          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="">
395
+          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="">
380
       </div>
396
       </div>
381
     </div>
397
     </div>
382
     <div class="layui-col-xs1">
398
     <div class="layui-col-xs1">
383
-      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
399
+      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
384
     </div>
400
     </div>
385
     <div class="layui-col-xs4">
401
     <div class="layui-col-xs4">
386
       <div class="grid-demo">
402
       <div class="grid-demo">
387
-          <textarea name="f25_2[]" placeholder="" class="layui-textarea"></textarea>
403
+          <textarea name="f21_2[]" placeholder="" class="layui-textarea"></textarea>
388
       </div>
404
       </div>
389
     </div>
405
     </div>
390
 
406
 
400
 
416
 
401
         </span>
417
         </span>
402
 
418
 
403
-
404
                     <!--循环其他规则-->
419
                     <!--循环其他规则-->
405
-                    {if isset($extend.f25_1)}
406
-                    {volist name="$extend.f25_1" id="vo" key="i"}
420
+                    {volist name="$extend.f21_1" id="vo" key="i"}
407
                     {if $key>0 && !empty($vo)}
421
                     {if $key>0 && !empty($vo)}
408
 
422
 
409
                     <span class="ks">
423
                     <span class="ks">
413
     </div>
427
     </div>
414
     <div class="layui-col-xs3">
428
     <div class="layui-col-xs3">
415
       <div class="grid-demo">
429
       <div class="grid-demo">
416
-          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="{$vo}">
430
+          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="{$vo}">
417
       </div>
431
       </div>
418
     </div>
432
     </div>
419
     <div class="layui-col-xs1">
433
     <div class="layui-col-xs1">
420
-      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
434
+      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
421
     </div>
435
     </div>
422
     <div class="layui-col-xs4">
436
     <div class="layui-col-xs4">
423
       <div class="grid-demo">
437
       <div class="grid-demo">
424
-          <textarea name="f25_2[]" placeholder="" class="layui-textarea">{$extend.f25_2[$key]}</textarea>
438
+          <textarea name="f21_2[]" placeholder="" class="layui-textarea">{$extend.f21_2[$key]}</textarea>
425
       </div>
439
       </div>
426
     </div>
440
     </div>
427
 
441
 
438
         </span>
452
         </span>
439
                     {/if}
453
                     {/if}
440
                     {/volist}
454
                     {/volist}
441
-                    {/if}
442
 
455
 
443
 
456
 
444
 
457
 
445
-                    <span class="ks">
446
-            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f25" lay-event="add_f25">新增规则</button>
458
+
459
+
460
+        <span class="ks">
461
+            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f21" lay-event="add_f21">新增规则</button>
447
         </span>
462
         </span>
448
 
463
 
449
                 </div>
464
                 </div>
453
             <div class="layui-form-item">
468
             <div class="layui-form-item">
454
                 <label class="layui-form-label"></label>
469
                 <label class="layui-form-label"></label>
455
                 <div class="layui-input-block tips">
470
                 <div class="layui-input-block tips">
456
-                    关键词,比如"怎么评" , 目标评论随机语句 ,用"-"号连接多个语句
471
+                    关键词, 比如"怎么评"<b style="color:red;">(每条规则一个词)</b>, 获客评论语句 ,用"|"号连接多个语句,随机其中一个
457
                 </div>
472
                 </div>
458
             </div>
473
             </div>
459
 
474
 
460
-            <div class="layui-form-item">
461
-                <label for="intro" class="layui-form-label">私信条数:</label>
462
-                <div class="layui-input-block">
463
-                    <input type="number" name="f26" id="" autocomplete="off" class="layui-input w30" value="{$extend.f26??'10'}">
464
-                    <div class="layui-form-mid layui-word-aux" style="float: none;">小红书规则,一般一个账号一天最多10条主动私信</div>
465
-                </div>
466
-            </div>
467
 
475
 
468
             <div class="layui-form-item">
476
             <div class="layui-form-item">
469
-                <label class="layui-form-label">转为评论:</label>
477
+                <label class="layui-form-label">转为私信:</label>
470
                 <div class="layui-input-inline">
478
                 <div class="layui-input-inline">
471
-                    <input type="radio" name="f29" value="1" title="是" {if isset($extend.f29)&&$extend.f29==1}checked{/if} {if
472
-                           !isset($extend.f29)}checked{/if}>
473
-                    <input type="radio" name="f29" value="0" title="否" {if isset($extend.f29)&&$extend.f29==0}checked{/if}>
479
+                    <input type="radio" name="f28" value="1" title="是" {if isset($extend.f28)&&$extend.f28==1}checked{/if} {if !isset($extend.f28)}checked{/if}>
480
+                    <input type="radio" name="f28" value="0" title="否" {if isset($extend.f28)&&$extend.f28==0}checked{/if}>
474
 
481
 
475
-                    <div class="layui-form-mid layui-word-aux" style="float: none;">私信失败的时候 是否转为评论</div>
482
+                    <div class="layui-form-mid layui-word-aux" style="float: none;">评论失败(用户关闭评论权限)的时候(包含用户没有笔记) 是否转为私信</div>
476
                 </div>
483
                 </div>
477
             </div>
484
             </div>
478
 
485
 
479
-
480
         </div>
486
         </div>
481
     </div>
487
     </div>
488
+
489
+
490
+
491
+
482
 </div>
492
 </div>

+ 3
- 3
app/shop/view/content/closure/edit/09.html View File

10
                     <input type="radio" name="k1" value="0"  lay-filter="k1" title="关闭" {if isset($extend.k1)&&$extend.k1==0}checked{/if} {if !isset($extend.k1)}checked{/if} >
10
                     <input type="radio" name="k1" value="0"  lay-filter="k1" title="关闭" {if isset($extend.k1)&&$extend.k1==0}checked{/if} {if !isset($extend.k1)}checked{/if} >
11
                     <input type="radio" name="k1" value="1"  lay-filter="k1" title="开启" {if isset($extend.k1)&&$extend.k1==1}checked{/if}>
11
                     <input type="radio" name="k1" value="1"  lay-filter="k1" title="开启" {if isset($extend.k1)&&$extend.k1==1}checked{/if}>
12
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
12
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
13
-                        目标状态下,是否进行 发送 评论钩子!
13
+                        获客状态下,是否进行 发送 评论钩子!
14
                     </div>
14
                     </div>
15
                 </div>
15
                 </div>
16
             </div>
16
             </div>
20
                     <input type="radio" name="k2" value="0"  lay-filter="k2" title="否" {if isset($extend.k2)&&$extend.k2==0}checked{/if} {if !isset($extend.k2)}checked{/if} >
20
                     <input type="radio" name="k2" value="0"  lay-filter="k2" title="否" {if isset($extend.k2)&&$extend.k2==0}checked{/if} {if !isset($extend.k2)}checked{/if} >
21
                     <input type="radio" name="k2" value="1"  lay-filter="k2" title="是" {if isset($extend.k2)&&$extend.k2==1}checked{/if}>
21
                     <input type="radio" name="k2" value="1"  lay-filter="k2" title="是" {if isset($extend.k2)&&$extend.k2==1}checked{/if}>
22
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
22
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
23
-                        目标状态下,已发送评论钩子,是否继续互动评论!
23
+                        获客状态下,已发送评论钩子,是否继续互动评论!
24
                     </div>
24
                     </div>
25
                 </div>
25
                 </div>
26
             </div>
26
             </div>
62
                     <textarea name="k6" placeholder="" class="layui-textarea">{$extend.k6??'wuwu'}</textarea>
62
                     <textarea name="k6" placeholder="" class="layui-textarea">{$extend.k6??'wuwu'}</textarea>
63
 
63
 
64
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
64
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
65
-                        评论钩子语句, 每一句用符号"|" 号隔开,长度500字以内 , 随机其中一个;
65
+                        评论钩子语句, 每一句用符号"|" 号隔开,长度500字以内 , 随机其中一个;
66
                     </div>
66
                     </div>
67
                 </div>
67
                 </div>
68
             </div>
68
             </div>

+ 13
- 13
app/shop/view/content/closure/lists.html View File

8
                 <div class="layui-colla-item">
8
                 <div class="layui-colla-item">
9
                     <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
9
                     <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
10
                     <div class="layui-colla-content layui-show">
10
                     <div class="layui-colla-content layui-show">
11
-                        <p>*平台发布配置,可在商城新闻资讯栏目查看。</p>
12
-                        <p>*设置配置为商城公告后,配置标题会在商城首页的新闻公告轮播显示。</p>
11
+                        <p>*平台发布任务,可在商城新闻资讯栏目查看。</p>
12
+                        <p>*设置任务为商城公告后,任务标题会在商城首页的新闻公告轮播显示。</p>
13
                     </div>
13
                     </div>
14
                 </div>
14
                 </div>
15
             </div>
15
             </div>
19
         <div class="layui-card-body layui-form">
19
         <div class="layui-card-body layui-form">
20
             <div class="layui-form-item">
20
             <div class="layui-form-item">
21
                 <div class="layui-inline">
21
                 <div class="layui-inline">
22
-                    <label for="title" class="layui-form-label">配置标题:</label>
22
+                    <label for="title" class="layui-form-label">任务标题:</label>
23
                     <div class="layui-input-inline">
23
                     <div class="layui-input-inline">
24
                         <input type="text" id="title" name="title" autocomplete="off" class="layui-input">
24
                         <input type="text" id="title" name="title" autocomplete="off" class="layui-input">
25
                     </div>
25
                     </div>
71
 
71
 
72
         <!-- 主体区域 -->
72
         <!-- 主体区域 -->
73
         <div class="layui-card-body">
73
         <div class="layui-card-body">
74
-            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" lay-event="add">新增配置</button>
74
+            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" lay-event="add">新增任务</button>
75
 
75
 
76
             <table id="like-table-lists" lay-filter="like-table-lists"></table>
76
             <table id="like-table-lists" lay-filter="like-table-lists"></table>
77
             <script type="text/html" id="table-image">
77
             <script type="text/html" id="table-image">
98
 
98
 
99
         like.tableLists("#like-table-lists", "{:url()}", [
99
         like.tableLists("#like-table-lists", "{:url()}", [
100
             {field:"id", width:60, title:"ID"}
100
             {field:"id", width:60, title:"ID"}
101
-            ,{field:"title", width:200, align:"center", title:"配置标题"}
101
+            ,{field:"title", width:200, align:"center", title:"任务标题"}
102
             //,{field:"image", width:100, align:"center", title:"封面图", templet:"#table-image"}
102
             //,{field:"image", width:100, align:"center", title:"封面图", templet:"#table-image"}
103
             ,{field:"category2", width:150, align:"center", title:"所属行业"}
103
             ,{field:"category2", width:150, align:"center", title:"所属行业"}
104
             ,{field:"category", width:150, align:"center", title:"所属应用"}
104
             ,{field:"category", width:150, align:"center", title:"所属应用"}
105
             ,{field:"version", width:150, align:"center", title:"版本号"}
105
             ,{field:"version", width:150, align:"center", title:"版本号"}
106
-            ,{field:"is_notice", width:100, align:"center", title:"商城公告"}
107
-            ,{field:"is_show", width:100, align:"center", title:"配置状态"}
108
-            ,{field:"visit", width:100, align:"center", title:"浏览量"}
109
-            ,{field:"likes", width:100, align:"center", title:"点赞量"}
106
+            //,{field:"is_notice", width:100, align:"center", title:"商城公告"}
107
+            ,{field:"is_show", width:100, align:"center", title:"任务状态"}
108
+            //,{field:"visit", width:100, align:"center", title:"浏览量"}
109
+            //,{field:"likes", width:100, align:"center", title:"点赞量"}
110
             ,{field:"sort", width:100, align:"center", title:"排序"}
110
             ,{field:"sort", width:100, align:"center", title:"排序"}
111
             ,{field:"create_time", width:180, align:"center", title:"创建时间"}
111
             ,{field:"create_time", width:180, align:"center", title:"创建时间"}
112
-            ,{title:"操作", width:200, align:"center", fixed:"right", toolbar:"#table-operation"}
112
+            ,{title:"操作",  align:"center", fixed:"right", toolbar:"#table-operation"}
113
         ]);
113
         ]);
114
 
114
 
115
 
115
 
117
             add: function() {
117
             add: function() {
118
                 layer.open({
118
                 layer.open({
119
                     type: 2
119
                     type: 2
120
-                    ,title: "新增配置"
120
+                    ,title: "新增任务"
121
                     ,content: "{:url('content.Closure/add')}"
121
                     ,content: "{:url('content.Closure/add')}"
122
                     ,area: ["90%", "90%"]
122
                     ,area: ["90%", "90%"]
123
                     ,btn: ["确定", "取消"]
123
                     ,btn: ["确定", "取消"]
148
             edit: function(obj) {
148
             edit: function(obj) {
149
                 layer.open({
149
                 layer.open({
150
                     type: 2
150
                     type: 2
151
-                    ,title: "编辑配置"
151
+                    ,title: "编辑任务"
152
                     ,content: "{:url('content.Closure/edit')}?id=" + obj.data.id
152
                     ,content: "{:url('content.Closure/edit')}?id=" + obj.data.id
153
                     ,area: ["90%", "90%"]
153
                     ,area: ["90%", "90%"]
154
                     ,btn: ["确定", "取消"]
154
                     ,btn: ["确定", "取消"]
178
                 });
178
                 });
179
             },
179
             },
180
             del: function(obj) {
180
             del: function(obj) {
181
-                layer.confirm("确定删除配置:"+obj.data.title, function(index) {
181
+                layer.confirm("确定删除任务:"+obj.data.title, function(index) {
182
                     like.ajax({
182
                     like.ajax({
183
                         url: "{:url('content.Closure/del')}",
183
                         url: "{:url('content.Closure/del')}",
184
                         data: {id: obj.data.id},
184
                         data: {id: obj.data.id},

+ 18
- 9
app/shop/view/content/closure/setting/01.html View File

1
+<!--
2
+ * @Author: xiaohai zmhwork@qq.com
3
+ * @Date: 2025-03-13 18:17:49
4
+ * @LastEditors: xiaohai zmhwork@qq.com
5
+ * @LastEditTime: 2025-03-20 15:25:27
6
+ * @FilePath: \opkpm\app\shop\view\content\closure\setting\01.html
7
+ * @Description: 
8
+-->
1
 <div class="layui-form-item">
9
 <div class="layui-form-item">
2
-    <label for="title" class="layui-form-label"><span style="color:red;">*</span>配置标题:</label>
10
+    <label for="title" class="layui-form-label"><span style="color:red;">*</span>任务名称:</label>
3
     <div class="layui-input-inline">
11
     <div class="layui-input-inline">
4
         <input type="text" name="title" id="title" lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input" value="{$title_no}">
12
         <input type="text" name="title" id="title" lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input" value="{$title_no}">
13
+        <div class="layui-form-mid layui-word-aux" style="clear: both;">可自行修改名称</div>
5
     </div>
14
     </div>
6
 </div>
15
 </div>
7
 
16
 
8
 <div class="layui-form-item">
17
 <div class="layui-form-item">
9
-    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>配置分类:</label>
18
+    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>任务分类:</label>
10
     <div class="layui-input-inline">
19
     <div class="layui-input-inline">
11
         <select name="cid" id="cid" lay-verType="tips" lay-verify="required">
20
         <select name="cid" id="cid" lay-verType="tips" lay-verify="required">
12
             {volist name="category" id="vo"}
21
             {volist name="category" id="vo"}
17
 </div>
26
 </div>
18
 
27
 
19
 <div class="layui-form-item">
28
 <div class="layui-form-item">
20
-    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>配置行业:</label>
29
+    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>任务行业:</label>
21
     <div class="layui-input-inline">
30
     <div class="layui-input-inline">
22
         <select name="yid" id="yid" lay-verType="tips" lay-verify="required">
31
         <select name="yid" id="yid" lay-verType="tips" lay-verify="required">
23
             {volist name="category2" id="vo"}
32
             {volist name="category2" id="vo"}
27
     </div>
36
     </div>
28
 </div>
37
 </div>
29
 
38
 
30
-<div class="layui-form-item">
39
+<!-- <div class="layui-form-item">
31
     <label for="intro" class="layui-form-label">版本号:</label>
40
     <label for="intro" class="layui-form-label">版本号:</label>
32
     <div class="layui-input-inline">
41
     <div class="layui-input-inline">
33
         <input type="text" name="version" id="version" autocomplete="off" class="layui-input" value="1.0.0" />
42
         <input type="text" name="version" id="version" autocomplete="off" class="layui-input" value="1.0.0" />
34
     </div>
43
     </div>
35
-</div>
44
+</div> -->
36
 
45
 
37
 <div class="layui-form-item">
46
 <div class="layui-form-item">
38
-    <label for="intro" class="layui-form-label">配置简介:</label>
47
+    <label for="intro" class="layui-form-label">任务简介:</label>
39
     <div class="layui-input-inline">
48
     <div class="layui-input-inline">
40
         <input type="text" name="intro" id="intro" autocomplete="off" class="layui-input">
49
         <input type="text" name="intro" id="intro" autocomplete="off" class="layui-input">
41
     </div>
50
     </div>
44
 
53
 
45
 
54
 
46
 <div class="layui-form-item">
55
 <div class="layui-form-item">
47
-    <label for="sort" class="layui-form-label">配置排序:</label>
56
+    <label for="sort" class="layui-form-label">任务排序:</label>
48
     <div class="layui-input-inline">
57
     <div class="layui-input-inline">
49
         <input type="text" name="sort" id="sort" autocomplete="off" class="layui-input" value="50">
58
         <input type="text" name="sort" id="sort" autocomplete="off" class="layui-input" value="50">
50
     </div>
59
     </div>
69
 </div>
78
 </div>
70
 
79
 
71
 <div class="layui-form-item">
80
 <div class="layui-form-item">
72
-    <label class="layui-form-label">配置状态:</label>
81
+    <label class="layui-form-label">任务状态:</label>
73
     <div class="layui-input-inline">
82
     <div class="layui-input-inline">
74
         <input type="radio" name="is_show" value="1" title="显示" checked>
83
         <input type="radio" name="is_show" value="1" title="显示" checked>
75
         <input type="radio" name="is_show" value="0" title="隐藏">
84
         <input type="radio" name="is_show" value="0" title="隐藏">
77
 </div>
86
 </div>
78
 
87
 
79
 <div class="layui-form-item" style="display: none;">
88
 <div class="layui-form-item" style="display: none;">
80
-    <label for="content" class="layui-form-label">配置内容:</label>
89
+    <label for="content" class="layui-form-label">任务内容:</label>
81
     <div class="layui-input-block">
90
     <div class="layui-input-block">
82
         <textarea name="content" id="content" lay-verify="content"></textarea>
91
         <textarea name="content" id="content" lay-verify="content"></textarea>
83
     </div>
92
     </div>

+ 18
- 15
app/shop/view/content/closure/setting/02.html View File

1
+<div class="layui-form-item">
2
+    <label for="intro" class="layui-form-label">任务时长:</label>
3
+    <div class="layui-input-inline">
4
+        <input type="number" name="a2" id="a2" autocomplete="off" class="layui-input" value="1800">
5
+        <div class="layui-form-mid layui-word-aux">按秒s,单次任务的运行时长</div>
6
+    </div>
7
+</div>
1
 
8
 
2
 <div class="layui-form-item">
9
 <div class="layui-form-item">
3
-    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>数据入口:</label>
10
+    <label for="cid" class="layui-form-label"><span style="color:red;">*</span>优先类型:</label>
4
     <div class="layui-input-inline">
11
     <div class="layui-input-inline">
5
         <select name="a1" id="a1" lay-verType="tips" lay-verify="required" lay-filter="a1">
12
         <select name="a1" id="a1" lay-verType="tips" lay-verify="required" lay-filter="a1">
6
             <option value="推荐">推荐</option>
13
             <option value="推荐">推荐</option>
7
             <option value="搜索">搜索</option>
14
             <option value="搜索">搜索</option>
8
            <!-- <option value="发现-频道">发现-频道</option>-->
15
            <!-- <option value="发现-频道">发现-频道</option>-->
9
         </select>
16
         </select>
10
-        <div class="layui-form-mid layui-word-aux">默认打开app推荐页,选择搜索模式时,请填写下方的搜索词.</div>
17
+        <div class="layui-form-mid layui-word-aux" style="float: none;">默认打开app推荐页,选择搜索模式时,请填写下方的搜索词.</div>
11
     </div>
18
     </div>
12
 </div>
19
 </div>
13
 
20
 
14
 <div class="layui-form-item">
21
 <div class="layui-form-item">
15
-    <label class="layui-form-label">是否组合:</label>
16
-    <div class="layui-input-inline">
22
+    <label class="layui-form-label">切换开关:</label>
23
+    <div class="layui-input-block">
17
         <input type="radio" name="a4" value="0"  lay-filter="a4" title="否" checked >
24
         <input type="radio" name="a4" value="0"  lay-filter="a4" title="否" checked >
18
         <input type="radio" name="a4" value="1"  lay-filter="a4" title="是">
25
         <input type="radio" name="a4" value="1"  lay-filter="a4" title="是">
26
+        <div class="layui-form-mid layui-word-aux" style="float: none;">搜索和浏览推荐(发现页),运行过程是否切换,选择"是",请设置切换时间间隔</div>
19
     </div>
27
     </div>
20
 </div>
28
 </div>
21
 
29
 
22
 
30
 
23
 <div class="layui-form-item" id="a5">
31
 <div class="layui-form-item" id="a5">
24
-    <label for="intro" class="layui-form-label">推荐搜索:</label>
32
+    <label for="intro" class="layui-form-label">切换间隔:</label>
25
     <div class="layui-input-block">
33
     <div class="layui-input-block">
26
         每运行<font>推荐</font>
34
         每运行<font>推荐</font>
27
         <input type="number" name="a5[]" id="" autocomplete="off" class="layui-input w60" value="1800">
35
         <input type="number" name="a5[]" id="" autocomplete="off" class="layui-input w60" value="1800">
33
 </div>
41
 </div>
34
 
42
 
35
 <div class="layui-form-item" id="a6" style="display: none;">
43
 <div class="layui-form-item" id="a6" style="display: none;">
36
-    <label for="intro" class="layui-form-label">搜索推荐:</label>
44
+    <label for="intro" class="layui-form-label">切换间隔:</label>
37
     <div class="layui-input-block">
45
     <div class="layui-input-block">
38
         每运行<font>搜索</font>
46
         每运行<font>搜索</font>
39
         <input type="number" name="a6[]" id="" autocomplete="off" class="layui-input w60" value="1800">
47
         <input type="number" name="a6[]" id="" autocomplete="off" class="layui-input w60" value="1800">
54
 </div>
62
 </div>
55
 <div class="layui-form-item">
63
 <div class="layui-form-item">
56
     <label class="layui-form-label">切换选择:</label>
64
     <label class="layui-form-label">切换选择:</label>
57
-    <div class="layui-input-inline">
65
+    <div class="layui-input-block">
58
         <input type="radio" name="a8" value="0"  lay-filter="a8" title="随机" checked>
66
         <input type="radio" name="a8" value="0"  lay-filter="a8" title="随机" checked>
59
         <input type="radio" name="a8" value="1"  lay-filter="a8" title="顺序">
67
         <input type="radio" name="a8" value="1"  lay-filter="a8" title="顺序">
68
+        <div class="layui-form-mid layui-word-aux" style="float: none;">切换搜索词时,是按搜索词随机获取其中一个,还是按顺序搜索.</div>
60
     </div>
69
     </div>
61
 </div>
70
 </div>
62
 
71
 
131
 </div>
140
 </div>
132
 
141
 
133
 
142
 
134
-<div class="layui-form-item">
135
-    <label for="intro" class="layui-form-label">运行时长:</label>
136
-    <div class="layui-input-inline">
137
-        <input type="number" name="a2" id="a2" autocomplete="off" class="layui-input" value="1800">
138
-        <div class="layui-form-mid layui-word-aux">按秒s</div>
139
-    </div>
140
-</div>
141
 
143
 
142
-<div class="layui-form-item">
144
+
145
+ <div class="layui-form-item" style="display: none;">
143
     <label for="intro" class="layui-form-label">操作总数:</label>
146
     <label for="intro" class="layui-form-label">操作总数:</label>
144
     <div class="layui-input-inline">
147
     <div class="layui-input-inline">
145
         <input type="number" name="a3" id="a3" autocomplete="off" class="layui-input" value="180">
148
         <input type="number" name="a3" id="a3" autocomplete="off" class="layui-input" value="180">

+ 20
- 18
app/shop/view/content/closure/setting/03.html View File

1
-<div class="layui-form-item">
2
-    <label for="intro" class="layui-form-label">过滤词:</label>
3
-    <div class="layui-input-inline">
4
-        <input type="text" name="b3" id="" autocomplete="off" class="layui-input" value="课题|教师">
5
 
1
 
6
-        <div class="layui-form-mid layui-word-aux">列表标题过滤词 填写格式参考: 课题|教师</div>
7
-    </div>
8
-</div>
9
 
2
 
10
 <div class="layui-bg-gray" style="padding: 0px;">
3
 <div class="layui-bg-gray" style="padding: 0px;">
11
     <div class="layui-row layui-col-space15">
4
     <div class="layui-row layui-col-space15">
13
             <div class="layui-card">
6
             <div class="layui-card">
14
                 <div class="layui-card-header">列表数据</div>
7
                 <div class="layui-card-header">列表数据</div>
15
                 <div class="layui-card-body">
8
                 <div class="layui-card-body">
16
-                    <div class="layui-form-item">
9
+                    <div class="layui-form-item" style="display: none;">
17
                         <label class="layui-form-label">数据分类:</label>
10
                         <label class="layui-form-label">数据分类:</label>
18
                         <div class="layui-input-inline">
11
                         <div class="layui-input-inline">
19
-                            <input type="radio" name="b1" value="1" title="是" checked>
20
-                            <input type="radio" name="b1" value="0" title="否" disabled>
12
+                            <input type="radio" name="b1" value="1" class="layui-input" title="是" checked>
13
+                            <input type="radio" name="b1" value="0" class="layui-input" title="否" disabled>
21
                         </div>
14
                         </div>
22
                     </div>
15
                     </div>
23
 
16
 
26
                         <div class="layui-input-block">
19
                         <div class="layui-input-block">
27
 
20
 
28
         <span class="ks">
21
         <span class="ks">
29
-        匹配词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="其他" disabled>
22
+        关键词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="其他" disabled>
30
23
31
         <input type="text" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="10">
24
         <input type="text" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="10">
32
         个点击
25
         个点击
37
         </span>
30
         </span>
38
 
31
 
39
                             <span class="ks">
32
                             <span class="ks">
40
-        匹配词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="">
33
+        关键词: <input type="text" name="b2_1[]" id="" autocomplete="off" class="layui-input w100" value="">
41
34
42
         <input type="number" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="">
35
         <input type="number" name="b2_2[]" id="" autocomplete="off" class="layui-input w30" value="">
43
         个点击
36
         个点击
59
                     <div class="layui-form-item">
52
                     <div class="layui-form-item">
60
                         <label class="layui-form-label"></label>
53
                         <label class="layui-form-label"></label>
61
                         <div class="layui-input-block tips">
54
                         <div class="layui-input-block tips">
62
-                            匹配词不宜过长,用"-"号连接多个词语,例:
63
-                            职称-评审-申报
55
+                            <b style="color: red;">优先级1: 即在笔记列表,只要出现该关键词 - 按照设定的点击率 - 点击进入后 - 再根据获客规则 进行判定是否获客 (需要符合这里的关键词设定, 进入后再判定是否获客)</b><br/>
56
+                            每组关键词不宜过长,用"-"号连接多个词语,每组最多3个词语,例:
57
+                            职称-评审-申报  (当标题出现 职称或者评审或者申报 其中一个词 即按后面对应的点击率 进行点击)<br/>
64
                         </div>
58
                         </div>
65
                     </div>
59
                     </div>
66
 
60
 
61
+                    <div class="layui-form-item">
62
+                        <label for="intro" class="layui-form-label">标题过滤:</label>
63
+                        <div class="layui-input-inline">
64
+                            <input type="text" name="b3" id="" autocomplete="off" class="layui-input" value="课题|教师">
65
+
66
+                            <div class="layui-form-mid layui-word-aux"><b style="color: red;">优先级2: 如果列表标题包含这些词,则对该笔记不进行点击,后续也就不再对这篇笔记进行获客</b><br/>推荐或搜索列表标题过滤词 填写格式参考: 课题|教师</div>
67
+                        </div>
68
+                    </div>
67
 
69
 
68
 
70
 
69
                 </div>
71
                 </div>
71
         </div>
73
         </div>
72
         <div class="layui-col-md12">
74
         <div class="layui-col-md12">
73
             <div class="layui-card">
75
             <div class="layui-card">
74
-                <div class="layui-card-header">滑动操作</div>
76
+                <div class="layui-card-header">列表浏览过程 - 滑动操作</div>
75
                 <div class="layui-card-body">
77
                 <div class="layui-card-body">
76
 
78
 
77
                     <div class="layui-form-item">
79
                     <div class="layui-form-item">
83
                             <input type="number" name="b4[]" id="" autocomplete="off" class="layui-input w30" value="0">
85
                             <input type="number" name="b4[]" id="" autocomplete="off" class="layui-input w30" value="0">
84
86
85
 
87
 
86
-                            <div class="layui-form-mid layui-word-aux">列表翻页随机来回滑动屏幕次数</div>
88
+                            <div class="layui-form-mid layui-word-aux">列表随机来回滑动屏幕次数 , 默认触发概率为 33%</div>
87
                         </div>
89
                         </div>
88
                     </div>
90
                     </div>
89
 
91
 
96
                             <input type="number" name="b5[]" id="" autocomplete="off" class="layui-input w30" value="0">
98
                             <input type="number" name="b5[]" id="" autocomplete="off" class="layui-input w30" value="0">
97
99
98
 
100
 
99
-                            <div class="layui-form-mid layui-word-aux">浏览内容详情返回列表随机滑动屏幕次数</div>
101
+                            <div class="layui-form-mid layui-word-aux">浏览笔记内容详情返回列表随机滑动屏幕次数</div>
100
                         </div>
102
                         </div>
101
                     </div>
103
                     </div>
102
 
104
 
107
                             <input type="number" name="b6" id="" autocomplete="off" class="layui-input w30" value="2">
109
                             <input type="number" name="b6" id="" autocomplete="off" class="layui-input w30" value="2">
108
110
109
 
111
 
110
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">列表每次循环至少滑动多少次</div>
112
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">列表刷新数据 - 往上滑屏 - 至少滑动多少次</div>
111
                         </div>
113
                         </div>
112
                     </div>
114
                     </div>
113
 
115
 

+ 39
- 33
app/shop/view/content/closure/setting/04.html View File

1
 
1
 
2
 
2
 
3
-
4
 <div class="layui-form-item c1">
3
 <div class="layui-form-item c1">
5
     <label class="layui-form-label">观看时长:</label>
4
     <label class="layui-form-label">观看时长:</label>
6
     <div class="layui-input-block">
5
     <div class="layui-input-block">
14
13
15
         </span>
14
         </span>
16
 
15
 
16
+        <span class="ks">
17
+        评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="5-10">
18
+        观看
19
+        <input type="number" name="c1_2[]" id="" autocomplete="off" class="layui-input w30" value="5">
20
+        秒到
21
+        <input type="number" name="c1_3[]" id="" autocomplete="off" class="layui-input w30" value="10">
22
+        秒
23
+           <!-- <font class="ks_del">删除</font>-->
24
+        </span>
25
+
17
         <span class="ks">
26
         <span class="ks">
18
         评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
27
         评论数:<input type="text" name="c1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
19
         观看
28
         观看
36
     <label class="layui-form-label"></label>
45
     <label class="layui-form-label"></label>
37
     <div class="layui-input-block tips">
46
     <div class="layui-input-block tips">
38
         评论数,用"-"号连接多个数字,例:
47
         评论数,用"-"号连接多个数字,例:
39
-        10-20 表示 10秒到20秒
48
+        <b style="color:red;">10-20 表示 10秒到20秒</b>
40
     </div>
49
     </div>
41
 </div>
50
 </div>
42
 
51
 
45
     <div class="layui-row layui-col-space15">
54
     <div class="layui-row layui-col-space15">
46
         <div class="layui-col-md12">
55
         <div class="layui-col-md12">
47
             <div class="layui-card">
56
             <div class="layui-card">
48
-                <div class="layui-card-header">随机滑动</div>
57
+                <div class="layui-card-header">浏览笔记过程 - 每次翻看笔记内容 - 随机往上滑动次数 (正常翻看浏览是滑动一次)</div>
49
                 <div class="layui-card-body">
58
                 <div class="layui-card-body">
50
                     <div class="layui-form-item">
59
                     <div class="layui-form-item">
51
                         <label for="intro" class="layui-form-label">随机滑动:</label>
60
                         <label for="intro" class="layui-form-label">随机滑动:</label>
55
                             次至最多
64
                             次至最多
56
                             <input type="number" name="c2[]" id="" autocomplete="off" class="layui-input w30" value="3">
65
                             <input type="number" name="c2[]" id="" autocomplete="off" class="layui-input w30" value="3">
57
66
58
-
59
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机往上滑动次数</div>
67
+                            <div class="layui-form-mid layui-word-aux">每次翻看浏览内容图文 -- 随机往上滑动次数</div>
60
                         </div>
68
                         </div>
61
                     </div>
69
                     </div>
62
 
70
 
68
                             秒至最多
76
                             秒至最多
69
                             <input type="number" name="c3[]" id="" autocomplete="off" class="layui-input w30" value="3">
77
                             <input type="number" name="c3[]" id="" autocomplete="off" class="layui-input w30" value="3">
70
78
71
-
72
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机往上滑动次数等待秒数</div>
79
+                            <div class="layui-form-mid layui-word-aux">每次滑动随机等待秒数</div>
73
                         </div>
80
                         </div>
74
                     </div>
81
                     </div>
75
                 </div>
82
                 </div>
87
                             <input type="number" name="c4" id="" autocomplete="off" class="layui-input w30" value="15">
94
                             <input type="number" name="c4" id="" autocomplete="off" class="layui-input w30" value="15">
88
 
95
 
89
 
96
 
90
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">浏览内容笔记类型评论总数与滑动次数比例, 评论数超过300按300算, 比例15, 表示评论区最多滑动20次</div>
97
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">浏览内容图文 - 评论区操作 - 评论总数与滑动次数比例, 评论数超过300按300算 <br/> 比例15, 表示评论区最多滑动20次, 假设评论150, 那么最多滑动10次, 比例越大 , 滑动次数越少.</div>
98
+
91
                         </div>
99
                         </div>
92
                     </div>
100
                     </div>
93
 
101
 
100
                             <input type="number" name="c5[]" id="" autocomplete="off" class="layui-input w30" value="5">
108
                             <input type="number" name="c5[]" id="" autocomplete="off" class="layui-input w30" value="5">
101
109
102
 
110
 
103
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型评论区展开回复次数</div>
111
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 次数范围</div>
104
                         </div>
112
                         </div>
105
                     </div>
113
                     </div>
106
 
114
 
107
                     <div class="layui-form-item">
115
                     <div class="layui-form-item">
108
                         <label for="intro" class="layui-form-label">展开概率:</label>
116
                         <label for="intro" class="layui-form-label">展开概率:</label>
109
                         <div class="layui-input-inline">
117
                         <div class="layui-input-inline">
110
-                            最大
111
-                            <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="1">
112
-                            随机数至最大
118
+                            从数字
119
+                            <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="1" disabled>
120
+                            至数字
113
                             <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="3">
121
                             <input type="number" name="c6[]" id="" autocomplete="off" class="layui-input w30" value="3">
114
-                            随机数
115
-
116
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型评论区展开回复随机概率</div>
122
+                            范围内随机取一个整数
123
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 概率,当值=1时,进行点击</div>
117
                         </div>
124
                         </div>
118
                     </div>
125
                     </div>
119
 
126
 
120
                     <div class="layui-form-item">
127
                     <div class="layui-form-item">
121
                         <label for="intro" class="layui-form-label">更多回复:</label>
128
                         <label for="intro" class="layui-form-label">更多回复:</label>
122
                         <div class="layui-input-inline">
129
                         <div class="layui-input-inline">
123
-                            最小
124
-                            <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="1">
125
-                            随机数至最大
130
+                            从数字
131
+                            <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="1" disabled>
132
+                            至数字
126
                             <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="3">
133
                             <input type="number" name="c7[]" id="" autocomplete="off" class="layui-input w30" value="3">
127
-                            随机数
128
-
129
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型评论区展开更多回复随机概率</div>
134
+                            范围内随机取一个整数
135
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开更多回复" 按钮 - 进行点击的 - 概率,当值=1时,进行点击</div>
130
                         </div>
136
                         </div>
131
                     </div>
137
                     </div>
132
 
138
 
138
 
144
 
139
         <div class="layui-col-md12">
145
         <div class="layui-col-md12">
140
             <div class="layui-card">
146
             <div class="layui-card">
141
-                <div class="layui-card-header">来回观看</div>
147
+                <div class="layui-card-header">浏览图文过程 - 来回观看</div>
142
                 <div class="layui-card-body">
148
                 <div class="layui-card-body">
143
 
149
 
144
 
150
 
145
                     <div class="layui-form-item">
151
                     <div class="layui-form-item">
146
                         <label for="intro" class="layui-form-label">来回观看:</label>
152
                         <label for="intro" class="layui-form-label">来回观看:</label>
147
                         <div class="layui-input-inline">
153
                         <div class="layui-input-inline">
148
-                            最小
149
-                            <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="1">
150
-                            随机数至最大
154
+                            从数字
155
+                            <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="1" disabled>
156
+                            至数字
151
                             <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="3">
157
                             <input type="number" name="c8[]" id="" autocomplete="off" class="layui-input w30" value="3">
152
-                            随机数
158
+                            范围内随机取一个整
153
 
159
 
154
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机来回观看概率</div>
160
+                            <div class="layui-form-mid layui-word-aux">来回观看图文内容(每次) - 触发概率,当值=1时,进行来回观看(包含上滑和下滑)</div>
155
                         </div>
161
                         </div>
156
                     </div>
162
                     </div>
157
 
163
 
158
                     <div class="layui-form-item">
164
                     <div class="layui-form-item">
159
                         <label for="intro" class="layui-form-label">向上滑动:</label>
165
                         <label for="intro" class="layui-form-label">向上滑动:</label>
160
                         <div class="layui-input-inline">
166
                         <div class="layui-input-inline">
161
-                            最
167
+                            最
162
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="1">
168
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="1">
163
-                            次至最
169
+                            次至最
164
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="3">
170
                             <input type="number" name="c9[]" id="" autocomplete="off" class="layui-input w30" value="3">
165
171
166
 
172
 
167
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机来回观看向上滑动次数</div>
173
+                            <div class="layui-form-mid layui-word-aux">浏览内容图文类型随机来回观看(每次),向上滑动次数范围</div>
168
                         </div>
174
                         </div>
169
                     </div>
175
                     </div>
170
 
176
 
171
                     <div class="layui-form-item">
177
                     <div class="layui-form-item">
172
                         <label for="intro" class="layui-form-label">向下滑动:</label>
178
                         <label for="intro" class="layui-form-label">向下滑动:</label>
173
                         <div class="layui-input-inline">
179
                         <div class="layui-input-inline">
174
-                            最
180
+                            最
175
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="1">
181
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="1">
176
-                            次至最
182
+                            次至最
177
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="3">
183
                             <input type="number" name="c10[]" id="" autocomplete="off" class="layui-input w30" value="3">
178
184
179
 
185
 
180
-                            <div class="layui-form-mid layui-word-aux">浏览内容笔记类型随机来回观看向下滑动次数</div>
186
+                            <div class="layui-form-mid layui-word-aux">浏览内容图文类型随机来回观看(每次),向下滑动次数范围</div>
181
                         </div>
187
                         </div>
182
                     </div>
188
                     </div>
183
 
189
 

+ 27
- 16
app/shop/view/content/closure/setting/05.html View File

12
12
13
         </span>
13
         </span>
14
 
14
 
15
+
16
+        <span class="ks">
17
+        评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="5-10">
18
+        观看
19
+        <input type="number" name="d1_2[]" id="" autocomplete="off" class="layui-input w30" value="5">
20
+        秒到
21
+        <input type="number" name="d1_3[]" id="" autocomplete="off" class="layui-input w30" value="10">
22
+        秒
23
+            <!--<font class="ks_del">删除</font>-->
24
+        </span>
25
+
15
         <span class="ks">
26
         <span class="ks">
16
         评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
27
         评论数:<input type="text" name="d1_1[]" id="" autocomplete="off" class="layui-input w100" value="">
17
         观看
28
         观看
33
 <div class="layui-form-item">
44
 <div class="layui-form-item">
34
     <label class="layui-form-label"></label>
45
     <label class="layui-form-label"></label>
35
     <div class="layui-input-block tips">
46
     <div class="layui-input-block tips">
36
-        来自列表进入的视频, 非用户,非下滑的视频, 评论数,用"-"号连接多个数字,例:
37
-        10-20 表示 10秒到20秒
47
+        来自列表点击进入的视频, 评论数,用"-"号连接多个数字,例:  <!--非用户,非下滑的视频-->
48
+        <b style="color:red;">10-20 表示 10秒到20秒</b>
38
     </div>
49
     </div>
39
 </div>
50
 </div>
40
 
51
 
44
     <div class="layui-row layui-col-space15">
55
     <div class="layui-row layui-col-space15">
45
         <div class="layui-col-md12">
56
         <div class="layui-col-md12">
46
             <div class="layui-card">
57
             <div class="layui-card">
47
-                <div class="layui-card-header">非列表视频操作</div>
58
+                <div class="layui-card-header">浏览视频后,往下滑,浏览新的视频</div>
48
                 <div class="layui-card-body">
59
                 <div class="layui-card-body">
49
 
60
 
50
                     <div class="layui-form-item">
61
                     <div class="layui-form-item">
56
                             <input type="number" name="d2[]" id="" autocomplete="off" class="layui-input w30" value="5">
67
                             <input type="number" name="d2[]" id="" autocomplete="off" class="layui-input w30" value="5">
57
68
58
 
69
 
59
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型不互动观看时长</div>
70
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">观看时长</div>
60
                         </div>
71
                         </div>
61
                     </div>
72
                     </div>
62
 
73
 
69
                             <input type="number" name="d3[]" id="" autocomplete="off" class="layui-input w30" value="3">
80
                             <input type="number" name="d3[]" id="" autocomplete="off" class="layui-input w30" value="3">
70
81
71
 
82
 
72
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型后往下浏览视频个数</div>
83
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">往下浏览视频个数</div>
73
                         </div>
84
                         </div>
74
                     </div>
85
                     </div>
75
 
86
 
79
         </div>
90
         </div>
80
         <div class="layui-col-md12">
91
         <div class="layui-col-md12">
81
             <div class="layui-card">
92
             <div class="layui-card">
82
-                <div class="layui-card-header">评论区操作</div>
93
+                <div class="layui-card-header">视频评论区操作</div>
83
                 <div class="layui-card-body">
94
                 <div class="layui-card-body">
84
 
95
 
85
                     <div class="layui-form-item">
96
                     <div class="layui-form-item">
86
                         <label for="intro" class="layui-form-label">滑动次数:</label>
97
                         <label for="intro" class="layui-form-label">滑动次数:</label>
87
                         <div class="layui-input-inline">
98
                         <div class="layui-input-inline">
88
-                            最
99
+                            最
89
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="3">
100
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="3">
90
-                            次至最
101
+                            次至最
91
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="6">
102
                             <input type="number" name="d4[]" id="" autocomplete="off" class="layui-input w30" value="6">
92
103
93
 
104
 
94
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型评论区最多滑动次数</div>
105
+                            <div class="layui-form-mid layui-word-aux">评论区最多滑动次数,如果遇到 "评论到底",会自动退出.</div>
95
                         </div>
106
                         </div>
96
                     </div>
107
                     </div>
97
 
108
 
105
                             <input type="number" name="d5[]" id="" autocomplete="off" class="layui-input w30" value="5">
116
                             <input type="number" name="d5[]" id="" autocomplete="off" class="layui-input w30" value="5">
106
117
107
 
118
 
108
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型评论区展开回复次数</div>
119
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 次数范围</div>
109
                         </div>
120
                         </div>
110
                     </div>
121
                     </div>
111
 
122
 
112
                     <div class="layui-form-item">
123
                     <div class="layui-form-item">
113
                         <label for="intro" class="layui-form-label">展开概率:</label>
124
                         <label for="intro" class="layui-form-label">展开概率:</label>
114
                         <div class="layui-input-inline">
125
                         <div class="layui-input-inline">
115
-                            最大
126
+                            从数字
116
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="1">
127
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="1">
117
-                            随机数至最大
128
+                            至数字
118
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="3">
129
                             <input type="number" name="d6[]" id="" autocomplete="off" class="layui-input w30" value="3">
119
-                            随机数
130
+                            范围内随机取一个整
120
 
131
 
121
-                            <div class="layui-form-mid layui-word-aux">浏览内容视频类型评论区展开回复随机概率</div>
132
+                            <div class="layui-form-mid layui-word-aux">评论区看到 "展开回复" 按钮 - 进行点击的 - 概率,当值=1时,进行点击</div>
122
                         </div>
133
                         </div>
123
                     </div>
134
                     </div>
124
 
135
 
128
             </div>
139
             </div>
129
         </div>
140
         </div>
130
 
141
 
131
-        <div class="layui-col-md12">
142
+        <div class="layui-col-md12" style="display: none;">
132
             <div class="layui-card">
143
             <div class="layui-card">
133
                 <div class="layui-card-header">是否完整观看以及观看时长(已丢弃)</div>
144
                 <div class="layui-card-header">是否完整观看以及观看时长(已丢弃)</div>
134
                 <div class="layui-card-body">
145
                 <div class="layui-card-body">
164
                     </div>
175
                     </div>
165
 
176
 
166
                     <div class="layui-form-item">
177
                     <div class="layui-form-item">
167
-                        <label for="intro" class="layui-form-label">目标视频:</label>
178
+                        <label for="intro" class="layui-form-label">获客视频:</label>
168
                         <div class="layui-input-block">
179
                         <div class="layui-input-block">
169
                             每浏览
180
                             每浏览
170
                             <input type="number" name="d9[]" id="" autocomplete="off" class="layui-input w30" value="10">
181
                             <input type="number" name="d9[]" id="" autocomplete="off" class="layui-input w30" value="10">

+ 8
- 8
app/shop/view/content/closure/setting/06.html View File

12
     <label for="" class="layui-form-label"><span style="color:red;">*</span>互动场景:</label>
12
     <label for="" class="layui-form-label"><span style="color:red;">*</span>互动场景:</label>
13
     <div class="layui-input-inline">
13
     <div class="layui-input-inline">
14
         <select name="e2" id="" lay-verType="" lay-verify="required">
14
         <select name="e2" id="" lay-verType="" lay-verify="required">
15
-            <option value="场景1_是否开启全局默认互动">场景1_是否开启全局默认互动</option>
16
-            <option value="场景2_是否开启目标与非目标独立互动" selected>场景2_是否开启目标与非目标独立互动</option>
15
+            <option value="场景1_是否开启全局默认互动">场景1_全局默认互动</option>
16
+            <option value="场景2_是否开启截流与非截流独立互动" selected>场景2_获客目标笔记进行单独互动设置</option>
17
         </select>
17
         </select>
18
     </div>
18
     </div>
19
 </div>
19
 </div>
28
         <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
28
         <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
29
             <ul class="layui-tab-title">
29
             <ul class="layui-tab-title">
30
                 <li class="layui-this">默认互动</li>
30
                 <li class="layui-this">默认互动</li>
31
-                <li>目标互动</li>
32
-                <li>非目标互动</li>
31
+                <li>获客目标笔记互动</li>
32
+                <li>非获客笔记互动</li>
33
             </ul>
33
             </ul>
34
             <div class="layui-tab-content" style="">
34
             <div class="layui-tab-content" style="">
35
                 <div class="layui-tab-item layui-show">
35
                 <div class="layui-tab-item layui-show">
120
 
120
 
121
 
121
 
122
                     <div class="layui-form-item">
122
                     <div class="layui-form-item">
123
-                        <label for="intro" class="layui-form-label">目标:</label>
123
+                        <label for="intro" class="layui-form-label">获客:</label>
124
                         <div class="layui-input-block">
124
                         <div class="layui-input-block">
125
 
125
 
126
         <span class="ds">
126
         <span class="ds">
203
 
203
 
204
 
204
 
205
                     <div class="layui-form-item">
205
                     <div class="layui-form-item">
206
-                        <label for="intro" class="layui-form-label">非目标:</label>
206
+                        <label for="intro" class="layui-form-label">非获客:</label>
207
                         <div class="layui-input-block">
207
                         <div class="layui-input-block">
208
 
208
 
209
         <span class="ds">
209
         <span class="ds">
298
         <textarea name="e7" placeholder="" class="layui-textarea">这里有momo吗|厉害了|听说一支穿云箭可以呼叫momo大军|宝子,你是最六的|厉害了,给你点个赞|66666666|给你点个赞吧|有没有跟我一样刚来小红薯吃瓜的|闲着无聊,吃个瓜润润嗓子|新人报到,呼叫momo|新人报到,呼叫momo|林子大了啥鸟都有|都这么无聊呢|这么热闹|有点意思,赞一个|蹲个想评职称的人|现在的人都这么会玩么|高端局|来吹个泡泡|新人吹泡,闲人回避|有多少跟我一样无聊的|这年头会玩的人真多|给博主点个赞|确认过眼神,你是最亮的仔|吃瓜吃瓜吃瓜|哦豁,又有瓜吃了|我就过来凑个热闹|一起吃个瓜吧|城里人真会玩|吹泡泡泡泡|新人报道,求关照|奥德彪|大香蕉一条大香蕉|泰裤辣|已老实求放过|我有四不吃|前方高能|单肾贵族|世界这么大|Duang|读书少,别骗我|伐木累|凡尔赛|上热门|芭比Q</textarea>
298
         <textarea name="e7" placeholder="" class="layui-textarea">这里有momo吗|厉害了|听说一支穿云箭可以呼叫momo大军|宝子,你是最六的|厉害了,给你点个赞|66666666|给你点个赞吧|有没有跟我一样刚来小红薯吃瓜的|闲着无聊,吃个瓜润润嗓子|新人报到,呼叫momo|新人报到,呼叫momo|林子大了啥鸟都有|都这么无聊呢|这么热闹|有点意思,赞一个|蹲个想评职称的人|现在的人都这么会玩么|高端局|来吹个泡泡|新人吹泡,闲人回避|有多少跟我一样无聊的|这年头会玩的人真多|给博主点个赞|确认过眼神,你是最亮的仔|吃瓜吃瓜吃瓜|哦豁,又有瓜吃了|我就过来凑个热闹|一起吃个瓜吧|城里人真会玩|吹泡泡泡泡|新人报道,求关照|奥德彪|大香蕉一条大香蕉|泰裤辣|已老实求放过|我有四不吃|前方高能|单肾贵族|世界这么大|Duang|读书少,别骗我|伐木累|凡尔赛|上热门|芭比Q</textarea>
299
 
299
 
300
         <div class="layui-form-mid layui-word-aux" style="float: none;">
300
         <div class="layui-form-mid layui-word-aux" style="float: none;">
301
-            互动评论随机语句, 每一句用符号"|" 号隔开,长度500字以内;
301
+            互动评论随机语句, 每一句用符号"|" 号隔开,长度500字以内;
302
         </div>
302
         </div>
303
     </div>
303
     </div>
304
 </div>
304
 </div>
319
                             <input type="number" name="e6" id="" autocomplete="off" class="layui-input w30" value="1">
319
                             <input type="number" name="e6" id="" autocomplete="off" class="layui-input w30" value="1">
320
 
320
 
321
 
321
 
322
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">进入用户主页观看多少个内容</div>
322
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">访问用户主页,浏览该用户几个作品</div>
323
                         </div>
323
                         </div>
324
                     </div>
324
                     </div>
325
 
325
 

+ 21
- 21
app/shop/view/content/closure/setting/07.html View File

1
 
1
 
2
-<div class="layui-form-item">
3
-    <label class="layui-form-label">限制目标:</label>
2
+<div class="layui-form-item" style="display: none;">
3
+    <label class="layui-form-label">限制获客:</label>
4
     <div class="layui-input-inline">
4
     <div class="layui-input-inline">
5
 
5
 
6
         <input type="radio" name="f1" value="1" title="是" disabled>
6
         <input type="radio" name="f1" value="1" title="是" disabled>
7
         <input type="radio" name="f1" value="0" title="否" checked>
7
         <input type="radio" name="f1" value="0" title="否" checked>
8
 
8
 
9
-        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启强制目标模式</div>
9
+        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启强制获客模式</div>
10
     </div>
10
     </div>
11
 </div>
11
 </div>
12
 
12
 
13
 
13
 
14
 <div class="layui-form-item">
14
 <div class="layui-form-item">
15
-    <label class="layui-form-label">目标开关:</label>
15
+    <label class="layui-form-label">获客开关:</label>
16
     <div class="layui-input-inline">
16
     <div class="layui-input-inline">
17
 
17
 
18
         <input type="radio" name="f27" value="1" title="是" checked>
18
         <input type="radio" name="f27" value="1" title="是" checked>
19
         <input type="radio" name="f27" value="0" title="否">
19
         <input type="radio" name="f27" value="0" title="否">
20
 
20
 
21
-        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启目标</div>
21
+        <div class="layui-form-mid layui-word-aux" style="float: none;">是否开启获客</div>
22
     </div>
22
     </div>
23
 </div>
23
 </div>
24
 
24
 
28
     <div class="layui-row layui-col-space15">
28
     <div class="layui-row layui-col-space15">
29
         <div class="layui-col-md12">
29
         <div class="layui-col-md12">
30
             <div class="layui-card">
30
             <div class="layui-card">
31
-                <div class="layui-card-header">目标相关互动设置</div>
31
+                <div class="layui-card-header">获客-针对目标笔记-相关互动设置</div>
32
                 <div class="layui-card-body">
32
                 <div class="layui-card-body">
33
 
33
 
34
 
34
 
35
                     <div class="layui-form-item">
35
                     <div class="layui-form-item">
36
-                        <label class="layui-form-label">目标互动:</label>
36
+                        <label class="layui-form-label">作者互动:</label>
37
                         <div class="layui-input-inline">
37
                         <div class="layui-input-inline">
38
 
38
 
39
                             <input type="radio" name="f2" value="1" title="是" checked>
39
                             <input type="radio" name="f2" value="1" title="是" checked>
40
                             <input type="radio" name="f2" value="0" title="否">
40
                             <input type="radio" name="f2" value="0" title="否">
41
 
41
 
42
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标对象是否进行互动行为</div>
42
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">进行获客 过程中 对目标笔记内容(作者) 是否进行互动行为</div>
43
                         </div>
43
                         </div>
44
                     </div>
44
                     </div>
45
 
45
 
51
                             <input type="radio" name="f3" value="0" title="否">
51
                             <input type="radio" name="f3" value="0" title="否">
52
                             <input type="radio" name="f3" value="2" title="随机">
52
                             <input type="radio" name="f3" value="2" title="随机">
53
 
53
 
54
-                            <div class="layui-form-mid layui-word-aux" >进入用户主页,浏览笔记评论后,是否对用户进行关注</div>
54
+                            <div class="layui-form-mid layui-word-aux" >进入用户主页,浏览笔记评论或私信后,是否对用户进行关注</div>
55
                         </div>
55
                         </div>
56
                     </div>
56
                     </div>
57
 
57
 
58
                     <div class="layui-form-item">
58
                     <div class="layui-form-item">
59
-                        <label for="intro" class="layui-form-label">关注概率:</label>
59
+                        <label for="intro" class="layui-form-label">随机概率:</label>
60
                         <div class="layui-input-block">
60
                         <div class="layui-input-block">
61
 
61
 
62
                             <input type="number" name="f4" id="" autocomplete="off" class="layui-input w30" value="30">%
62
                             <input type="number" name="f4" id="" autocomplete="off" class="layui-input w30" value="30">%
63
 
63
 
64
 
64
 
65
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标用户是否进行关注随机概率_百分比</div>
65
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">获客用户是否进行关注随机概率_百分比</div>
66
                         </div>
66
                         </div>
67
                     </div>
67
                     </div>
68
 
68
 
71
         </div>
71
         </div>
72
         <div class="layui-col-md12">
72
         <div class="layui-col-md12">
73
             <div class="layui-card">
73
             <div class="layui-card">
74
-                <div class="layui-card-header">内容评论区目标</div>
74
+                <div class="layui-card-header">内容评论区获客</div>
75
                 <div class="layui-card-body">
75
                 <div class="layui-card-body">
76
 
76
 
77
 
77
 
78
                     <div class="layui-form-item">
78
                     <div class="layui-form-item">
79
-                        <label for="intro" class="layui-form-label">笔记滑动:</label>
79
+                        <label for="intro" class="layui-form-label">图文滑动:</label>
80
                         <div class="layui-input-block">
80
                         <div class="layui-input-block">
81
 
81
 
82
                             评论区滑动 <input type="number" name="f5" id="" autocomplete="off" class="layui-input w30" value="20"> 次
82
                             评论区滑动 <input type="number" name="f5" id="" autocomplete="off" class="layui-input w30" value="20"> 次
83
 
83
 
84
 
84
 
85
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标笔记内容对象评论区最多滑动多少次</div>
85
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">获客目标图文内容 - 评论区最多滑动多少次</div>
86
                         </div>
86
                         </div>
87
                     </div>
87
                     </div>
88
 
88
 
92
 
92
 
93
                             评论区滑动 <input type="number" name="f6" id="" autocomplete="off" class="layui-input w30" value="20"> 次
93
                             评论区滑动 <input type="number" name="f6" id="" autocomplete="off" class="layui-input w30" value="20"> 次
94
 
94
 
95
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标视频内容对象评论区最多滑动多少次</div>
95
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">获客视频内容对象评论区最多滑动多少次</div>
96
                         </div>
96
                         </div>
97
                     </div>
97
                     </div>
98
 
98
 
99
                     <div class="layui-form-item">
99
                     <div class="layui-form-item">
100
-                        <label for="intro" class="layui-form-label">目标总数:</label>
100
+                        <label for="intro" class="layui-form-label">获客总数:</label>
101
                         <div class="layui-input-block">
101
                         <div class="layui-input-block">
102
 
102
 
103
-                            (针对用户)可评论总数 <input type="number" name="f7" id="" autocomplete="off" class="layui-input w30" value="40"> 次
103
+                            (针对用户主页笔记)可评论总数<input type="number" name="f7" id="" autocomplete="off" class="layui-input w30" value="40"> 次
104
 
104
 
105
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标进入用户存在内容可评论总数</div>
105
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">单次任务 - 进入用户笔记 - 进行评论的总数量</div>
106
                         </div>
106
                         </div>
107
                     </div>
107
                     </div>
108
 
108
 
109
                     <div class="layui-form-item">
109
                     <div class="layui-form-item">
110
-                        <label for="intro" class="layui-form-label">笔记匹配:</label>
110
+                        <label for="intro" class="layui-form-label">图文匹配:</label>
111
                         <div class="layui-input-block">
111
                         <div class="layui-input-block">
112
 
112
 
113
                             评论
113
                             评论
116
                             <input type="number" name="f8[]" id="" autocomplete="off" class="layui-input w30" value="7">
116
                             <input type="number" name="f8[]" id="" autocomplete="off" class="layui-input w30" value="7">
117
117
118
 
118
 
119
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标 每篇 笔记内容最多成功匹配多少个评论</div>
119
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">每篇图文-评论区-最多成功匹配多少个评论</div>
120
                         </div>
120
                         </div>
121
                     </div>
121
                     </div>
122
 
122
 
130
                             <input type="number" name="f9[]" id="" autocomplete="off" class="layui-input w30" value="7">
130
                             <input type="number" name="f9[]" id="" autocomplete="off" class="layui-input w30" value="7">
131
131
132
 
132
 
133
-                            <div class="layui-form-mid layui-word-aux" style="float: none;">目标 每篇 视频内容最多成功匹配多少个评论</div>
133
+                            <div class="layui-form-mid layui-word-aux" style="float: none;">每个视频-评论区-最多成功匹配多少个评论</div>
134
                         </div>
134
                         </div>
135
                     </div>
135
                     </div>
136
 
136
 

+ 94
- 81
app/shop/view/content/closure/setting/08.html View File

1
 
1
 
2
 <div class="layui-collapse wb80" lay-accordion>
2
 <div class="layui-collapse wb80" lay-accordion>
3
     <div class="layui-colla-item">
3
     <div class="layui-colla-item">
4
-        <h2 class="layui-colla-title">标题账号触发与过滤</h2>
4
+        <h2 class="layui-colla-title">获客目标笔记 - 标题和账号 - 关键词匹配与过滤</h2>
5
         <div class="layui-colla-content layui-show">
5
         <div class="layui-colla-content layui-show">
6
 
6
 
7
             <div class="layui-form-item">
7
             <div class="layui-form-item">
11
                     <textarea name="f10" placeholder="" class="layui-textarea">momo|思思咨询|小鹏职称指导</textarea>
11
                     <textarea name="f10" placeholder="" class="layui-textarea">momo|思思咨询|小鹏职称指导</textarea>
12
 
12
 
13
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
13
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
14
-                        目标指定账号列表, 每一句用符号"|" 号隔开,长度500字以内;
14
+                        <b style="color: red;">优先级为3: 指定账号列表,进入笔记后,只要作者 包含于所指定的账号内 直接进入评论区获客</b>, 每一句用符号"|" 号隔开,总长度500字以内;
15
                     </div>
15
                     </div>
16
                 </div>
16
                 </div>
17
             </div>
17
             </div>
18
 
18
 
19
             <div class="layui-form-item">
19
             <div class="layui-form-item">
20
-                <label for="intro" class="layui-form-label">关键词:</label>
20
+                <label for="intro" class="layui-form-label">标题匹配:</label>
21
                 <div class="layui-input-block">
21
                 <div class="layui-input-block">
22
 
22
 
23
-                    <textarea name="f11" placeholder="" class="layui-textarea">职称|评审</textarea>
23
+                    <textarea name="f13" placeholder="" class="layui-textarea">职称|评审|申报|中级|高级|副高|正高|工程师|认定</textarea>
24
 
24
 
25
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
25
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
26
-                        目标<账号>关键词, 每一句用符号"|" 号隔开,长度500字以内;
26
+                        <b style="color: red;">优先级4 针对笔记标题进行匹配</b>, 每一句用符号"|" 号隔开,总长度500字以内;
27
                     </div>
27
                     </div>
28
                 </div>
28
                 </div>
29
             </div>
29
             </div>
30
 
30
 
31
-
32
             <div class="layui-form-item">
31
             <div class="layui-form-item">
33
-                <label for="intro" class="layui-form-label">过滤词:</label>
32
+                <label for="intro" class="layui-form-label">账号匹配:</label>
34
                 <div class="layui-input-block">
33
                 <div class="layui-input-block">
35
 
34
 
36
-                    <textarea name="f12" placeholder="" class="layui-textarea">课题|教师</textarea>
35
+                    <textarea name="f11" placeholder="" class="layui-textarea">职称|评审</textarea>
37
 
36
 
38
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
37
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
39
-                        目标<账号>过滤词列表, 每一句用符号"|" 号隔开,长度500字以内;
38
+                        <b style="color: red;">优先级5 针对笔记作者账号关键词进行匹配</b>, 每一句用符号"|" 号隔开,长度500字以内;
40
                     </div>
39
                     </div>
41
                 </div>
40
                 </div>
42
             </div>
41
             </div>
43
 
42
 
43
+
44
             <div class="layui-form-item">
44
             <div class="layui-form-item">
45
-                <label for="intro" class="layui-form-label">标题触发:</label>
45
+                <label for="intro" class="layui-form-label">标题过滤:</label>
46
                 <div class="layui-input-block">
46
                 <div class="layui-input-block">
47
 
47
 
48
-                    <textarea name="f13" placeholder="" class="layui-textarea">职称|评审|申报|中级|高级|副高|正高|工程师|认定</textarea>
48
+                    <textarea name="f14" placeholder="" class="layui-textarea">教师|医生|医学|老师|经济|银行|教育|农业|艺术|新闻|农技|学校|高校|教授|医院|人力资源</textarea>
49
 
49
 
50
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
50
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
51
-                        目标内容名称关键词, 每一句用符号"|" 号隔开,长度500字以内;
51
+                        <b style="color: red;">优先级6 针对笔记作者账号关键词进行过滤</b>, 每一句用符号"|" 号隔开,总长度500字以内;
52
                     </div>
52
                     </div>
53
                 </div>
53
                 </div>
54
             </div>
54
             </div>
55
 
55
 
56
 
56
 
57
             <div class="layui-form-item">
57
             <div class="layui-form-item">
58
-                <label for="intro" class="layui-form-label">标题过滤:</label>
58
+                <label for="intro" class="layui-form-label">账号过滤:</label>
59
                 <div class="layui-input-block">
59
                 <div class="layui-input-block">
60
 
60
 
61
-                    <textarea name="f14" placeholder="" class="layui-textarea">教师|医生|医学|老师|经济|银行|教育|农业|艺术|新闻|农技|学校|高校|教授|医院|人力资源</textarea>
61
+                    <textarea name="f12" placeholder="" class="layui-textarea">课题|教师</textarea>
62
 
62
 
63
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
63
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
64
-                        目标内容名称过滤词, 每一句用符号"|" 号隔开,长度500字以内;
64
+                        <b style="color: red;">优先级7 针对笔记作者账号关键词进行过滤</b>, 每一句用符号"|" 号隔开,总长度500字以内;
65
                     </div>
65
                     </div>
66
                 </div>
66
                 </div>
67
             </div>
67
             </div>
68
 
68
 
69
 
69
 
70
+
71
+
72
+
73
+
74
+
70
         </div>
75
         </div>
71
     </div>
76
     </div>
72
     <div class="layui-colla-item">
77
     <div class="layui-colla-item">
73
-        <h2 class="layui-colla-title">评论与私信触发与过滤</h2>
78
+        <h2 class="layui-colla-title">笔记评论区 - 作者笔记下面的用户评论 - 针对用户进行评论与私信的规则-触发与过滤</h2>
74
         <div class="layui-colla-content">
79
         <div class="layui-colla-content">
75
 
80
 
76
             <div class="layui-form-item">
81
             <div class="layui-form-item">
77
-                <label for="intro" class="layui-form-label">笔记评论:</label>
82
+                <label for="intro" class="layui-form-label">评论:</label>
78
                 <div class="layui-input-block">
83
                 <div class="layui-input-block">
79
 
84
 
80
                     <textarea name="f15" placeholder="" class="layui-textarea">昨天|1天前|分钟|刚刚|2天前|小时前|3天前|4天前|5天前</textarea>
85
                     <textarea name="f15" placeholder="" class="layui-textarea">昨天|1天前|分钟|刚刚|2天前|小时前|3天前|4天前|5天前</textarea>
81
 
86
 
82
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
87
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
83
-                        目标笔记内容 评论/私信 满足时间条件的关键词 正则, 每一句用符号"|" 号隔开,长度500字以内;
88
+                        针对 用户评论<b style="color:red;">(图文类笔记评论区)</b> 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
84
                     </div>
89
                     </div>
85
                 </div>
90
                 </div>
86
             </div>
91
             </div>
92
                     <textarea name="f16" placeholder="" class="layui-textarea">昨天,1天前,分钟,刚刚,2天前,小时前,3天前,4天前,5天前</textarea>
97
                     <textarea name="f16" placeholder="" class="layui-textarea">昨天,1天前,分钟,刚刚,2天前,小时前,3天前,4天前,5天前</textarea>
93
 
98
 
94
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
99
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
95
-                        目标笔记内容 评论/私信 满足时间条件的关键词, 每一句用符号 "," 号隔开,长度500字以内;
100
+                        针对 用户评论 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
96
                     </div>
101
                     </div>
97
                 </div>
102
                 </div>
98
             </div>
103
             </div>
99
 
104
 
100
             <div class="layui-form-item">
105
             <div class="layui-form-item">
101
-                <label for="intro" class="layui-form-label">视频评论:</label>
106
+                <label for="intro" class="layui-form-label">评论:</label>
102
                 <div class="layui-input-block">
107
                 <div class="layui-input-block">
103
 
108
 
104
                     <textarea name="f17" placeholder="" class="layui-textarea">昨天|1天前|分钟|刚刚|2天前|小时前|3天前|4天前|5天前</textarea>
109
                     <textarea name="f17" placeholder="" class="layui-textarea">昨天|1天前|分钟|刚刚|2天前|小时前|3天前|4天前|5天前</textarea>
105
 
110
 
106
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
111
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
107
-                        目标视频内容 评论/私信 满足时间条件的关键词 正则, 每一句用符号"|" 号隔开,长度500字以内;
112
+                        针对 用户评论<b style="color:red;">(视频类笔记评论区)</b> 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
108
                     </div>
113
                     </div>
109
                 </div>
114
                 </div>
110
             </div>
115
             </div>
116
                     <textarea name="f18" placeholder="" class="layui-textarea">昨天,1天前,分钟,刚刚,2天前,小时前,3天前,4天前,5天前</textarea>
121
                     <textarea name="f18" placeholder="" class="layui-textarea">昨天,1天前,分钟,刚刚,2天前,小时前,3天前,4天前,5天前</textarea>
117
 
122
 
118
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
123
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
119
-                        目标视频内容 评论/私信 满足时间条件的关键词, 每一句用符号 "," 号隔开,长度500字以内;
124
+                        针对 用户评论 进行 满足时间条件的关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
120
                     </div>
125
                     </div>
121
                 </div>
126
                 </div>
122
             </div>
127
             </div>
123
 
128
 
124
             <div class="layui-form-item">
129
             <div class="layui-form-item">
125
-                <label for="intro" class="layui-form-label">评论账号:</label>
130
+                <label for="intro" class="layui-form-label">用户账号:</label>
126
                 <div class="layui-input-block">
131
                 <div class="layui-input-block">
127
 
132
 
128
                     <textarea name="f19" placeholder="" class="layui-textarea">职称|评审</textarea>
133
                     <textarea name="f19" placeholder="" class="layui-textarea">职称|评审</textarea>
129
 
134
 
130
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
135
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
131
-                        目标 评论/私信 账号 过滤词, 每一句用符号"|" 号隔开,长度500字以内;
136
+                        针对评论区的 用户账号 进行 过滤词设置, 每一句用符号"|" 号隔开,总长度500字以内;
132
                     </div>
137
                     </div>
133
                 </div>
138
                 </div>
134
             </div>
139
             </div>
137
 
142
 
138
         </div>
143
         </div>
139
     </div>
144
     </div>
145
+
146
+
140
     <div class="layui-colla-item">
147
     <div class="layui-colla-item">
141
-        <h2 class="layui-colla-title">具体评论设置</h2>
148
+        <h2 class="layui-colla-title">针对笔记评论区 用户的评论内容 进行关键词 匹配,进行私信的操作</h2>
142
         <div class="layui-colla-content">
149
         <div class="layui-colla-content">
143
 
150
 
151
+
152
+
153
+
154
+
144
             <div class="layui-form-item">
155
             <div class="layui-form-item">
145
-                <label class="layui-form-label">开启评论:</label>
156
+                <label class="layui-form-label">开启私信:</label>
146
                 <div class="layui-input-inline">
157
                 <div class="layui-input-inline">
147
-                    <input type="radio" name="f22" value="1" title="是" checked>
148
-                    <input type="radio" name="f22" value="0" title="否">
158
+                    <input type="radio" name="f23" value="1" title="是" checked>
159
+                    <input type="radio" name="f23" value="0" title="否">
149
                 </div>
160
                 </div>
150
             </div>
161
             </div>
151
 
162
 
163
+
152
             <div class="layui-form-item">
164
             <div class="layui-form-item">
153
-                <label for="intro" class="layui-form-label">评论触发:</label>
165
+                <label for="intro" class="layui-form-label">私信触发:</label>
154
                 <div class="layui-input-block">
166
                 <div class="layui-input-block">
155
 
167
 
156
-                    <textarea name="f20" placeholder="" class="layui-textarea">怎么|请问|如何|咨询|滴滴|广东|问一下|了解下|呢|吗|多少钱|高工|中级|副高|正高|高级|真的假的|真的吗|文件|发一下|了解一下|直接认定|满五年|私一个|真的么|咋整的|咋搞|工程类|可以评吗|在哪申请|申请条件|本科|毕业满|工程|行不行|想了解|可以申报|计算机|环境类|求资料|研究生|直接评|咋办理的|什么专业|工科专业|发来看看</textarea>
168
+                    <textarea name="f24" placeholder="" class="layui-textarea">怎么|请问|如何|咨询|滴滴|广东|问一下|了解下|呢|吗|多少钱|高工|中级|副高|正高|高级|真的假的|真的吗|文件|发一下|了解一下|直接认定|满五年|私一个|真的么|咋整的|咋搞|工程类|可以评吗|在哪申请|申请条件|本科|毕业满|工程|行不行|想了解|可以申报|计算机|环境类|求资料|研究生|直接评|咋办理的|什么专业|工科专业|发来看看</textarea>
157
 
169
 
158
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
170
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
159
-                        目标评论 内容 关键词, 每一句用符号"|" 号隔开,长度500字以内;
171
+                        用户的评论内容 关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
172
+                        <br/>
173
+                        <b style="color: red;">优先匹配私信规则,匹配成功不再匹配评论设置</b>
160
                     </div>
174
                     </div>
161
                 </div>
175
                 </div>
162
             </div>
176
             </div>
164
 
178
 
165
 
179
 
166
 
180
 
167
-            <div class="layui-form-item f21">
168
-                <label class="layui-form-label">评论内容:</label>
181
+            <div class="layui-form-item f25">
182
+                <label class="layui-form-label">私信内容:</label>
169
                 <div class="layui-input-block">
183
                 <div class="layui-input-block">
170
 
184
 
171
         <span class="ks">
185
         <span class="ks">
176
     </div>
190
     </div>
177
     <div class="layui-col-xs3">
191
     <div class="layui-col-xs3">
178
       <div class="grid-demo">
192
       <div class="grid-demo">
179
-          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="default" disabled>
193
+          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="default" disabled>
180
       </div>
194
       </div>
181
     </div>
195
     </div>
182
     <div class="layui-col-xs1">
196
     <div class="layui-col-xs1">
183
-      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
197
+      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
184
     </div>
198
     </div>
185
     <div class="layui-col-xs4">
199
     <div class="layui-col-xs4">
186
       <div class="grid-demo">
200
       <div class="grid-demo">
187
-          <textarea name="f21_2[]" placeholder="" class="layui-textarea">工程师职称评审专业服务!|工程师职称评审免费咨询!</textarea>
201
+          <textarea name="f25_2[]" placeholder="" class="layui-textarea">工程师职称评审专业服务!|工程师职称评审免费咨询!</textarea>
188
       </div>
202
       </div>
189
     </div>
203
     </div>
190
 
204
 
206
     </div>
220
     </div>
207
     <div class="layui-col-xs3">
221
     <div class="layui-col-xs3">
208
       <div class="grid-demo">
222
       <div class="grid-demo">
209
-          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="">
223
+          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="">
210
       </div>
224
       </div>
211
     </div>
225
     </div>
212
     <div class="layui-col-xs1">
226
     <div class="layui-col-xs1">
213
-      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
227
+      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
214
     </div>
228
     </div>
215
     <div class="layui-col-xs4">
229
     <div class="layui-col-xs4">
216
       <div class="grid-demo">
230
       <div class="grid-demo">
217
-          <textarea name="f21_2[]" placeholder="" class="layui-textarea"></textarea>
231
+          <textarea name="f25_2[]" placeholder="" class="layui-textarea"></textarea>
218
       </div>
232
       </div>
219
     </div>
233
     </div>
220
 
234
 
230
 
244
 
231
         </span>
245
         </span>
232
 
246
 
233
-        <span class="ks">
234
-            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f21" lay-event="add_f21">新增规则</button>
247
+                    <span class="ks">
248
+            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f25" lay-event="add_f25">新增规则</button>
235
         </span>
249
         </span>
236
 
250
 
237
                 </div>
251
                 </div>
241
             <div class="layui-form-item">
255
             <div class="layui-form-item">
242
                 <label class="layui-form-label"></label>
256
                 <label class="layui-form-label"></label>
243
                 <div class="layui-input-block tips">
257
                 <div class="layui-input-block tips">
244
-                    关键词,比如"怎么评" , 目标评论随机语句 ,用"-"号连接多个语句
258
+                    关键词, 比如"怎么评"(每条规则一个词), 获客私信语句 ,用"|"号连接多个语句,随机其中一个
245
                 </div>
259
                 </div>
246
             </div>
260
             </div>
247
 
261
 
262
+            <div class="layui-form-item">
263
+                <label for="intro" class="layui-form-label">私信条数:</label>
264
+                <div class="layui-input-block">
265
+                    <input type="number" name="f26" id="" autocomplete="off" class="layui-input w30" value="10">
266
+                    <div class="layui-form-mid layui-word-aux" style="float: none;">小红书规则,一般一个账号一天最多10条主动私信</div>
267
+                </div>
268
+            </div>
248
 
269
 
249
             <div class="layui-form-item">
270
             <div class="layui-form-item">
250
-                <label class="layui-form-label">转为私信:</label>
271
+                <label class="layui-form-label">转为评论:</label>
251
                 <div class="layui-input-inline">
272
                 <div class="layui-input-inline">
252
-                    <input type="radio" name="f28" value="1" title="是" checked>
253
-                    <input type="radio" name="f28" value="0" title="否">
273
+                    <input type="radio" name="f29" value="1" title="是" checked>
274
+                    <input type="radio" name="f29" value="0" title="否">
254
 
275
 
255
-                    <div class="layui-form-mid layui-word-aux" style="float: none;">评论失败的时候(包含用户没有笔记) 是否转为私信</div>
276
+                    <div class="layui-form-mid layui-word-aux" style="float: none;">私信失败(用户关闭私信权限)的时候(包含私信发送失败) 是否转为私信</div>
256
                 </div>
277
                 </div>
257
             </div>
278
             </div>
258
 
279
 
259
-
260
         </div>
280
         </div>
261
     </div>
281
     </div>
262
 
282
 
263
 
283
 
284
+
264
     <div class="layui-colla-item">
285
     <div class="layui-colla-item">
265
-        <h2 class="layui-colla-title">具体私信设置</h2>
286
+        <h2 class="layui-colla-title">针对笔记评论区 用户的评论内容 进行关键词 匹配,进行评论的操作</h2>
266
         <div class="layui-colla-content">
287
         <div class="layui-colla-content">
267
 
288
 
268
-
269
-
270
-
271
-
272
             <div class="layui-form-item">
289
             <div class="layui-form-item">
273
-                <label class="layui-form-label">开启私信:</label>
290
+                <label class="layui-form-label">开启评论:</label>
274
                 <div class="layui-input-inline">
291
                 <div class="layui-input-inline">
275
-                    <input type="radio" name="f23" value="1" title="是" checked>
276
-                    <input type="radio" name="f23" value="0" title="否">
292
+                    <input type="radio" name="f22" value="1" title="是" checked>
293
+                    <input type="radio" name="f22" value="0" title="否">
277
                 </div>
294
                 </div>
278
             </div>
295
             </div>
279
 
296
 
280
-
281
             <div class="layui-form-item">
297
             <div class="layui-form-item">
282
-                <label for="intro" class="layui-form-label">私信触发:</label>
298
+                <label for="intro" class="layui-form-label">评论触发:</label>
283
                 <div class="layui-input-block">
299
                 <div class="layui-input-block">
284
 
300
 
285
-                    <textarea name="f24" placeholder="" class="layui-textarea">怎么|请问|如何|咨询|滴滴|广东|问一下|了解下|呢|吗|多少钱|高工|中级|副高|正高|高级|真的假的|真的吗|文件|发一下|了解一下|直接认定|满五年|私一个|真的么|咋整的|咋搞|工程类|可以评吗|在哪申请|申请条件|本科|毕业满|工程|行不行|想了解|可以申报|计算机|环境类|求资料|研究生|直接评|咋办理的|什么专业|工科专业|发来看看</textarea>
301
+                    <textarea name="f20" placeholder="" class="layui-textarea">怎么|请问|如何|咨询|滴滴|广东|问一下|了解下|呢|吗|多少钱|高工|中级|副高|正高|高级|真的假的|真的吗|文件|发一下|了解一下|直接认定|满五年|私一个|真的么|咋整的|咋搞|工程类|可以评吗|在哪申请|申请条件|本科|毕业满|工程|行不行|想了解|可以申报|计算机|环境类|求资料|研究生|直接评|咋办理的|什么专业|工科专业|发来看看</textarea>
286
 
302
 
287
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
303
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
288
-                        目标评论 内容 关键词, 每一句用符号"|" 号隔开,长度500字以内;
304
+                        用户的评论内容 关键词 设置, 每一句用符号"|" 号隔开,总长度500字以内;
289
                     </div>
305
                     </div>
290
                 </div>
306
                 </div>
291
             </div>
307
             </div>
293
 
309
 
294
 
310
 
295
 
311
 
296
-            <div class="layui-form-item f25">
297
-                <label class="layui-form-label">私信内容:</label>
312
+            <div class="layui-form-item f21">
313
+                <label class="layui-form-label">评论内容:</label>
298
                 <div class="layui-input-block">
314
                 <div class="layui-input-block">
299
 
315
 
300
         <span class="ks">
316
         <span class="ks">
305
     </div>
321
     </div>
306
     <div class="layui-col-xs3">
322
     <div class="layui-col-xs3">
307
       <div class="grid-demo">
323
       <div class="grid-demo">
308
-          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="default" disabled>
324
+          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="default" disabled>
309
       </div>
325
       </div>
310
     </div>
326
     </div>
311
     <div class="layui-col-xs1">
327
     <div class="layui-col-xs1">
312
-      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
328
+      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
313
     </div>
329
     </div>
314
     <div class="layui-col-xs4">
330
     <div class="layui-col-xs4">
315
       <div class="grid-demo">
331
       <div class="grid-demo">
316
-          <textarea name="f25_2[]" placeholder="" class="layui-textarea">工程师职称评审专业服务!|工程师职称评审免费咨询!</textarea>
332
+          <textarea name="f21_2[]" placeholder="" class="layui-textarea">工程师职称评审专业服务!|工程师职称评审免费咨询!</textarea>
317
       </div>
333
       </div>
318
     </div>
334
     </div>
319
 
335
 
335
     </div>
351
     </div>
336
     <div class="layui-col-xs3">
352
     <div class="layui-col-xs3">
337
       <div class="grid-demo">
353
       <div class="grid-demo">
338
-          <input type="text" name="f25_1[]" id="" autocomplete="off" class="layui-input" value="">
354
+          <input type="text" name="f21_1[]" id="" autocomplete="off" class="layui-input" value="">
339
       </div>
355
       </div>
340
     </div>
356
     </div>
341
     <div class="layui-col-xs1">
357
     <div class="layui-col-xs1">
342
-      <div class="grid-demo grid-demo-bg1">私信语句: &nbsp;</div>
358
+      <div class="grid-demo grid-demo-bg1">评论语句: &nbsp;</div>
343
     </div>
359
     </div>
344
     <div class="layui-col-xs4">
360
     <div class="layui-col-xs4">
345
       <div class="grid-demo">
361
       <div class="grid-demo">
346
-          <textarea name="f25_2[]" placeholder="" class="layui-textarea"></textarea>
362
+          <textarea name="f21_2[]" placeholder="" class="layui-textarea"></textarea>
347
       </div>
363
       </div>
348
     </div>
364
     </div>
349
 
365
 
359
 
375
 
360
         </span>
376
         </span>
361
 
377
 
362
-                    <span class="ks">
363
-            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f25" lay-event="add_f25">新增规则</button>
378
+        <span class="ks">
379
+            <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layEvent" id="add_f21" lay-event="add_f21">新增规则</button>
364
         </span>
380
         </span>
365
 
381
 
366
                 </div>
382
                 </div>
370
             <div class="layui-form-item">
386
             <div class="layui-form-item">
371
                 <label class="layui-form-label"></label>
387
                 <label class="layui-form-label"></label>
372
                 <div class="layui-input-block tips">
388
                 <div class="layui-input-block tips">
373
-                    关键词,比如"怎么评" , 目标评论随机语句 ,用"-"号连接多个语句
389
+                    关键词, 比如"怎么评"<b style="color:red;">(每条规则一个词)</b>, 获客评论语句 ,用"|"号连接多个语句,随机其中一个
374
                 </div>
390
                 </div>
375
             </div>
391
             </div>
376
 
392
 
377
-            <div class="layui-form-item">
378
-                <label for="intro" class="layui-form-label">私信条数:</label>
379
-                <div class="layui-input-block">
380
-                    <input type="number" name="f26" id="" autocomplete="off" class="layui-input w30" value="10">
381
-                    <div class="layui-form-mid layui-word-aux" style="float: none;">小红书规则,一般一个账号一天最多10条主动私信</div>
382
-                </div>
383
-            </div>
384
 
393
 
385
             <div class="layui-form-item">
394
             <div class="layui-form-item">
386
-                <label class="layui-form-label">转为评论:</label>
395
+                <label class="layui-form-label">转为私信:</label>
387
                 <div class="layui-input-inline">
396
                 <div class="layui-input-inline">
388
-                    <input type="radio" name="f29" value="1" title="是" checked>
389
-                    <input type="radio" name="f29" value="0" title="否">
397
+                    <input type="radio" name="f28" value="1" title="是" checked>
398
+                    <input type="radio" name="f28" value="0" title="否">
390
 
399
 
391
-                    <div class="layui-form-mid layui-word-aux" style="float: none;">私信失败的时候 是否转为评论</div>
400
+                    <div class="layui-form-mid layui-word-aux" style="float: none;">评论失败(用户关闭评论权限)的时候(包含用户没有笔记) 是否转为私信</div>
392
                 </div>
401
                 </div>
393
             </div>
402
             </div>
394
 
403
 
404
+
395
         </div>
405
         </div>
396
     </div>
406
     </div>
407
+
408
+
409
+
397
 </div>
410
 </div>
398
 
411
 
399
 
412
 

+ 3
- 3
app/shop/view/content/closure/setting/09.html View File

9
                     <input type="radio" name="k1" value="0"  lay-filter="k1" title="关闭" checked >
9
                     <input type="radio" name="k1" value="0"  lay-filter="k1" title="关闭" checked >
10
                     <input type="radio" name="k1" value="1"  lay-filter="k1" title="开启">
10
                     <input type="radio" name="k1" value="1"  lay-filter="k1" title="开启">
11
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
11
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
12
-                        目标状态下,是否进行 发送 评论钩子!
12
+                        获客状态下,是否进行 发送 评论钩子!
13
                     </div>
13
                     </div>
14
                 </div>
14
                 </div>
15
             </div>
15
             </div>
19
                     <input type="radio" name="k2" value="0"  lay-filter="k2" title="否" checked >
19
                     <input type="radio" name="k2" value="0"  lay-filter="k2" title="否" checked >
20
                     <input type="radio" name="k2" value="1"  lay-filter="k2" title="是">
20
                     <input type="radio" name="k2" value="1"  lay-filter="k2" title="是">
21
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
21
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
22
-                        目标状态下,已发送评论钩子,是否继续互动评论!
22
+                        获客状态下,已发送评论钩子,是否继续互动评论!
23
                     </div>
23
                     </div>
24
                 </div>
24
                 </div>
25
             </div>
25
             </div>
61
                     <textarea name="k6" placeholder="" class="layui-textarea">{$extend.e7??'wuwu'}</textarea>
61
                     <textarea name="k6" placeholder="" class="layui-textarea">{$extend.e7??'wuwu'}</textarea>
62
 
62
 
63
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
63
                     <div class="layui-form-mid layui-word-aux" style="float: none;">
64
-                        评论钩子语句, 每一句用符号"|" 号隔开,长度500字以内 , 随机其中一个;
64
+                        评论钩子语句, 每一句用符号"|" 号隔开,长度500字以内 , 随机其中一个;
65
                     </div>
65
                     </div>
66
                 </div>
66
                 </div>
67
             </div>
67
             </div>

+ 6
- 2
app/shop/view/content/equi_category/add.html View File

2
 
2
 
3
 {layout name="layout2" /}
3
 {layout name="layout2" /}
4
 <style>
4
 <style>
5
+  html,body{
6
+    height: 100% !important;
7
+
8
+  }
5
   .layui-form-label {
9
   .layui-form-label {
6
     color: #6a6f6c;
10
     color: #6a6f6c;
7
     width: 140px;
11
     width: 140px;
46
   </div>
50
   </div>
47
 
51
 
48
   <div class="layui-form-item">
52
   <div class="layui-form-item">
49
-    <label class="layui-form-label reqRed">上级设备:</label>
53
+    <label class="layui-form-label reqRed">所属电脑:</label>
50
     <div class="layui-input-inline">
54
     <div class="layui-input-inline">
51
       <select name="pid" lay-verify="required" placeholder="请选择" lay-filter="search_pid">
55
       <select name="pid" lay-verify="required" placeholder="请选择" lay-filter="search_pid">
52
-        <option value="0" data-level="1">顶级设备</option>
56
+        <option value="0" data-level="1">选择电脑</option>
53
         {foreach $category_list as $item => $val}
57
         {foreach $category_list as $item => $val}
54
         <option value="{$item}" data-level={$val.level}>{$val.name}</option>
58
         <option value="{$item}" data-level={$val.level}>{$val.name}</option>
55
         {/foreach}
59
         {/foreach}

+ 6
- 4
app/shop/view/content/equi_category/bd_2.html View File

1
 {layout name="layout2" /}
1
 {layout name="layout2" /}
2
 <style>
2
 <style>
3
+  html,body{
4
+    height: 100% !important;
5
+  }
3
   .layui-form-label {
6
   .layui-form-label {
4
     color: #6a6f6c;
7
     color: #6a6f6c;
5
     width: 140px;
8
     width: 140px;
36
         {else/}
39
         {else/}
37
           {$temp_id = $npz[$row['id']]}
40
           {$temp_id = $npz[$row['id']]}
38
         {/if}
41
         {/if}
39
-        <option value="{$val.id}" {if  $temp_id == $val.id}selected{/if}>
40
-         {$val.category} -- {$val.category2} -- 版本: {$val.version} -- {$val.title} -- 备注: {$val.intro}
41
-        </option>
42
+        <option value="{$val.id}" {if  $temp_id == $val.id}selected{/if}>({$item + 1}) - {$val.category} -- {$val.category2} -- 版本: {$val.version} -- {$val.title} -- 备注: {$val.intro}</option>
43
+
42
         {/foreach}
44
         {/foreach}
43
       </select>
45
       </select>
44
       <br/>
46
       <br/>
49
         {else/}
51
         {else/}
50
         {$temp_id = $ver_list_cur[$row['id']]}
52
         {$temp_id = $ver_list_cur[$row['id']]}
51
         {/if}
53
         {/if}
52
-        <option value="{$val}" {if  $temp_id == $val}selected{/if}>app版本号: {$val}</option>
54
+        <option value="{$val}" {if  $temp_id == $val}selected{/if}>({$item + 1}) - app版本号: {$val}</option>
53
         {/foreach}
55
         {/foreach}
54
       </select>
56
       </select>
55
 
57
 

+ 11
- 7
app/shop/view/content/equi_category/edit.html View File

1
 {layout name="layout2" /}
1
 {layout name="layout2" /}
2
 <style>
2
 <style>
3
+  html,body{
4
+    height: 100% !important;
5
+    background: #fff;
6
+  }
3
   .layui-form-label {
7
   .layui-form-label {
4
     color: #6a6f6c;
8
     color: #6a6f6c;
5
     width: 140px;
9
     width: 140px;
23
 
27
 
24
   <div class="layui-form-item">
28
   <div class="layui-form-item">
25
     <label class="layui-form-label"></label>
29
     <label class="layui-form-label"></label>
26
-    <span style="color: #a3a3a3;font-size: 9px">与影刀手机管理器 自定义名称 一致 (英文字母+数字)</span>
30
+    <span style="color: #a3a3a3;font-size: 12px">与影刀手机管理器 自定义名称 一致 (英文字母+数字)</span>
27
   </div>
31
   </div>
28
 
32
 
29
   <div class="layui-form-item">
33
   <div class="layui-form-item">
48
   {if $detail.pid > 0}
52
   {if $detail.pid > 0}
49
 
53
 
50
   <div class="layui-form-item">
54
   <div class="layui-form-item">
51
-    <label class="layui-form-label reqRed">上级设备:</label>
55
+    <label class="layui-form-label reqRed">所属电脑:</label>
52
     <div class="layui-input-inline">
56
     <div class="layui-input-inline">
53
       <select name="pid" lay-verify="required" placeholder="请选择" lay-filter="search_pid">
57
       <select name="pid" lay-verify="required" placeholder="请选择" lay-filter="search_pid">
54
         {foreach $category_list as $item => $val}
58
         {foreach $category_list as $item => $val}
61
   </div>
65
   </div>
62
 
66
 
63
   {else/}
67
   {else/}
64
-  <div class="layui-form-item">
65
-    <label class="layui-form-label reqRed">上级设备:</label>
68
+  <div class="layui-form-item" style="display:none;">
69
+    <label class="layui-form-label reqRed">所属电脑:</label>
66
     <div class="layui-input-inline">
70
     <div class="layui-input-inline">
67
       <select name="pid" lay-verify="required" placeholder="请选择" lay-filter="search_pid">
71
       <select name="pid" lay-verify="required" placeholder="请选择" lay-filter="search_pid">
68
-        <option value="0" data-level="1">顶级设备</option>
72
+        <option value="0" data-level="1">默认电脑</option>
69
 
73
 
70
         <!--
74
         <!--
71
         {foreach $category_list as $item => $val}
75
         {foreach $category_list as $item => $val}
154
   </div>
158
   </div>
155
   <div class="layui-form-item">
159
   <div class="layui-form-item">
156
     <label class="layui-form-label"></label>
160
     <label class="layui-form-label"></label>
157
-    <span style="color: #a3a3a3;font-size: 9px">根据教程: 复制到目标机器指定的文件内容即可;</span>
161
+    <span style="color: #a3a3a3;font-size: 12px">根据教程: 复制到目标机器指定的文件内容即可;</span>
158
   </div>
162
   </div>
159
   <div class="layui-form-item">
163
   <div class="layui-form-item">
160
     <label class="layui-form-label">机器码:</label>
164
     <label class="layui-form-label">机器码:</label>
172
 
176
 
173
   <div class="layui-form-item">
177
   <div class="layui-form-item">
174
     <label class="layui-form-label"></label>
178
     <label class="layui-form-label"></label>
175
-    <span style="color: #a3a3a3;font-size: 9px">如需更换机器,这里清空绑定的机器码后保存即可;</span>
179
+    <span style="color: #a3a3a3;font-size: 12px">如需更换机器,这里清空绑定的机器码后保存即可;</span>
176
   </div>
180
   </div>
177
   {/if}
181
   {/if}
178
 
182
 

+ 44
- 11
app/shop/view/content/equi_category/lists.html View File

22
           <div class="layui-colla-content layui-show">
22
           <div class="layui-colla-content layui-show">
23
             <p>
23
             <p>
24
 
24
 
25
-              <b>套餐包含:</b> 电脑{$server_info.pc_num}台,每台电脑可添加手机{$server_info.mobile_num}台,可同时运行手机{$server_info.run_num}台.
25
+{php}
26
+$date1 = time();
27
+$date2 = strtotime($end_time);
28
+// 将时间戳转换为天数
29
+$days = abs($date2 - $date1) / (60 * 60 * 24);
30
+$days = intval($days); //取整
31
+if($date1 > $date2){
32
+    $days_desc = "已过期".$days."天";
33
+}else if($days == 0){
34
+    $days_desc = "今天已到期";
35
+}else{
36
+    $days_desc = "剩余".$days."天";
37
+}
38
+//echo "相差天数:".intval($days); // 输出相差天数,使用intval确保得到整数结果
39
+{/php}
40
+
41
+                <b>套餐包含:</b> 电脑 <b style="color:#000;">{$server_info.pc_num}</b> 台,每台电脑可添加手机 <b style="color:#000;">{$server_info.mobile_num}</b> 台,可同时运行手机 <b style="color:#000;">{$server_info.run_num}</b> 台。
26
               <br/>
42
               <br/>
27
-              总电脑数量: {$edui_info[0][0]}台 &nbsp;&nbsp;&nbsp;&nbsp;<b>服务到期时间:</b>  {$end_time}<br/>
43
+              总电脑数量:<b style="color:#000;">{$edui_info[0][0]??"0"}</b> 台 &nbsp;&nbsp;&nbsp;&nbsp;<b style="color:red;">服务到期时间:</b>  <span style="color:red;">{$end_time} ({$days_desc})</span> &nbsp;&nbsp;&nbsp;&nbsp;<b style="color:red;">评论次数剩余数量:</b>  <span style="color:red;">{$hksy_count}</span> <br/>
28
               {volist name="edui_info" id="vo"}
44
               {volist name="edui_info" id="vo"}
29
-              第{$vo[1]}台电脑,总共{$vo[2]}台手机设备,已启用{$vo[3]}台手机设备,未启用{$vo[4]}台手机设备,可同时运行手机{$server_info.run_num}台. <br/>
45
+                第 <b style="color:#000;">{$vo[1]}</b> 台电脑,总共 <b style="color:#000;">{$vo[2]}</b> 台手机设备,已启用 <b style="color:#000;">{$vo[3]}</b> 台手机设备,未启用 <b style="color:#000;">{$vo[4]}</b> 台手机设备,可同时运行手机 <b style="color:#000;">{$server_info.run_num}</b> 台。 <br/>
30
               {/volist}
46
               {/volist}
31
 
47
 
32
             </p>
48
             </p>
91
         {{#  } }}
107
         {{#  } }}
92
       </script>
108
       </script>
93
 
109
 
110
+      <script type="text/html" id="is_bdpz">
111
+        {{#  if(d.pz != '' && d.pz != 'null' && d.pz != null && d.pz != 0 && d.pz != '0'){ }}
112
+        <font style="color: red;">已绑定</font>
113
+        {{#  }else{ }}
114
+        未绑定
115
+        {{#  } }}
116
+      </script>
117
+
118
+
119
+
94
       <!-- 操作列 -->
120
       <!-- 操作列 -->
95
       <script type="text/html" id="goods_category-operation">
121
       <script type="text/html" id="goods_category-operation">
96
 
122
 
97
         <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
123
         <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
98
-        <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
99
 
124
 
125
+        {{#  if(d.pid > 0){ }}
126
+        <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
127
+        {{#  } }}
100
 
128
 
101
         {{#  if(d.pid > 0){ }}
129
         {{#  if(d.pid > 0){ }}
102
-        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="bd_1">绑定行业</a>
103
-        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="bd_2">绑定配置</a>
130
+        <!-- <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="bd_1">绑定行业</a> -->
131
+        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="bd_2">修改配置</a>
104
 
132
 
105
         {{# }else{ }}
133
         {{# }else{ }}
106
 
134
 
107
-        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="bd_3">绑定默认配置</a>
135
+       <!--<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="bd_3">绑定默认配置</a>-->
108
 
136
 
109
         {{#  } }}
137
         {{#  } }}
110
 
138
 
140
         { field: 'name', title: '分类名称', width: 320},
168
         { field: 'name', title: '分类名称', width: 320},
141
         { field: 'ename', title: '别名', width: 150},
169
         { field: 'ename', title: '别名', width: 150},
142
         //{ title: '分类图标', width: 120, align: 'center', templet: '#image'},
170
         //{ title: '分类图标', width: 120, align: 'center', templet: '#image'},
143
-        { field: 'category2', title: '所属行业', width: 150},
171
+        //{ field: 'category2', title: '所属行业', width: 150},
172
+        {  title: '绑定配置', width: 150,templet: '#is_bdpz' },
144
         { title: '机器码', width: 100, align: 'center', templet: '#is_bd' },
173
         { title: '机器码', width: 100, align: 'center', templet: '#is_bd' },
145
         //{ title: '显示', width: 100, align: 'center', templet: '#is_show' },
174
         //{ title: '显示', width: 100, align: 'center', templet: '#is_show' },
146
         { title: '启用配置', width: 100, align: 'center', templet: '#is_user' },
175
         { title: '启用配置', width: 100, align: 'center', templet: '#is_user' },
155
           success:function (res) {
184
           success:function (res) {
156
             // 转json对象
185
             // 转json对象
157
             jsonObj = JSON.parse(res.data);
186
             jsonObj = JSON.parse(res.data);
158
-            if(res.code==0) callback(jsonObj);
159
-            else callback(res.msg);
187
+            if(res.code==0){
188
+              callback(jsonObj);
189
+              $('#expand-all').trigger("click");
190
+            }else{
191
+              callback(res.msg);
192
+            }
160
           }
193
           }
161
         })
194
         })
162
       }
195
       }
312
       if (event === 'bd_2') {
345
       if (event === 'bd_2') {
313
         layer.open({
346
         layer.open({
314
           type: 2
347
           type: 2
315
-          , title: '绑定配置'
348
+          , title: '修改配置'
316
           , content: '{:url("content.EquiCategory/bd_2")}?id=' + obj.data.id
349
           , content: '{:url("content.EquiCategory/bd_2")}?id=' + obj.data.id
317
           , area: ['70%', '70%']
350
           , area: ['70%', '70%']
318
           , btn: ['确定', '取消']
351
           , btn: ['确定', '取消']

+ 61
- 23
app/shop/view/index/stat.html View File

4
 <link rel="stylesheet" href="/static/plug/layui-admin/dist/layuiadmin/style/like.css?v={$front_version}" media="all">
4
 <link rel="stylesheet" href="/static/plug/layui-admin/dist/layuiadmin/style/like.css?v={$front_version}" media="all">
5
 <script src="__PUBLIC__/static/lib/layui/layui.js"></script>
5
 <script src="__PUBLIC__/static/lib/layui/layui.js"></script>
6
 <script src="__PUBLIC__/static/admin/js/app.js"></script>
6
 <script src="__PUBLIC__/static/admin/js/app.js"></script>
7
+
8
+
9
+
7
 <style>
10
 <style>
8
     
11
     
9
     .header-font{
12
     .header-font{
103
         height: auto;
106
         height: auto;
104
     }
107
     }
105
 
108
 
106
-
109
+    .lc_height {
110
+        height: calc(100vh - 100px);
111
+    }
112
+    .lc_height  .layui-fluid{
113
+        padding:0px !important;
114
+    }
107
 </style>
115
 </style>
108
 <div class="wrapper" style="margin-bottom: 100px">
116
 <div class="wrapper" style="margin-bottom: 100px">
109
     <div class="layui-card" >
117
     <div class="layui-card" >
113
         </div>
121
         </div>
114
     </div>
122
     </div>
115
     <div class="layui-row layui-col-space15">
123
     <div class="layui-row layui-col-space15">
116
-        <div class="layui-col-sm3">
124
+
125
+        <script>
126
+            $(function () {
127
+                /*var Url = "http://localhost";
128
+                $.ajax({
129
+                    url: Url,
130
+                    type: 'GET',
131
+                    dataType: "jsonp",
132
+                    jsonp: "callback",
133
+                    jsonpCallback:"success_jsonpCallback",
134
+                    complete: function(response){
135
+                        console.log(response);
136
+                    }
137
+                });*/
138
+            });
139
+        </script>
140
+
141
+
142
+        {if $is_in_page == 0}
143
+        <div class="layui-card">
144
+            <div class="layui-card-header">提示:</div>
145
+            <div class="layui-card-body">
146
+                本地环境插件Mation-build未启动服务!
147
+            </div>
148
+        </div>
149
+
150
+
151
+        {else/}
152
+            <iframe src="http://localhost" style="width: 100%; min-height: 600px;border: none;" class="lc_height"></iframe>
153
+        {/if}
154
+        <!-- <div class="layui-col-sm3">
117
             <div class="layui-card">
155
             <div class="layui-card">
118
                 <div class="layui-card-header">
156
                 <div class="layui-card-header">
119
                     成交订单(笔)
157
                     成交订单(笔)
128
                         {else/}
166
                         {else/}
129
                         <span class="red">涨:<span class="text-style">{$res.data.order_num.change_add}</span>
167
                         <span class="red">涨:<span class="text-style">{$res.data.order_num.change_add}</span>
130
                         {/if}
168
                         {/if}
131
-                    
169
+
132
                     </span> </p>
170
                     </span> </p>
133
                     <div class="data-all">累计成交订单<div class="text-style">{$res.data.order_num.all_num}</div></div>
171
                     <div class="data-all">累计成交订单<div class="text-style">{$res.data.order_num.all_num}</div></div>
134
                 </div>
172
                 </div>
149
                         {else/}
187
                         {else/}
150
                         <span class="red">涨:<span class="text-style">{$res.data.order_price.change_add}</span>
188
                         <span class="red">涨:<span class="text-style">{$res.data.order_price.change_add}</span>
151
                         {/if}
189
                         {/if}
152
-                    
190
+
153
                     </span> </p>
191
                     </span> </p>
154
                     <div class="data-all">累计营业额<div class="text-style">{$res.data.order_price.all_price}</div></div>
192
                     <div class="data-all">累计营业额<div class="text-style">{$res.data.order_price.all_price}</div></div>
155
                 </div>
193
                 </div>
170
                         {else/}
208
                         {else/}
171
                         <span class="red">涨:<span class="text-style">{$res.data.add_user_num.change_add}</span>
209
                         <span class="red">涨:<span class="text-style">{$res.data.add_user_num.change_add}</span>
172
                         {/if}
210
                         {/if}
173
-                    
211
+
174
                     </span> </p>
212
                     </span> </p>
175
                     <div class="data-all">累计进店人数<div class="text-style">{$res.data.add_user_num.all_num}</div></div>
213
                     <div class="data-all">累计进店人数<div class="text-style">{$res.data.add_user_num.all_num}</div></div>
176
                 </div>
214
                 </div>
191
                         {else/}
229
                         {else/}
192
                         <span class="red">涨:<span class="text-style">{$res.data.visit_user_num.change_add}</span>
230
                         <span class="red">涨:<span class="text-style">{$res.data.visit_user_num.change_add}</span>
193
                         {/if}
231
                         {/if}
194
-                    
232
+
195
                     </span> </p>
233
                     </span> </p>
196
                     <div class="data-all">累计商品浏览人数<div class="text-style">{$res.data.visit_user_num.all_num}</div></div>
234
                     <div class="data-all">累计商品浏览人数<div class="text-style">{$res.data.visit_user_num.all_num}</div></div>
197
                 </div>
235
                 </div>
198
             </div>
236
             </div>
199
-        </div>
237
+        </div> -->
200
 
238
 
201
         <!--快捷功能-->
239
         <!--快捷功能-->
202
-        <div class="layui-col-sm12" style="display:none;">
240
+        <!-- <div class="layui-col-sm12" style="display:none;">
203
             <div class="layui-card">
241
             <div class="layui-card">
204
                 <div class="layui-card-header">快捷功能</div>
242
                 <div class="layui-card-header">快捷功能</div>
205
                 <div class="layui-card-body">
243
                 <div class="layui-card-body">
257
                     </div>
295
                     </div>
258
                 </div>
296
                 </div>
259
             </div>
297
             </div>
260
-        </div>
298
+        </div> -->
261
 
299
 
262
         <!-- 销冠商品 -->
300
         <!-- 销冠商品 -->
263
-        <div class="layui-col-sm6 ">
301
+        <!-- <div class="layui-col-sm6 ">
264
             <div class="layui-card">
302
             <div class="layui-card">
265
                 <div class="layui-card-header">
303
                 <div class="layui-card-header">
266
                     销冠商品(前5名)
304
                     销冠商品(前5名)
269
                     <div class="layui-tab-content" style="padding: 0 15px;">
307
                     <div class="layui-tab-content" style="padding: 0 15px;">
270
 
308
 
271
                         <table id="goods-lists" lay-filter="goods-lists"></table>
309
                         <table id="goods-lists" lay-filter="goods-lists"></table>
272
-        
273
-        
310
+
311
+
274
                         <script type="text/html" id="goods-info">
312
                         <script type="text/html" id="goods-info">
275
                             <div style="text-align: left;">
313
                             <div style="text-align: left;">
276
                                 <img src="{{ d.image }}" style="height:50px;width: 50px" class="image-show layui-col-md4">
314
                                 <img src="{{ d.image }}" style="height:50px;width: 50px" class="image-show layui-col-md4">
277
                                 <p>商品名称:{{d.name}}</p>
315
                                 <p>商品名称:{{d.name}}</p>
278
                             </div>
316
                             </div>
279
                         </script>
317
                         </script>
280
-        
318
+
281
                     </div>
319
                     </div>
282
                 </div>
320
                 </div>
283
             </div>
321
             </div>
284
-        </div>
322
+        </div> -->
285
 
323
 
286
         <!-- 人气商品 -->
324
         <!-- 人气商品 -->
287
-        <div class="layui-col-sm6 ">
325
+        <!-- <div class="layui-col-sm6 ">
288
             <div class="layui-card">
326
             <div class="layui-card">
289
                 <div class="layui-card-header">
327
                 <div class="layui-card-header">
290
                     人气商品(前5名)
328
                     人气商品(前5名)
293
                     <div class="layui-tab-content" style="padding: 0 15px;">
331
                     <div class="layui-tab-content" style="padding: 0 15px;">
294
 
332
 
295
                         <table id="goods-lists2" lay-filter="goods-lists2"></table>
333
                         <table id="goods-lists2" lay-filter="goods-lists2"></table>
296
-        
297
-        
334
+
335
+
298
                         <script type="text/html" id="goods-info">
336
                         <script type="text/html" id="goods-info">
299
                             <div style="text-align: left;">
337
                             <div style="text-align: left;">
300
                                 <img src="{{ d.image }}" style="height:50px;width: 50px" class="image-show layui-col-md4">
338
                                 <img src="{{ d.image }}" style="height:50px;width: 50px" class="image-show layui-col-md4">
301
                                 <p>商品名称:{{d.name}}</p>
339
                                 <p>商品名称:{{d.name}}</p>
302
                             </div>
340
                             </div>
303
                         </script>
341
                         </script>
304
-        
342
+
305
                     </div>
343
                     </div>
306
                 </div>
344
                 </div>
307
             </div>
345
             </div>
308
-        </div>
346
+        </div> -->
309
 
347
 
310
         <!--表格-->
348
         <!--表格-->
311
-        <div class="layui-col-sm12">
349
+        <!-- <div class="layui-col-sm12">
312
             <div class="layui-card">
350
             <div class="layui-card">
313
                 <div class="layui-card-body">
351
                 <div class="layui-card-body">
314
                     <div class="layui-row">
352
                     <div class="layui-row">
337
                     </div>
375
                     </div>
338
                 </div>
376
                 </div>
339
             </div>
377
             </div>
340
-        </div>
378
+        </div> -->
341
 
379
 
342
     </div>
380
     </div>
343
 </div>
381
 </div>
345
     {$company_name}&nbsp;&nbsp;|&nbsp;&nbsp;版本号:{$version}
383
     {$company_name}&nbsp;&nbsp;|&nbsp;&nbsp;版本号:{$version}
346
     <br><br>
384
     <br><br>
347
 </footer>
385
 </footer>
348
-<script>
386
+<!-- <script>
349
     layui.config({
387
     layui.config({
350
         version:"{$front_version}",
388
         version:"{$front_version}",
351
         base: '/static/lib/'
389
         base: '/static/lib/'
643
             ]);
681
             ]);
644
         }
682
         }
645
     });
683
     });
646
-</script>
684
+</script> -->

+ 121
- 0
app/shop/view/order/order_renew/buy.html View File

1
+<!--
2
+ * @Author: xiaohai zmhwork@qq.com
3
+ * @Date: 2025-03-14 18:14:19
4
+ * @LastEditors: xiaohai zmhwork@qq.com
5
+ * @LastEditTime: 2025-03-14 18:32:11
6
+ * @FilePath: \opkpm\app\shop\view\order\order_renew\buy.html
7
+ * @Description: 续费套餐购买
8
+-->
9
+{layout name="layout2" /}
10
+
11
+<style>
12
+    html,body{
13
+        height: 100%;
14
+        background: #fff;
15
+    }
16
+    .layui-form-select .layui-input{
17
+        border: none;
18
+    }
19
+    .layui-edge{
20
+        display: none;
21
+    }
22
+</style>
23
+
24
+<div class="layui-card layui-form" style="box-shadow:none;">
25
+    <div class="layui-card-body">
26
+        <div class="layui-form-item">
27
+            <label for="name" class="layui-form-label"><span style="color:red;">*</span>续费套餐:</label>
28
+            <div class="layui-input-block">
29
+                <input type="text" name="name" id="name" value="{$detail.name}" lay-verType="tips" lay-verify="required"
30
+                    autocomplete="off" class="layui-input" readonly style="border:none;">
31
+            </div>
32
+        </div>
33
+        <div class="layui-form-item">
34
+            <label class="layui-form-label"><span style="color:red;">*</span>套餐图片:</label>
35
+            <div class="layui-input-block" >
36
+                {if $detail.image}
37
+                <div class="upload-image-div" style="margin-bottom:10px;">
38
+                    <a href="{$detail.image}" target="_blank"><img src="{$detail.image}" alt="img"></a>
39
+                    <a href="{$detail.image}" target="_blank" style="color: blue;">查看原图</a>
40
+                </div>
41
+                {/if}
42
+
43
+            </div>
44
+        </div>
45
+
46
+
47
+        <div class="layui-form-item">
48
+            <label for="name" class="layui-form-label">描述:</label>
49
+            <div class="layui-input-block">
50
+                <input type="text" name="desc" id="desc" autocomplete="off" class="layui-input" value="{$detail.desc}" readonly style="border:none;">
51
+            </div>
52
+        </div>
53
+
54
+        <div class="layui-form-item">
55
+            <label class="layui-form-label">类型:</label>
56
+            <div class="layui-input-block">
57
+                <select name="type_id" lay-verify="required" readonly style="border:none;">
58
+                    <option value="0" {neq name="detail.type_id" value="0"}disabled{/neq}>包月</option>
59
+                    <option value="1" {neq name="detail.type_id" value="1"}disabled{/neq}>按量付费</option>
60
+                </select>
61
+            </div>
62
+        </div>
63
+
64
+        <div class="layui-form-item">
65
+            <label for="price" class="layui-form-label"><span style="color:red;">*</span>价格:</label>
66
+            <div class="layui-input-block"  style="position:relative;">
67
+                <span style="position:absolute;left:5px;top:8px;">¥</span><input type="number" name="price" id="price" lay-verType="tips" lay-verify="required" autocomplete="off"
68
+                    class="layui-input" value="{$detail.price}" readonly  style="border:none;padding-left:20px;">
69
+            </div>
70
+        </div>
71
+
72
+        <div class="layui-form-item">
73
+            <label for="op_count" class="layui-form-label"><span style="color:red;">*</span>作用:</label>
74
+            <div class="layui-input-block"  style="position:relative;">
75
+
76
+
77
+                {if $detail.type_id == 0}
78
+                <span style="position:absolute;left:5px;top:8px;"></span>
79
+                <input type="number" name="op_count" id="op_count" lay-verType="tips" lay-verify="required"
80
+                       autocomplete="off" class="layui-input" value="{$detail.op_count}" readonly style="border:none;padding-left:5px;">
81
+                <div class="layui-form-mid layui-word-aux">商户到期时间,延长{$detail.op_count}个月</div>
82
+                {else/}
83
+                <span style="position:absolute;left:5px;top:8px;"></span>
84
+                <input type="number" name="op_count" id="op_count" lay-verType="tips" lay-verify="required"
85
+                       autocomplete="off" class="layui-input" value="{$detail.op_count}" readonly style="border:none;padding-left:5px;">
86
+                <div class="layui-form-mid layui-word-aux">用户主页作品评论使用次数,增加{$detail.op_count}次</div>
87
+                {/if}
88
+
89
+
90
+            </div>
91
+        </div>
92
+
93
+
94
+        <div class="layui-form-item">
95
+            <label for="renew_num" class="layui-form-label">数量:</label>
96
+            <div class="layui-input-block">
97
+                <input type="number" name="renew_num" id="renew_num" value="1" autocomplete="off"
98
+                    class="layui-input" style="width:50px;">
99
+            </div>
100
+        </div>
101
+
102
+        <div class="layui-form-item layui-hide">
103
+            <input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
104
+        </div>
105
+    </div>
106
+</div>
107
+
108
+<script>
109
+    layui.use([], function () {
110
+
111
+        like.delUpload();
112
+        $(document).on("click", ".add-upload-image", function () {
113
+            like.imageUpload({
114
+                limit: 1,
115
+                field: "image",
116
+                that: $(this)
117
+            });
118
+        })
119
+
120
+    })
121
+</script>

+ 148
- 0
app/shop/view/order/order_renew/lists.html View File

1
+{layout name="layout1" /}
2
+
3
+<div class="wrapper">
4
+    <div class="layui-card">
5
+        <!-- 操作提示 -->
6
+        <div class="layui-card-body">
7
+            <div class="layui-collapse" style="border:1px dashed #c4c4c4">
8
+                <div class="layui-colla-item">
9
+                    <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
10
+                    <div class="layui-colla-content layui-show">
11
+                        <p>*续费套餐管理。</p>
12
+                    </div>
13
+                </div>
14
+            </div>
15
+        </div>
16
+
17
+        <!-- 搜索区域 -->
18
+        <div class="layui-card-body layui-form">
19
+            <div class="layui-form-item">
20
+                <div class="layui-inline">
21
+                    <label for="renew_name" class="layui-form-label">商品名称:</label>
22
+                    <div class="layui-input-inline">
23
+                        <input type="text" id="renew_name" name="renew_name" autocomplete="off" class="layui-input">
24
+                    </div>
25
+                </div>
26
+                <div class="layui-inline">
27
+                    <a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
28
+                    <a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
29
+                </div>
30
+            </div>
31
+        </div>
32
+
33
+        <!-- 主体区域 -->
34
+        <div class="layui-card-body">
35
+            <table id="like-table-lists" lay-filter="like-table-lists"></table>
36
+            <script type="text/html" id="table-image">
37
+                {{#  if(d.image){ }}
38
+                    <img src="{{d.image}}" alt="图标" style="width:28px;height:28px;">
39
+                {{#  } }}
40
+            </script>
41
+            <script type="text/html" id="table-operation">
42
+                {{#  if(d.order_status == 0){ }}
43
+                    <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="pay">点击支付</a>
44
+                    <!--<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="cancel">取消订单</a>-->
45
+                {{#  } }}
46
+            </script>
47
+
48
+            <script type="text/html" id="table-price">
49
+                <b style="color:red;">¥{{ d.renew_price }}</b>
50
+            </script>
51
+
52
+            <script type="text/html" id="table-order">
53
+
54
+                {{#  if(d.order_status_str == "待支付"){ }}
55
+                <b style="color:red;">{{ d.order_status_str }}</b>
56
+                {{#  } }}
57
+                {{#  if(d.order_status_str == "已完成"){ }}
58
+                <b style="color:blue;">{{ d.order_status_str }}</b>
59
+                {{#  } }}
60
+                {{#  if(d.order_status_str == "已关闭"){ }}
61
+                <b style="color:#000;">{{ d.order_status_str }}</b>
62
+                {{#  } }}
63
+
64
+            </script>
65
+
66
+            <script type="text/html" id="table-pay">
67
+                {{#  if(d.pay_status_str == "待支付"){ }}
68
+                <b style="color:red;">{{ d.pay_status_str }}</b>
69
+                {{#  } }}
70
+
71
+                {{#  if(d.pay_status_str == "已支付"){ }}
72
+                <b style="color:blue;">{{ d.pay_status_str }}</b>
73
+                {{#  } }}
74
+            </script>
75
+        </div>
76
+
77
+    </div>
78
+</div>
79
+
80
+<script>
81
+    layui.use(["table", "form"], function () {
82
+        var table = layui.table;
83
+        var form = layui.form;
84
+
85
+
86
+        like.tableLists("#like-table-lists", "{:url()}", [
87
+            { field: "id", width: 80, title: "ID" }
88
+            , { field: "order_sn", width: 200, align: "center", title: "订单编号" }
89
+            , { field: "renew_name", width: 180, align: "center", title: "商品名称" }
90
+            , { field: "total_num", width: 100, align: "center", title: "商品数量" }
91
+            , { field: "renew_price", width: 100, align: "center", title: "订单总价", templet: "#table-price"  }
92
+            , { field: "order_status_str", width: 100, align: "center", title: "订单状态" , templet: "#table-order" }
93
+            , { field: "pay_way_str", width: 100, align: "center", title: "支付方式" }
94
+            , { field: "pay_status_str", width: 100, align: "center", title: "支付状态"  , templet: "#table-pay"}
95
+            , { field: "pay_time_str", width: 200, align: "center", title: "支付时间" }
96
+            , { field: "trade_no", width: 250, align: "center", title: "支付流水号" }
97
+            , { title: "操作", width: 100, align: "center", fixed: "right", toolbar: "#table-operation" }
98
+        ]);
99
+
100
+        var active = {
101
+            pay: function (obj) {
102
+                window.open("{:url('order.OrderRenew/payPage')}?id=" + obj.data.id);
103
+            },
104
+            cancel: function (obj) {
105
+                layer.confirm("确定取消该订单吗:" + obj.data.order_sn, function (index) {
106
+                    like.ajax({
107
+                        url: "{:url('order.OrderRenew/cancel')}",
108
+                        data: { id: obj.data.id },
109
+                        type: "POST",
110
+                        success: function (res) {
111
+                            if (res.code === 1) {
112
+                                layui.layer.msg(res.msg);
113
+                                layer.close(index);
114
+                                obj.del();
115
+                            }
116
+                        }
117
+                    });
118
+                    layer.close(index);
119
+                })
120
+            }
121
+        };
122
+
123
+        like.eventClick(active);
124
+
125
+
126
+        form.on("submit(search)", function (data) {
127
+            table.reload("like-table-lists", {
128
+                where: data.field,
129
+                page: {
130
+                    curr: 1
131
+                }
132
+            });
133
+        });
134
+
135
+
136
+        form.on("submit(clear-search)", function () {
137
+            $("#name").val("");
138
+            form.render("select");
139
+            table.reload("like-table-lists", {
140
+                where: {},
141
+                page: {
142
+                    curr: 1
143
+                }
144
+            });
145
+        });
146
+
147
+    })
148
+</script>

+ 137
- 0
app/shop/view/order/order_renew/pay_page.html View File

1
+<!--
2
+ * @Author: xiaohai zmhwork@qq.com
3
+ * @Date: 2025-03-14 18:14:19
4
+ * @LastEditors: xiaohai zmhwork@qq.com
5
+ * @LastEditTime: 2025-03-20 16:52:12
6
+ * @FilePath: \opkpm\app\shop\view\order\order_renew\pay_page.html
7
+ * @Description: 续费套餐支付方式
8
+-->
9
+<!DOCTYPE html>
10
+<html>
11
+
12
+<head>
13
+    <meta charset="utf-8">
14
+    <title>支付</title>
15
+    <meta name="renderer" content="webkit">
16
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
17
+    <meta name="viewport"
18
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
19
+    <link rel="stylesheet" href="__PUBLIC__/static/lib/layui/css/layui.css?v={$front_version}">
20
+    <link rel="stylesheet" href="__PUBLIC__/static/admin/css/app.css">
21
+    <link rel="stylesheet" href="__PUBLIC__/static/admin/css/like.css">
22
+    <script src="__PUBLIC__/static/lib/layui/layui.js?v={$front_version}"></script>
23
+    <script src="__PUBLIC__/static/admin/js/app.js"></script>
24
+</head>
25
+
26
+<body>
27
+
28
+    <div class="layui-row layui-col-space15" data-filtered="filtered" style="margin-top: 100px;">
29
+        <div class="layui-col-md3" data-filtered="filtered">
30
+        </div>
31
+
32
+        <div class="layui-col-md6" data-filtered="filtered">
33
+            <div class="layui-panel" data-filtered="filtered" style="width:800px;margin:0 auto;">
34
+                <div class="layui-card layui-form" style="margin: 20px;" id="payPage">
35
+                    <div class="layui-card-body">
36
+                        <div class="layui-form-item">
37
+                            <label for="order_sn" class="layui-form-label"><span
38
+                                    style="color:red;">*</span>订单编号:</label>
39
+                            <div class="layui-input-block">
40
+                                <input type="hidden" name="id" id="id" value="{$detail.id}" />
41
+                                <input type="text" name="order_sn" id="order_sn" value="{$detail.order_sn}"
42
+                                    lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input"
43
+                                    readonly>
44
+                            </div>
45
+                        </div>
46
+
47
+                        <div class="layui-form-item">
48
+                            <label for="renew_name" class="layui-form-label"><span
49
+                                    style="color:red;">*</span>商品名称:</label>
50
+                            <div class="layui-input-block">
51
+                                <input type="text" name="renew_name" id="renew_name" value="{$detail.renew_name}"
52
+                                    lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input"
53
+                                    readonly>
54
+                            </div>
55
+                        </div>
56
+
57
+                        <div class="layui-form-item">
58
+                            <label for="total_num" class="layui-form-label"><span
59
+                                    style="color:red;">*</span>商品数量:</label>
60
+                            <div class="layui-input-block">
61
+                                <input type="text" name="total_num" id="total_num" value="{$detail.total_num}"
62
+                                    lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input"
63
+                                    readonly>
64
+                            </div>
65
+                        </div>
66
+
67
+                        <div class="layui-form-item">
68
+                            <label for="order_amount" class="layui-form-label"><span
69
+                                    style="color:red;">*</span>应付金额:</label>
70
+                            <div class="layui-input-block" style="position:relative;">
71
+                                <span style="position:absolute;left:5px;top:8px;">¥</span>
72
+                                <input type="text" name="order_amount" id="order_amount" value="{$detail.order_amount}"
73
+                                    lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input"
74
+                                    readonly  style="padding-left:20px;">
75
+                            </div>
76
+                        </div>
77
+
78
+                        <div class="layui-form-item">
79
+                            <label class="layui-form-label">支付方式</label>
80
+                            <div class="layui-input-block">
81
+                                <input type="radio" name="pay_way" value="1" title="微信支付" disabled>
82
+                                <input type="radio" name="pay_way" value="2" title="支付宝支付" checked>
83
+                            </div>
84
+                        </div>
85
+
86
+                        <div class="layui-form-item">
87
+                            <div class="layui-input-block">
88
+                                <button type="button" class="layui-btn" lay-event="pay" id="pay">立即支付</button>
89
+                            </div>
90
+                        </div>
91
+                    </div>
92
+                </div>
93
+            </div>
94
+        </div>
95
+
96
+        <div class="layui-col-md3" data-filtered="filtered">
97
+        </div>
98
+    </div>
99
+
100
+
101
+    <script src="__PUBLIC__/static/admin/js/jquery.min.js"></script>
102
+    <script src="__PUBLIC__/static/admin/js/function.js"></script>
103
+    <script>
104
+        layui.use(["table", "form", "jquery"], function () {
105
+            var table = layui.table;
106
+            var form = layui.form;
107
+            var $ = layui.jquery;
108
+
109
+            function payPage(id, pay_way) {
110
+                // 选择支付方式
111
+                like.ajax({
112
+                    url: "{:url('order.OrderRenew/payWay')}",
113
+                    data: { id: id, pay_way: pay_way },
114
+                    type: "POST",
115
+                    success: function (res) {
116
+                        if (res.code === 1) {
117
+                            $('#payPage').html(res.data.page);
118
+                        } else {
119
+                            layer.msg(res.msg);
120
+                        }
121
+                    }
122
+                })
123
+            }
124
+
125
+
126
+            $("#pay").on("click", function () {
127
+                var id = $("#id").val();
128
+                var pay_way = $("input[name='pay_way']:checked").val();
129
+                payPage(id, pay_way);
130
+            });
131
+
132
+        })
133
+    </script>
134
+
135
+</body>
136
+
137
+</html>

+ 165
- 0
app/shop/view/order/order_renew/renew_lists.html View File

1
+{layout name="layout1" /}
2
+
3
+<div class="wrapper">
4
+    <div class="layui-card">
5
+        <!-- 操作提示 -->
6
+        <div class="layui-card-body">
7
+            <div class="layui-collapse" style="border:1px dashed #c4c4c4">
8
+                <div class="layui-colla-item">
9
+                    <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
10
+                    <div class="layui-colla-content layui-show">
11
+                        <p>*续费套餐分为包月和按量付费。</p>
12
+                    </div>
13
+                </div>
14
+            </div>
15
+        </div>
16
+
17
+        <!-- 搜索区域 -->
18
+        <div class="layui-card-body layui-form">
19
+            <div class="layui-form-item">
20
+                <div class="layui-inline">
21
+                    <label for="name" class="layui-form-label">续费套餐:</label>
22
+                    <div class="layui-input-inline">
23
+                        <input type="text" id="name" name="name" autocomplete="off" class="layui-input">
24
+                    </div>
25
+                </div>
26
+                <div class="layui-inline">
27
+                    <a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
28
+                    <a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
29
+                </div>
30
+            </div>
31
+        </div>
32
+
33
+        <!-- 主体区域 -->
34
+        <div class="layui-card-body">
35
+            <table id="like-table-lists" lay-filter="like-table-lists"></table>
36
+            <script type="text/html" id="table-image">
37
+                {{#  if(d.image){ }}
38
+                    <img src="{{d.image}}" alt="图标" style="width:28px;height:28px;">
39
+                {{#  } }}
40
+            </script>
41
+            <script type="text/html" id="table-operation">
42
+
43
+
44
+                {{#  if(d.status == 0){ }}
45
+                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="" style="height: 25px;line-height: 25px;background-color: #a8abad;">维护中</a>
46
+                {{#  } }}
47
+                {{#  if(d.status == 1){ }}
48
+                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="buy" style="height: 25px;line-height: 25px;">购买</a>
49
+                {{#  } }}
50
+
51
+            </script>
52
+
53
+            <script type="text/html" id="table-type">
54
+
55
+                {{#  if(d.type_id == 0){ }}
56
+                    续期 {{ d.op_count }} 个月
57
+                {{#  } }}
58
+                {{#  if(d.type_id == 1){ }}
59
+                充值数量 {{ d.op_count }} 次
60
+                {{#  } }}
61
+
62
+            </script>
63
+
64
+            <script type="text/html" id="table-price">
65
+            <b style="color:red;">¥{{ d.price }}</b>
66
+            </script>
67
+
68
+
69
+            <script type="text/html" id="table-status">
70
+
71
+                {{#  if(d.status_str == "禁用"){ }}
72
+                <b style="color:red;">禁用</b>
73
+                {{#  } }}
74
+                {{#  if(d.status_str == "启用"){ }}
75
+                <b style="color:blue;">启用</b>
76
+                {{#  } }}
77
+
78
+            </script>
79
+        </div>
80
+
81
+    </div>
82
+</div>
83
+
84
+<script>
85
+    layui.use(["table", "form"], function () {
86
+        var table = layui.table;
87
+        var form = layui.form;
88
+
89
+
90
+        like.tableLists("#like-table-lists", "{:url()}", [
91
+            { field: "id", width: 60, title: "ID" }
92
+            , { field: "name", width: 260, align: "center", title: "续费套餐" }
93
+            , { field: "image", width: 120, align: "center", title: "套餐图片", templet: "#table-image" }
94
+            , { field: "type_str", width: 100, align: "center", title: "类型" }
95
+            , { field: "desc", width: 300, align: "center", title: "描述" }
96
+            , { field: "price", width: 100, align: "center", title: "价格",templet: "#table-price" }
97
+            , { field: "op_count", width: 160, align: "center", title: "作用",templet: "#table-type"  }
98
+            , { field: "status_str", width: 100, align: "center", title: "状态" ,templet: "#table-status"}
99
+            , { field: "sort", width: 100, align: "center", title: "排序" }
100
+            , { title: "操作", width: 150, align: "center", fixed: "right", toolbar: "#table-operation" }
101
+        ]);
102
+
103
+
104
+        var active = {
105
+            buy: function (obj) {
106
+                layer.open({
107
+                    type: 2
108
+                    , title: "购买续费套餐"
109
+                    , content: "{:url('order.OrderRenew/buy')}?id=" + obj.data.id
110
+                    , area: ["800px", "600px"]
111
+                    , btn: ["确定", "取消"]
112
+                    , yes: function (index, layero) {
113
+                        var iframeWindow = window["layui-layer-iframe" + index];
114
+                        var submit = layero.find("iframe").contents().find("#addSubmit");
115
+                        iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
116
+                            data.field['renew_id'] = obj.data.id;
117
+                            like.ajax({
118
+                                url: "{:url('order.OrderRenew/add')}",
119
+                                data: data.field,
120
+                                type: "POST",
121
+                                success: function (res) {
122
+                                    if (res.code === 1) {
123
+                                        layer.close(index);
124
+                                        window.open("{:url('order.OrderRenew/payPage')}?id=" + res.data.id);
125
+                                    } else {
126
+                                        layer.msg(res.msg);
127
+                                    }
128
+                                }
129
+                            });
130
+                        });
131
+                        submit.trigger("click");
132
+                    }
133
+                });
134
+            },
135
+        };
136
+
137
+
138
+        
139
+
140
+        like.eventClick(active);
141
+
142
+
143
+        form.on("submit(search)", function (data) {
144
+            table.reload("like-table-lists", {
145
+                where: data.field,
146
+                page: {
147
+                    curr: 1
148
+                }
149
+            });
150
+        });
151
+
152
+
153
+        form.on("submit(clear-search)", function () {
154
+            $("#name").val("");
155
+            form.render("select");
156
+            table.reload("like-table-lists", {
157
+                where: {},
158
+                page: {
159
+                    curr: 1
160
+                }
161
+            });
162
+        });
163
+
164
+    })
165
+</script>

+ 109
- 0
app/shop/view/order/order_renew/renew_log.html View File

1
+<!--
2
+ * @Author: xiaohai zmhwork@qq.com
3
+ * @Date: 2025-03-22 18:02:49
4
+ * @LastEditors: xiaohai zmhwork@qq.com
5
+ * @LastEditTime: 2025-03-23 21:35:18
6
+ * @FilePath: \opkpm\app\shop\view\order\order_renew\renew_log.html
7
+ * @Description: 记录
8
+-->
9
+{layout name="layout1" /}
10
+
11
+<div class="wrapper">
12
+    <div class="layui-card">
13
+        <!-- 操作提示 -->
14
+        <div class="layui-card-body">
15
+            <div class="layui-collapse" style="border:1px dashed #c4c4c4">
16
+                <div class="layui-colla-item">
17
+                    <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
18
+                    <div class="layui-colla-content layui-show">
19
+                        <p>*按量付费-续费套餐日志记录。</p>
20
+                    </div>
21
+                </div>
22
+            </div>
23
+        </div>
24
+
25
+        <!-- 搜索区域 -->
26
+        <div class="layui-card-body layui-form">
27
+            <div class="layui-form-item">
28
+                <label class="layui-form-label">类型</label>
29
+                <div class="layui-input-inline">
30
+                    <select name="source_type">
31
+                        <option value="">请选择</option>
32
+                        <option value="101">使用扣减次数</option>
33
+                        <option value="100">充值次数</option>
34
+                    </select>
35
+                </div>
36
+                <div class="layui-inline" style="margin-top: 5px;">
37
+                    <a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
38
+                    <a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
39
+                </div>
40
+            </div>
41
+        </div>
42
+
43
+        <!-- 主体区域 -->
44
+        <div class="layui-card-body">
45
+            <table id="like-table-lists" lay-filter="like-table-lists"></table>
46
+        </div>
47
+
48
+        <script type="text/html" id="table-count">
49
+            {{# if(0 - d.change_count > 0){ }}
50
+            <span style="color: red;">{{ d.change_count }}</span>
51
+            {{#  }else{ }}
52
+            <span style="color: blue;">+{{ d.change_count }}</span>
53
+            {{#  } }}
54
+        </script>
55
+
56
+        <script type="text/html" id="table-type">
57
+            {{# if(d.source_type == 101){ }}
58
+            <span style="color: red;">使用扣减次数</span>
59
+            {{#  } }}
60
+
61
+            {{# if(d.source_type == 100){ }}
62
+            <span style="color: blue;">充值次数</span>
63
+            {{#  } }}
64
+        </script>
65
+
66
+        <script type="text/html" id="table-num">
67
+            <span style="color: #000;"><b>{{ d.left_count }}</b></span>
68
+        </script>
69
+
70
+    </div>
71
+</div>
72
+
73
+<script>
74
+    layui.use(["table", "form"], function () {
75
+        var table = layui.table;
76
+        var form = layui.form;
77
+
78
+
79
+        like.tableLists("#like-table-lists", "{:url()}", [
80
+            { field: "id", width: 80, title: "ID" }
81
+            , { field: "source_type", width: 120, align: "center", title: "变动类型",templet:"#table-type"}
82
+            , { field: "change_count", width: 120, align: "center", title: "变动数量",templet:"#table-count"}
83
+            , { field: "left_count", width: 120, align: "center", title: "变动后总数",templet:"#table-num" }
84
+            , { field: "remark", align: "center", title: "备注" }
85
+            , { field: "create_time", width: 200, align: "center", title: "更新时间" }
86
+        ]);
87
+
88
+        form.on("submit(search)", function (data) {
89
+            table.reload("like-table-lists", {
90
+                where: data.field,
91
+                page: {
92
+                    curr: 1
93
+                }
94
+            });
95
+        });
96
+
97
+
98
+        form.on("submit(clear-search)", function () {
99
+            $("#name").val("");
100
+            form.render("select");
101
+            table.reload("like-table-lists", {
102
+                where: {},
103
+                page: {
104
+                    curr: 1
105
+                }
106
+            });
107
+        });
108
+    })
109
+</script>

+ 98
- 0
app/shop/view/order/order_renew/renew_month_log.html View File

1
+<!--
2
+ * @Author: xiaohai zmhwork@qq.com
3
+ * @Date: 2025-03-22 18:02:49
4
+ * @LastEditors: xiaohai zmhwork@qq.com
5
+ * @LastEditTime: 2025-03-23 21:36:08
6
+ * @FilePath: \opkpm\app\shop\view\order\order_renew\renew_month_log.html
7
+ * @Description: 记录
8
+-->
9
+{layout name="layout1" /}
10
+
11
+<div class="wrapper">
12
+    <div class="layui-card">
13
+        <!-- 操作提示 -->
14
+        <div class="layui-card-body">
15
+            <div class="layui-collapse" style="border:1px dashed #c4c4c4">
16
+                <div class="layui-colla-item">
17
+                    <h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
18
+                    <div class="layui-colla-content layui-show">
19
+                        <p>*包月-续费套餐日志记录。</p>
20
+                    </div>
21
+                </div>
22
+            </div>
23
+        </div>
24
+
25
+         <!-- 搜索区域 -->
26
+         <div class="layui-card-body layui-form" style="display:none;">
27
+            <div class="layui-form-item">
28
+                <label class="layui-form-label">类型</label>
29
+                <div class="layui-input-inline">
30
+                    <select name="type_id">
31
+                        <option value=""></option>
32
+                    </select>
33
+                </div>
34
+                <div class="layui-inline">
35
+                    <a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
36
+                    <a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
37
+                </div>
38
+            </div>
39
+        </div>
40
+
41
+        <!-- 主体区域 -->
42
+        <div class="layui-card-body">
43
+            <table id="like-table-lists" lay-filter="like-table-lists"></table>
44
+        </div>
45
+
46
+
47
+        <script type="text/html" id="table-count">
48
+
49
+            {{# if(0 - d.change_count > 0){ }}
50
+                <span style="color: blue;">{{ d.change_count }}</span>
51
+            {{#  }else{ }}
52
+                <span style="color: red;">+{{ d.change_count }}</span>
53
+            {{#  } }}
54
+
55
+
56
+
57
+        </script>
58
+
59
+    </div>
60
+</div>
61
+
62
+<script>
63
+    layui.use(["table", "form"], function () {
64
+        var table = layui.table;
65
+        var form = layui.form;
66
+
67
+
68
+        like.tableLists("#like-table-lists", "{:url()}", [
69
+            { field: "id", width: 80, title: "ID" }
70
+            , { field: "change_count", width: 100, align: "center", title: "续费月数",templet:"#table-count"}
71
+            , { field: "before_date", width: 200, align: "center", title: "续费前到期时间" }
72
+            , { field: "after_date", width: 200, align: "center", title: "续费后到期时间" }
73
+            , { field: "remark",align: "center", title: "备注" }
74
+            , { field: "create_time", width: 200, align: "center", title: "更新时间" }
75
+        ]);
76
+
77
+        form.on("submit(search)", function (data) {
78
+            table.reload("like-table-lists", {
79
+                where: data.field,
80
+                page: {
81
+                    curr: 1
82
+                }
83
+            });
84
+        });
85
+
86
+
87
+        form.on("submit(clear-search)", function () {
88
+            $("#name").val("");
89
+            form.render("select");
90
+            table.reload("like-table-lists", {
91
+                where: {},
92
+                page: {
93
+                    curr: 1
94
+                }
95
+            });
96
+        });
97
+    })
98
+</script>

+ 0
- 7
public/.htaccess View File

1
-<IfModule mod_rewrite.c>
2
-   Options +FollowSymlinks
3
-   RewriteEngine On
4
-   RewriteCond %{REQUEST_FILENAME} !-d
5
-   RewriteCond %{REQUEST_FILENAME} !-f
6
-   RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]
7
-</IfModule>

+ 1
- 0
public/static/admin/js/function.js View File

192
      * @param options
192
      * @param options
193
      */
193
      */
194
     videoUpload: function (options) {
194
     videoUpload: function (options) {
195
+
195
         var that  = options.that;
196
         var that  = options.that;
196
         var limit = options.limit || 1;
197
         var limit = options.limit || 1;
197
         var field = options.field || "video";
198
         var field = options.field || "video";

Loading…
Cancel
Save