KeywordPrefix.php
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
/**
* @remark :
* @name :KeywordPrefix.php
* @author :lyh
* @method :post
* @time :2023/8/16 11:50
*/
namespace App\Models\Project;
use App\Models\Base;
use Illuminate\Support\Facades\Cache;
/**
* @remark :关键字前缀/后缀
* @name :KeywordPrefix
* @author :lyh
* @method :post
* @time :2023/8/16 11:51
*/
class KeywordPrefix extends Base
{
protected $table = 'gl_project_keyword_prefix';
/**
* 前后缀类型
*/
const TYPE_OPTIMIZE_PREFIX = 1;
const TYPE_OPTIMIZE_SUFFIX = 2;
const TYPE_GEO_PREFIX = 3;
const TYPE_GEO_SUFFIX = 4;
/**
* 前后缀类型映射
* @return array
*/
public static function typeMapping()
{
return [
self::TYPE_OPTIMIZE_PREFIX => '优化关键词前缀',
self::TYPE_OPTIMIZE_SUFFIX => '优化关键词后缀',
self::TYPE_GEO_PREFIX => 'GEO前缀',
self::TYPE_GEO_SUFFIX => 'GEO后缀',
];
}
/**
* 保存关键词前后缀
* @param $project_id
* @param $type
* @param $keyword
* @param $remark
* @return KeywordPrefix
*/
public static function saveKeyword($project_id, $type, $keyword, $remark)
{
$data = self::where(['project_id' => $project_id, 'keyword' => $keyword])->first();
if (empty($data)) {
$data = new self();
$data->project_id = $project_id;
$data->type = $type;
$data->keyword = $keyword;
}
$data->remark = $remark;
$data->save();
Cache::forget('project_keyword_ps_' . $project_id . '_' . $type);
return $data;
}
/**
* 获取关键词前后缀
* @param $project_id
* @param $type
* @return array|mixed
*/
public static function getKeyword($project_id, $type)
{
$key = 'project_keyword_ps_' . $project_id . '_' . $type;
$list = Cache::get($key);
if (empty($list)) {
$list = self::select(['id', 'type', 'keyword', 'remark'])->where(['type' => $type])->whereIn('project_id', [0, $project_id])->orderBy('project_id', 'asc')->get();
$list = $list->isEmpty() ? [] : $list->toArray();
if ($list)
Cache::put($key, $list, 1800);
}
return $list;
}
}