作者 李宇航

合并分支 'master-lyh-edit' 到 'master'

Master lyh edit



查看合并请求 !542
... ... @@ -9,6 +9,17 @@
namespace App\Console\Commands\ReplaceHtml;
use App\Models\Blog\Blog;
use App\Models\Blog\BlogCategory;
use App\Models\CustomModule\CustomModule;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Models\Product\Category;
use App\Models\Product\Product;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BCustomTemplate;
use App\Models\Template\BTemplate;
use App\Models\Template\TemplateReplaceHtmlLog;
use App\Services\ProjectServer;
... ... @@ -52,12 +63,16 @@ class ReplaceHtml extends Command
$replaceHtmlModel = new TemplateReplaceHtml();
$replaceHtmlList = $replaceHtmlModel->list(['status'=>$replaceHtmlModel::STATUS]);
if(!empty($replaceHtmlList)){
foreach ($replaceHtmlList as $k => $v){
foreach ($replaceHtmlList as $v){
ProjectServer::useProject($v['project_id']);
echo '开始,任务id:'.$v['id'].PHP_EOL;
$this->createReplaceHtmlLog($v);
if($v['source'] == 9){//单页面
$count = $this->createReplacePageHtmlLog($v);
}else{
$count = $this->createReplaceHtmlLog($v);
}
//修改当前主任务状态为待执行
$replaceHtmlModel->edit(['status'=>$replaceHtmlModel::STATUS_START],['id'=>$v['id']]);
$replaceHtmlModel->edit(['status'=>$replaceHtmlModel::STATUS_START,'total_num'=>$count],['id'=>$v['id']]);
echo '结束'.PHP_EOL;
DB::disconnect('custom_mysql');
}
... ... @@ -68,31 +83,28 @@ class ReplaceHtml extends Command
}
/**
* @remark :生成子任务
* @name :createReplaceHtmlLog
* @remark :生成单页面记录
* @name :createReplacePageHtmlLog
* @author :lyh
* @method :post
* @time :2024/5/10 17:26
* @time :2024/5/13 11:40
*/
public function createReplaceHtmlLog($info){
//获取当前页面所有数据
public function createReplacePageHtmlLog($info){
$saveData = [];
$bTemplateModel = new BTemplate();
$condition = ['source'=>$info['source'],'template_id'=>$info['template_id'],'is_custom'=>$info['is_custom'],'is_list'=>$info['is_list']];
$bTemplateList = $bTemplateModel->list($condition,'id',['id','source_id']);
foreach ($bTemplateList as $v){
$customTemplateModel = new BCustomTemplate();
$list = $customTemplateModel->list(['status'=>BCustomTemplate::STATUS_ACTIVE]);
foreach ($list as $v){
$saveData[] = [
'replace_id'=>$info['id'],
'project_id'=>$info['project_id'],
'status'=>0,
'old_html'=>$info['old_html'],
'html'=>$info['html'],
'source'=>$info['source'],
'source_id'=>$info['source'] == 1 ? 0 : $v['source_id'],
'is_custom'=>$info['is_custom'],
'is_list'=>$info['is_list'],
'source'=>9,
'source_id'=>$v['id'],
'is_rollback'=>$info['is_rollback'],
'template_id'=>$info['template_id'],
'name'=>$v['name'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
... ... @@ -101,8 +113,214 @@ class ReplaceHtml extends Command
$templateHtmlLogModel = new TemplateReplaceHtmlLog();
$templateHtmlLogModel->insert($saveData);
}
return true;
return count($saveData);
}
/**
* @remark :生成子任务
* @name :createReplaceHtmlLog
* @author :lyh
* @method :post
* @time :2024/5/10 17:26
*/
public function createReplaceHtmlLog($info){
$bTemplateModel = new BTemplate();
$condition = ['is_custom'=>$info['is_custom'], 'is_list'=>$info['is_list'], 'template_id'=>$info['template_id']];
if($info['source'] != 0){
$condition['source'] = $info['source'];
}
if($info['template_id'] != 0){
$condition['main_html'] = ['like','%'.trim($info['old_html']).'%'];
}else{
$condition['html'] = ['like','%'.trim($info['old_html']).'%'];
}
$bTemplateList = $bTemplateModel->list($condition);
$saveData = [];
foreach ($bTemplateList as $v){
$source_id = $v['source'] == 1 ? 0 : $v['source_id'];
$name = $this->getSourceName($v['source'],$source_id,$v['is_list'],$v['is_custom']);
$saveData[] = $this->saveData($info,$v,$source_id,$name);
}
if(!empty($saveData)){
$templateHtmlLogModel = new TemplateReplaceHtmlLog();
$templateHtmlLogModel->insert($saveData);
}
return count($saveData);
}
/**
* @remark :组装数据
* @name :saveData
* @author :lyh
* @method :post
* @time :2024/5/13 11:29
*/
public function saveData($info,$v,$source_id,$name){
return [
'replace_id'=>$info['id'],
'project_id'=>$info['project_id'],
'status'=>0,
'old_html'=>$info['old_html'],
'html'=>$info['html'],
'source'=>$v['source'],
'source_id'=>$source_id,
'is_custom'=>$v['is_custom'],
'is_list'=>$v['is_list'],
'is_rollback'=>$info['is_rollback'],
'template_id'=>$info['template_id'],
'source_name'=>$name,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
}
/**
* @remark :生成子任务获取对应数据id名称
* @name :getSourceName
* @author :lyh
* @method :post
* @time :2024/5/13 10:47
*/
public function getSourceName($source,$source_id,$is_list,$is_custom){
if($is_custom == 1){//扩展模块
return $this->getCustomName($source,$source_id,$is_list);
}
if($source == BTemplate::SOURCE_HOME){
return '';
}elseif ($source == BTemplate::SOURCE_PRODUCT){
return $this->getProductName($source_id,$is_list);
}elseif ($source == BTemplate::SOURCE_BLOG){
return $this->getBlogName($source_id,$is_list);
}elseif ($source == BTemplate::SOURCE_NEWS){
return $this->getNewsName($source_id,$is_list);
}else {//单页面管理
return $this->getPageName($source_id);
}
return false;
}
/**
* @remark :获取单页面名称
* @name :getPageName
* @author :lyh
* @method :post
* @time :2024/5/13 11:10
*/
public function getPageName($source_id){
$customTemplateModel = new BCustomTemplate();
$info = $customTemplateModel->read(['id'=>$source_id]);
if($info === false){
return false;
}
return $info['name'];
}
/**
* @remark :获取新闻名称
* @name :getNewsName
* @author :lyh
* @method :post
* @time :2024/5/13 11:07
*/
public function getNewsName($source_id,$is_list){
if($is_list == BTemplate::IS_LIST){
$cateModel = new NewsCategory();
$cateInfo = $cateModel->read(['id'=>$source_id]);
if($cateInfo === false){
return false;
}
$name = $cateInfo['name'];
}else{
$newsModel = new News();
$newsInfo = $newsModel->read(['id'=>$source_id]);
if($newsInfo === false){
return false;
}
$name = $newsInfo['name'];
}
return $name;
}
/**
* @remark :获取blog名称
* @name :getBlogName
* @author :lyh
* @method :post
* @time :2024/5/13 11:05
*/
public function getBlogName($source_id,$is_list){
if($is_list == BTemplate::IS_LIST){
$cateModel = new BlogCategory();
$cateInfo = $cateModel->read(['id'=>$source_id]);
if($cateInfo === false){
return false;
}
$name = $cateInfo['name'];
}else{
$blogModel = new Blog();
$productInfo = $blogModel->read(['id'=>$source_id]);
if($productInfo === false){
return false;
}
$name = $productInfo['name'];
}
return $name;
}
/**
* @remark :获取产品名称
* @name :getProductName
* @author :lyh
* @method :post
* @time :2024/5/13 11:00
*/
public function getProductName($source_id,$is_list){
if($is_list == BTemplate::IS_LIST){
$cateModel = new Category();
$cateInfo = $cateModel->read(['id'=>$source_id]);
if($cateInfo === false){
return false;
}
$name = $cateInfo['title'];
}else{
$productModel = new Product();
$productInfo = $productModel->read(['id'=>$source_id]);
if($productInfo === false){
return false;
}
$name = $productInfo['title'];
}
return $name;
}
/**
* @remark :获取扩展模块名称
* @name :getCustomName
* @author :lyh
* @method :post
* @time :2024/5/13 10:55
*/
public function getCustomName($source,$source_id,$is_list){
$customModuleModel = new CustomModule();
$moduleInfo = $customModuleModel->read(['id'=>$source]);
if($moduleInfo === false){
return false;
}
if($is_list == BTemplate::IS_LIST){
$categoryModel = new CustomModuleCategory();
$cateInfo = $categoryModel->read(['id'=>$source_id],['id','name']);
if($cateInfo === false){
return false;
}
$name = $cateInfo['name'];
}else{
$contentModel = new CustomModuleContent();
$contentInfo = $contentModel->read(['id'=>$source_id],['id','name']);
if($contentInfo === false){
return false;
}
$name = $contentInfo['name'];
}
return $name;
}
}
... ...
... ... @@ -640,6 +640,21 @@ function characterTruncation($string,$pattern){
return '';
}
}
/**
* @remark :字符串截取
* @name :characterTruncationStr
* @author :lyh
* @method :post
* @time :2024/5/14 16:24
*/
function characterTruncationStr($string,$startStr,$endStr){
$start = strpos($string, $startStr);
$end = strpos($string, $endStr) + strlen($endStr);
return substr($string, $start, $end - $start);
}
if (!function_exists('getAutoLoginCode')) {
/**
* @remark :自动登录加密
... ...
<?php
/**
* @remark :
* @name :TutorialController.php
* @author :lyh
* @method :post
* @time :2024/5/13 17:36
*/
namespace App\Http\Controllers\Aside\Com;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Tutorial\TutorialLogic;
use App\Models\Tutorial\Tutorial;
/**
* @remark :oa教程
* @name :TutorialController
* @author :lyh
* @method :post
* @time :2024/5/13 17:36
*/
class TutorialController extends BaseController
{
/**
* @remark :oa列表
* @name :lists
* @author :lyh
* @method :post
* @time :2024/5/13 17:36
*/
public function lists(Tutorial $tutorial){
$this->map['status'] = 0;
$data = $tutorial->lists($this->map,$this->page,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :保存数据
* @name :save
* @author :lyh
* @method :post
* @time :2024/5/13 17:39
*/
public function save(TutorialLogic $logic){
$this->request->validate([
'name'=>'required',
'url'=>'required',
], [
'name.required' => '标识name不为空',
'url.required' => '文件链接url不为空',
]);
$data = $logic->saveTutorial();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :排序
* @name :sort
* @author :lyh
* @method :post
* @time :2024/5/14 9:39
*/
public function sort(TutorialLogic $logic){
$this->request->validate([
'id'=>'required',
'sort'=>'required',
], [
'id.required' => '标识id不为空',
'sort.required' => '排序sort不为空',
]);
$data = $logic->sortTutorial();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :修改状态
* @name :status
* @author :lyh
* @method :post
* @time :2024/5/13 17:40
*/
public function status(TutorialLogic $logic){
$this->request->validate([
'id'=>'required',
'status'=>'required',
], [
'id.required' => '标识id不为空',
'status.required' => '标识status不为空',
]);
$data = $logic->statusTutorial();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :删除数据
* @name :del
* @author :lyh
* @method :post
* @time :2024/5/13 17:40
*/
public function del(TutorialLogic $logic){
$this->request->validate([
'id'=>'required',
], [
'id.required' => '标识id不为空',
]);
$data = $logic->delTutorial();
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -85,7 +85,7 @@ class ReplaceHtmlController extends BaseController
* @method :post
* @time :2024/5/11 11:09
*/
public function replaceTemplateSonLog(TemplateReplaceHtmlLog $replaceHtmlLog){
public function replaceTemplateSonLog(TemplateReplaceHtmlLog $replaceHtmlLog,ReplaceHtmlLogic $logic){
$this->request->validate([
'replace_id'=>'required',
],[
... ... @@ -96,7 +96,7 @@ class ReplaceHtmlController extends BaseController
}
/**
* @remark :还原
* @remark :主任务还原
* @name :reductionHtml
* @author :lyh
* @method :post
... ...
<?php
/**
* @remark :
* @name :TutorialController.php
* @author :lyh
* @method :post
* @time :2024/5/14 9:59
*/
namespace App\Http\Controllers\Bside\BCom;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\Tutorial\Tutorial;
/**
* @remark :oa教程
* @name :TutorialController
* @author :lyh
* @method :post
* @time :2024/5/14 10:00
*/
class TutorialController extends BaseController
{
/**
* @remark :oa列表
* @name :lists
* @author :lyh
* @method :post
* @time :2024/5/14 10:00
*/
public function lists(Tutorial $tutorial){
$this->map['status'] = 0;
$lists = $tutorial->lists($this->map,$this->page,$this->row,$this->order);
if(!empty($lists) && !empty($lists['list'])){
foreach ($lists['list'] as $k => $v){
$v['download_url'] = url('b/file_manager_downLoad?path='.$v['path']);
$lists['list'][$k] = $v;
}
}
$this->response('success',Code::SUCCESS,$lists);
}
}
... ...
... ... @@ -126,7 +126,6 @@ class ReplaceHtmlLogic extends BaseLogic
$data = $this->sourceTypeInfo($this->param['project_id']);
$typeInfo = $data[$this->param['name']];
ProjectServer::useProject($this->param['project_id']);
$bTemplateModel = new BTemplate();
if($typeInfo['source'] == 0){//所有页面
$bSettingModel = new Setting();
$templateInfo = $bSettingModel->read(['project_id'=>$this->param['project_id']]);
... ... @@ -134,16 +133,11 @@ class ReplaceHtmlLogic extends BaseLogic
$this->fail('请先选择模版');
}
$template_id = $templateInfo['template_id'];
$condition = ['template_id'=>$template_id,'main_html'=>['like','%'.$this->param['old_html'].'%']];
$total_num = $bTemplateModel->formatQuery($condition)->count();
}else{
$template_id = $this->getTemplateId($typeInfo);
$condition = ['source'=>$typeInfo['source'],'is_custom'=>$typeInfo['is_custom'], 'is_list'=>$typeInfo['is_list'],
'template_id'=>$template_id,'main_html'=>['like','%'.$this->param['old_html'].'%']];
$total_num = $bTemplateModel->formatQuery($condition)->count();
}
DB::disconnect('custom_mysql');
$replaceId = $this->saveReplaceHtml($this->param,$typeInfo,$template_id,$total_num ?? 0);
$replaceId = $this->saveReplaceHtml($this->param,$typeInfo,$template_id);
return $this->success(['id'=>$replaceId]);
}
... ... @@ -154,7 +148,7 @@ class ReplaceHtmlLogic extends BaseLogic
* @method :post
* @time :2024/5/8 9:23
*/
public function saveReplaceHtml($param,$typeInfo,$template_id,$total_num){
public function saveReplaceHtml($param,$typeInfo,$template_id){
$logData = [
'source'=>$typeInfo['source'],
'is_custom'=>$typeInfo['is_custom'],
... ... @@ -164,7 +158,7 @@ class ReplaceHtmlLogic extends BaseLogic
'old_html'=>$param['old_html'],
'html'=>$param['html'],
'project_id'=>$param['project_id'],
'total_num'=>$total_num,
'total_num'=>0,
'operator_id'=>$this->manager['id']
];
return $this->model->addReturnId($logData);
... ... @@ -204,19 +198,19 @@ class ReplaceHtmlLogic extends BaseLogic
* @method :post
* @time :2024/5/10 10:01
*/
public function saveResultReplaceHtml($info){
public function saveResultReplaceHtml($info,$status = 0,$num = 0){
$logData = [
'source'=>$info['source'],
'is_custom'=>$info['is_custom'],
'is_list'=>$info['is_list'],
'template_id'=>$info['template_id'],
'status'=>$this->model::STATUS,
'status'=>$status != 0 ? $status : $this->model::STATUS,
'old_html'=>$info['html'],
'html'=>$info['old_html'],
'project_id'=>$info['project_id'],
'is_rollback'=>1,
'rollback_id'=>$info['id'],
'total_num'=>$info['total_num'],
'total_num'=>($num != 0) ? $num : $info['total_num'],
'operator_id'=>$this->manager['id']
];
return $this->model->addReturnId($logData);
... ... @@ -268,23 +262,48 @@ class ReplaceHtmlLogic extends BaseLogic
* @time :2024/5/11 11:31
*/
public function rollbackIdHtml(){
$replaceHtmlLogModel = new TemplateReplaceHtmlLog();
$info = $replaceHtmlLogModel->read(['id'=>$this->param['id']]);
ProjectServer::useProject($info['project_id']);
$bTemplateModel = new BTemplate();
$condition = ['source'=>$info['source'],'source_id'=>$info['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{
$bTemplateModel->formatQuery($condition)->update(['main_html' => DB::raw("REPLACE(main_html, '$old_html', '$html')")]);
if(is_array($this->param['id']) && isset($this->param['id'])){
$save_id = 0;
foreach ($this->param['id'] as $k => $id){
$replaceHtmlLogModel = new TemplateReplaceHtmlLog();
$logInfo = $replaceHtmlLogModel->read(['id'=>$id]);
//查询当前主任务
$replaceHtmlModel = new TemplateReplaceHtml();
$info = $replaceHtmlModel->read(['id'=>$logInfo['replace_id']]);
if($k == 0){
//生成一条已完成的主记录
$save_id = $this->saveResultReplaceHtml($info,TemplateReplaceHtml::STATUS_END,count($this->param['id']));
}
//生成一条子记录
$this->saveResultSonInfo($save_id,$logInfo);
}
}
//修改当前数据为还原数据
$replaceHtmlLogModel->edit(['is_rollback'=>1],['id'=>$this->param['id']]);
DB::disconnect('custom_mysql');
return $this->success();
}
/**
* @remark :生成一条还原子记录
* @name :saveResultSonInfo
* @author :lyh
* @method :post
* @time :2024/5/13 15:14
*/
public function saveResultSonInfo($save_id,$logInfo){
$saveData = [
'replace_id'=>$save_id,
'project_id'=>$logInfo['project_id'],
'status'=>TemplateReplaceHtmlLog::STATUS,
'old_html'=>$logInfo['html'],
'html'=>$logInfo['old_html'],
'source'=>$logInfo['source'],
'source_id'=>$logInfo['source_id'],
'is_custom'=>$logInfo['is_custom'],
'is_list'=>$logInfo['is_list'],
'is_rollback'=>1,
'template_id'=>$logInfo['template_id'],
'source_name'=>$logInfo['source_name']
];
$replaceHtmlLogModel = new TemplateReplaceHtmlLog();
return $replaceHtmlLogModel->addReturnId($saveData);
}
}
... ...
<?php
/**
* @remark :
* @name :TutorialLogic.php
* @author :lyh
* @method :post
* @time :2024/5/13 17:38
*/
namespace App\Http\Logic\Aside\Tutorial;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Tutorial\Tutorial;
class TutorialLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new Tutorial();
$this->param = $this->requestAll;
}
/**
* @remark :保存数据
* @name :saveTutorial
* @author :lyh
* @method :post
* @time :2024/5/13 17:39
*/
public function saveTutorial(){
if(isset($this->param['id']) && !empty($this->param['id'])){
$id = $this->param['id'];
$this->model->edit($this->param,['id'=>$id]);
}else{
$this->model->addReturnId($this->param);
}
return $this->success(['id'=>$id]);
}
/**
* @remark :修改状态
* @name :statusTutorial
* @author :lyh
* @method :post
* @time :2024/5/13 17:42
*/
public function statusTutorial(){
$rs = $this->model->edit(['status'=>$this->param['status']],['id'=>$this->param['id']]);
return $this->success($rs);
}
/**
* @remark :修改状排序
* @name :statusTutorial
* @author :lyh
* @method :post
* @time :2024/5/13 17:42
*/
public function sortTutorial(){
$rs = $this->model->edit(['sort'=>$this->param['sort']],['id'=>$this->param['id']]);
return $this->success($rs);
}
/**
* @remark :删除数据
* @name :delTutorial
* @author :lyh
* @method :post
* @time :2024/5/13 17:41
*/
public function delTutorial(){
$rs = $this->model->del(['id'=>$this->param['id']]);
return $this->success($rs);
}
}
... ...
... ... @@ -598,7 +598,7 @@ class BTemplateLogic extends BaseLogic
*/
public function handleTemplateHtml($html){
//字符串截取
$param['main_html'] = characterTruncation($html,'/<main\b[^>]*>(.*?)<\/main>/s');
$param['main_html'] = characterTruncationStr($html,"<main","</main>");
$param['main_css'] = characterTruncation($html,'/<style id="globalsojs-styles">(.*?)<\/style>/s');
return $this->success($param);
}
... ... @@ -646,6 +646,7 @@ class BTemplateLogic extends BaseLogic
if($is_custom != BTemplate::IS_NO_CUSTOM){
return true;
}
$main_html = characterTruncationStr($html,"<main","</main>");
$data = [
'template_id'=>$template_id,
'project_id'=>$this->user['project_id'],
... ... @@ -656,7 +657,7 @@ class BTemplateLogic extends BaseLogic
'is_list'=>$is_list,
'source'=>$source,
'source_id'=>$source_id,
'main_html' => characterTruncation($html,'/<main\b[^>]*>(.*?)<\/main>/s'),
'main_html' => $main_html,
'main_css' => characterTruncation($html,'/<style id="globalsojs-styles">(.*?)<\/style>/s'),
'head_html' => characterTruncation($html,'/<header\b[^>]*>(.*?)<\/header>/s'),
'footer_html' => characterTruncation($html,'/<footer\b[^>]*>(.*?)<\/footer>/s'),
... ... @@ -747,7 +748,7 @@ class BTemplateLogic extends BaseLogic
public function handleSaveParam($param){
//字符串截取
$param['head_html'] = characterTruncation($param['html'],'/<header\b[^>]*>(.*?)<\/header>/s');
$param['main_html'] = characterTruncation($param['html'],'/<main\b[^>]*>(.*?)<\/main>/s');
$param['main_html'] = characterTruncationStr($param['html'],"<main","</main>");
$param['footer_html'] = characterTruncation($param['html'],'/<footer\b[^>]*>(.*?)<\/footer>/s');
$param['head_css'] = characterTruncation($param['html'],'/<style id="globalsojs-header">(.*?)<\/style>/s');
$param['main_css'] = characterTruncation($param['html'],'/<style id="globalsojs-styles">(.*?)<\/style>/s');
... ...
<?php
/**
* @remark :
* @name :Tutorial.php
* @author :lyh
* @method :post
* @time :2024/5/13 17:34
*/
namespace App\Models\Tutorial;
use App\Models\Base;
/**
* @remark :oa教程
* @name :Tutorial
* @author :lyh
* @method :post
* @time :2024/5/13 17:34
*/
class Tutorial extends Base
{
protected $table = 'gl_tutorial';
}
... ...
... ... @@ -386,13 +386,22 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/pageType', [Aside\Template\ReplaceHtmlController::class, 'pageType'])->name('admin.replace_pageType');
});
//可视化数据替换
//v6更新日志
Route::prefix('v6_update')->group(function () {
Route::any('/', [Aside\Com\V6UpdateLogController::class, 'lists'])->name('admin.v6_update');
Route::any('/save', [Aside\Com\V6UpdateLogController::class, 'save'])->name('admin.v6_update_save');
Route::any('/del', [Aside\Com\V6UpdateLogController::class, 'del'])->name('admin.v6_update_del');
});
//oa教程
Route::prefix('tutorial')->group(function () {
Route::any('/', [Aside\Com\TutorialController::class, 'lists'])->name('admin.tutorial_lists');
Route::any('/save', [Aside\Com\TutorialController::class, 'save'])->name('admin.tutorial_save');
Route::any('/sort', [Aside\Com\TutorialController::class, 'sort'])->name('admin.tutorial_sort');
Route::any('/status', [Aside\Com\TutorialController::class, 'status'])->name('admin.tutorial_status');
Route::any('/del', [Aside\Com\TutorialController::class, 'del'])->name('admin.tutorial_del');
});
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');
});
... ...
... ... @@ -530,6 +530,10 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/month', [\App\Http\Controllers\Bside\BCom\MonthReportController::class, 'getMonth'])->name('month_report_getMonth');
Route::any('/read', [\App\Http\Controllers\Bside\BCom\MonthReportController::class, 'monthReportInfo'])->name('month_report_read');
});
//oa教程
Route::prefix('tutorial')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\BCom\TutorialController::class, 'lists'])->name('tutorial_lists');
});
});
//无需登录验证的路由组
Route::group([], function () {
... ...