ReplaceHtmlLog.php
3.5 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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
/**
* @remark :
* @name :ReplaceHtmlLog.php
* @author :lyh
* @method :post
* @time :2024/5/10 17:53
*/
namespace App\Console\Commands\ReplaceHtml;
use App\Models\Template\BCustomTemplate;
use App\Models\Template\BTemplate;
use App\Models\Template\TemplateReplaceHtml;
use App\Models\Template\TemplateReplaceHtmlLog;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class ReplaceHtmlLog extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'replace_html_log';
/**
* The console command description.
*
* @var string
*/
protected $description = '替换html代码';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* @return bool
*/
public function handle()
{
while (true){
$replaceHtmlModel = new TemplateReplaceHtml();
$replaceHtmlList = $replaceHtmlModel->list(['status'=>$replaceHtmlModel::STATUS_START]);
foreach ($replaceHtmlList as $value){
echo '开始主任务id:'.$value['id'].PHP_EOL;
$replaceHtmlLogModel = new TemplateReplaceHtmlLog();
$replaceHtmlLogList = $replaceHtmlLogModel->list(['replace_id'=>$value['id'],'status'=>$replaceHtmlLogModel::STATUS]);
ProjectServer::useProject($value['project_id']);
foreach ($replaceHtmlLogList as $v){
echo date('Y-m-d H:i:s') . '子任务id :'.$v['id'] . PHP_EOL;
$this->replaceHtml($v);
$replaceHtmlLogModel->edit(['status'=>$replaceHtmlLogModel::STATUS_END],['id'=>$v['id']]);
}
DB::disconnect('custom_mysql');
//修改当前主任务状态为待执行
$replaceHtmlModel->edit(['status'=>$replaceHtmlModel::STATUS_END],['id'=>$value['id']]);
echo '结束'.PHP_EOL;
}
}
sleep(20);
return true;
}
/**
* @remark :替换html
* @name :replaceHtml
* @author :lyh
* @method :post
* @time :2024/5/10 17:56
*/
public function replaceHtml($info){
$source_id = $info['source'] == 1 ? 0 : $info['source_id'];
$bTemplateModel = new BTemplate();
$condition = ['source'=>$info['source'],'source_id'=>$source_id,
'template_id'=>$info['template_id'],'is_custom'=>$info['is_custom'],'is_list'=>$info['is_list']];
$old_html = $info['old_html'];
$html = $info['html'];
if($info['template_id'] == 0){
$bTemplateModel->formatQuery($condition)->update(['html' => DB::raw("REPLACE(html, '$old_html', '$html')")]);
}else{
if($info['source'] == 9 && $info['is_custom'] == 0){
(new BCustomTemplate())->formatQuery(['id'=>$source_id])
->update([
'html' => DB::raw("REPLACE(html, '" . addslashes($old_html) . "', '" . addslashes($html) . "')"),
'updated_at' => now(),
]);
}else{
$bTemplateModel->where($condition)
->update([
'main_html' => DB::raw("REPLACE(main_html, '" . addslashes($old_html) . "', '" . addslashes($html) . "')"),
'updated_at' => now(),
]);
}
}
return true;
}
}