作者 lyh

gx

... ... @@ -43,6 +43,7 @@ class KeywordVideoController extends BaseController
'gl_keyword_video_task.project_id AS project_id',
'gl_keyword_video_task.number AS number',
'gl_keyword_video_task.status AS status',
'gl_keyword_video_task.keywords AS keywords',
'gl_keyword_video_task.sort AS sort',
'gl_keyword_video_task.created_at AS created_at',
'gl_keyword_video_task.updated_at AS updated_at',
... ...
... ... @@ -96,12 +96,30 @@ class UpdateController extends BaseController
try {
if($this->param['old_collect'] == 1){
//现有数据需要重新采集页面
$collect_routes = '';
if(isset($this->param['collect_routes'])){
//填写了采集路由
$routes_arr = explode(',',$this->param['collect_routes']);
foreach ($routes_arr as &$route){
$route = "'".$route."'";
}
$collect_routes = implode(',',$routes_arr);
}
DB::connection('custom_mysql')->statement("DELETE FROM `gl_collect_source` WHERE `origin` LIKE '%.css%' OR `origin` LIKE '%.js%'");
if ($domain_info) {
//已上线项目
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0,`domain` = '" . $test_domain . "' WHERE `language` = ''");
if($collect_routes){
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0,`domain` = '" . $test_domain . "' WHERE `language` = '' AND `route` IN (".$collect_routes.")");
}else{
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0,`domain` = '" . $test_domain . "' WHERE `language` = ''");
}
} else {
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0 WHERE `language` = ''");
if($collect_routes){
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0 WHERE `language` = '' AND `route` IN (".$collect_routes.")");
}else{
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0 WHERE `language` = ''");
}
}
}
... ...
<?php
/**
* @remark :
* @name :ReplaceHtmlController.php
* @author :lyh
* @method :post
* @time :2024/5/8 10:02
*/
namespace App\Http\Controllers\Aside\Template;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Template\ReplaceHtmlLogic;
use App\Models\Template\TemplateReplaceHtml;
use App\Models\Template\TemplateReplaceHtmlLog;
class ReplaceHtmlController extends BaseController
{
/**
* @remark :替换同一种类型的html代码
* @name :replaceTemplateMainHtml
* @author :lyh
* @method :post
* @time :2024/5/7 14:39
*/
public function replaceTemplateMainHtml(ReplaceHtmlLogic $logic){
$this->request->validate([
'old_html'=>'required',
'html'=>'required',
'type'=>'required',
'is_list'=>'required',
'is_custom'=>'required',
],[
'old_html.required' => '需替换的html不能为空',
'html.required' => 'html不能为空',
'type.required' => '类型type不能为空',
'is_custom.required' => '类型is_custom不能为空',
'is_list.required' => '类型is_list不能为空',
]);
$logic->replaceHtml();
$this->response('success');
}
/**
* @remark :替换的记录
* @name :replaceTemplateLog
* @author :lyh
* @method :post
* @time :2024/5/8 10:28
*/
public function replaceTemplateLog(TemplateReplaceHtml $replaceModel){
$lists = $replaceModel->lists($this->map,$this->page,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @remark :还原
* @name :reductionHtml
* @author :lyh
* @method :post
* @time :2024/5/8 10:27
*/
public function reductionHtml(ReplaceHtmlLogic $logic){
$this->request->validate([
'id'=>'required',
],[
'id.required' => 'id不能为空',
]);
$logic->reductionHtml();
$this->response('success');
}
}
... ...
... ... @@ -298,11 +298,9 @@ class BlogController extends BaseController
$this->request->validate([
'id'=>'required',
'category_id'=>'required',
'status'=>'required'
],[
'id.required' => '产品ID不能为空',
'category_id.required' => '分类ID不能为空',
'status.required'=>'状态不能为空'
]);
$logic->batchSetCategory();
$this->response('success');
... ...
... ... @@ -281,7 +281,7 @@ class NewsController extends BaseController
/**
* @remark :批量设置产品分类及状态
* @remark :批量设置分类及状态
* @name :batchSetCategory
* @author :lyh
* @method :post
... ... @@ -291,11 +291,9 @@ class NewsController extends BaseController
$this->request->validate([
'id'=>'required',
'category_id'=>'required',
'status'=>'required'
],[
'id.required' => '产品ID不能为空',
'category_id.required' => '分类ID不能为空',
'status.required'=>'状态不能为空'
]);
$logic->batchSetCategory();
$this->response('success');
... ...
... ... @@ -165,14 +165,16 @@ class FileController
*/
public function getOnlyFilename($name,$project_id = 0){
$nameArr = explode('.',$name);
$enName = generateRoute(Translate::tran($nameArr[0], 'en'));
$suffix = array_pop($nameArr) ?? 'jpg';
$nameStr = implode('-', $nameArr);
$enName = generateRoute(Translate::tran($nameStr, 'en'));
$fileName = $enName;
$i=1;
while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
while($this->onlyName($enName.'.'.$suffix,$project_id)){
$enName = $fileName .'-'.$i;
$i++;
}
return $enName.'.'.$nameArr[1];
return $enName.'.'.$suffix;
}
/**
... ...
... ... @@ -224,15 +224,18 @@ class ImageController extends Controller
* @time :2024/4/26 16:10
*/
public function getOnlyFilename($name,$project_id = 0){
$nameArr = explode('.',$name);
$enName = generateRoute(Translate::tran($nameArr[0], 'en'));
$suffix = array_pop($nameArr) ?? 'jpg';
$nameStr = implode('-', $nameArr);
$enName = generateRoute(Translate::tran($nameStr, 'en'));
$fileName = $enName;
$i=1;
while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
while($this->onlyName($enName.'.'.$suffix,$project_id)){
$enName = $fileName .'-'.$i;
$i++;
}
return $enName.'.'.$nameArr[1];
return $enName.'.'.$suffix;
}
/**
... ...
<?php
/**
* @remark :
* @name :ReplaceHtmlLogic.php
* @author :lyh
* @method :post
* @time :2024/5/8 10:03
*/
namespace App\Http\Logic\Aside\Template;
use App\Http\Logic\aside\BaseLogic;
use App\Models\Template\BTemplate;
use App\Models\Template\TemplateReplaceHtml;
use App\Models\Template\TemplateReplaceHtmlLog;
use App\Services\ProjectServer;
use Illuminate\Support\Facades\DB;
class ReplaceHtmlLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new TemplateReplaceHtml();
$this->param = $this->requestAll;
}
/**
* @remark :替换可视化的html代码(按类型)
* @name :replaceHtml
* @author :lyh
* @method :post
* @time :2024/5/7 15:52
*/
public function replaceHtml(){
ProjectServer::useProject($this->param['project_id']);
$type = $this->getCustomizedType($this->param['type'], $this->param['is_list']);//获取定制界面类型
//查看当前页面是否定制,是否开启可视化
$page_array = (array)$this->user['is_visualization']->page_array;//获取所有定制界面
if (in_array($type, $page_array)) {//当前页面是定制界面
$this->param['template_id'] = 0;
}
$replaceId = $this->saveReplaceHtml($this->param);
//TODO::生成一条任务记录
//查询当前所有装修的
$condition = ['source'=>$this->param['type'],'is_custom'=>$this->param['is_custom'],'is_list'=>$this->param['is_list'],
'template_id'=>$this->param['template_id']];
$list = $this->model->list($condition);
foreach ($list as $v){
if($v['type'] == 0){
$main_html = str_replace($this->param['old_html'],$this->param['html'],$v['main_html']);
$this->model->edit(['main_html'=>$main_html],['id'=>$v['id']]);
}else{
$html = str_replace($this->param['old_html'],$this->param['html'],$v['html']);
$this->model->edit(['html'=>$html],['id'=>$v['id']]);
}
$this->saveReplaceHtmlLog($replaceId,$v['id']);
}
DB::disconnect('custom_mysql');
return $this->success();
}
/**
* @remark :生成一条记录
* @name :saveTemplateLog
* @author :lyh
* @method :post
* @time :2024/5/8 9:23
*/
public function saveReplaceHtml($data,$template_id){
$logData = [
'type'=>$data['type'],
'is_custom'=>$data['is_custom'],
'is_list'=>$data['is_list'],
'template_id'=>$template_id,
'old_html'=>$data['old_html'],
'html'=>$data['html'],
];
return $this->model->addReturnId($logData);
}
/**
* @remark :保存每条替换记录
* @name :saveReplaceHtmlLog
* @author :lyh
* @method :post
* @time :2024/5/8 9:37
*/
public function saveReplaceHtmlLog($replace_id,$replace_template_id){
$logData = [
'replace_id'=>$replace_id,
'replace_template_id'=>$replace_template_id,
'uid'=>$this->user['manager_id'],
];
$replaceHtmlModel = new TemplateReplaceHtmlLog();
return $replaceHtmlModel->add($logData);
}
/**
* @remark :还原所有记录
* @name :reductionHtml
* @author :lyh
* @method :post
* @time :2024/5/8 10:35
*/
public function reductionHtml(){
ProjectServer::useProject($this->param['project_id']);
//获取当前数据详情
$info = $this->model->read(['id'=>$this->param['id']]);
if($info === false){
$this->fail('当前数据不存在');
}
$replaceLogModel = new TemplateReplaceHtmlLog();
$logList = $replaceLogModel->list(['replace_id'=>$this->param['id']]);
$replaceArr = [];
foreach ($logList as $v){
$replaceArr[] = $v['replace_template_id'];
}
if(!empty($replaceArr)){
//查询可视化数据
$bTemplateModel = new BTemplate();
$templateList = $bTemplateModel->list(['id'=>['in',$replaceArr]]);
foreach ($templateList as $value){
if($v['type'] == 0){
$main_html = str_replace($info['html'],$info['old_html'],$value['main_html']);
$this->model->edit(['main_html'=>$main_html],['id'=>$v['id']]);
}else{
$html = str_replace($info['html'],$info['old_html'],$value['html']);
$this->model->edit(['html'=>$html],['id'=>$v['id']]);
}
}
}
DB::disconnect('custom_mysql');
return $this->success();
}
}
... ...
... ... @@ -22,6 +22,8 @@ use App\Models\Template\Setting;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateLog;
use App\Models\Template\Template;
use App\Models\Template\TemplateReplaceHtml;
use App\Models\Template\TemplateReplaceHtmlLog;
use App\Models\Template\TemplateTypeMain;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
... ...
... ... @@ -158,7 +158,9 @@ class UserLoginLogic
$info['aicc'] = $project['aicc'] ?? '';
$info['hagro'] = $project['hagro'] ?? '';
$info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
$info['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');
$info['is_customized'] = $project['is_customized'];
$info['is_upload_manage'] = $project['is_upload_manage'];
$info['is_upgrade'] = $project['is_upgrade'];
... ... @@ -258,8 +260,9 @@ class UserLoginLogic
$info['hagro'] = $project['hagro'] ?? '';
$info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
$info['is_domain'] = empty($project['deploy_optimize']['domain']) ? 0 : 1;
$info['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');
$info['is_customized'] = $project['is_customized'];
$info['is_upgrade'] = $project['is_upgrade'];
$info['is_upload_manage'] = $project['is_upload_manage'];
... ...
... ... @@ -52,7 +52,7 @@ class NavRequest extends FormRequest
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'url.required' => '链接不能为空',
'remark.max' => '描述最长为500字符',
'remark.max' => '描述超过最长500字符',
];
}
}
... ...
<?php
/**
* @remark :
* @name :TemplateReplaceHtml.php
* @author :lyh
* @method :post
* @time :2024/5/8 9:05
*/
namespace App\Models\Template;
use App\Models\Base;
class TemplateReplaceHtml extends Base
{
protected $table = 'gl_replace_html';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
<?php
/**
* @remark :
* @name :TemplateReplaceHtmlLog.php
* @author :lyh
* @method :post
* @time :2024/5/8 9:34
*/
namespace App\Models\Template;
use App\Models\Base;
class TemplateReplaceHtmlLog extends Base
{
protected $table = 'gl_replace_html_log';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -376,7 +376,12 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/del', [Aside\Template\ATemplateTypeController::class, 'del'])->name('admin.ATemplateType_del');
});
});
//可视化数据替换
Route::prefix('replace')->group(function () {
Route::any('/replaceTemplateMainHtml', [Aside\Template\ReplaceHtmlController::class, 'replaceTemplateMainHtml'])->name('admin.replace_replaceTemplateMainHtml');
Route::any('/replaceTemplateLog', [Aside\Template\ReplaceHtmlController::class, 'replaceTemplateLog'])->name('admin.replace_replaceTemplateLog');
Route::any('/reductionHtml', [Aside\Template\ReplaceHtmlController::class, 'reductionHtml'])->name('admin.replace_reductionHtml');
});
Route::any('/generate_aicc_token', [Aside\Com\IndexController::class, 'generateAiCCToken'])->name('admin.generate_aicc_token');
Route::any('/getAutoToken', [Aside\Com\IndexController::class, 'getAutoToken'])->name('admin.getAutoToken');
... ...
... ... @@ -357,7 +357,6 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/savePublicTemplate', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'savePublicTemplate'])->name('template_savePublicTemplate');
Route::any('/getDetailInfo', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getDetailInfo'])->name('template_getDetailInfo');
Route::any('/saveDetail', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'saveDetail'])->name('template_saveDetail');
Route::any('/getSource', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getSource'])->name('template_getSource');
// 模板
Route::prefix('module')->group(function () {
//获取所有左侧模版
... ...