作者 赵彬吉
... ... @@ -39,6 +39,7 @@ class HtmlCollect extends Command
public function handle()
{
ini_set('memory_limit', '512M');
while (true) {
$this->start_collect();
}
... ... @@ -294,6 +295,7 @@ class HtmlCollect extends Command
(empty($scheme) || $scheme == 'https' || $scheme == 'http')
&& (empty($host) || $host == $web_url_domain || $host == $home_url)
&& $path
&& (substr($path,0,1) == '/')
&& (strpos($path, '.') !== false)
&& (!in_array(end($path_arr), ['html', 'php', 'com', 'xml']))
) {
... ... @@ -350,11 +352,11 @@ class HtmlCollect extends Command
if ($js_css_source) {
foreach ($js_css_source as $vjs) {
$vjs_down = str_replace('"', '', $vjs);
if(strpos($vjs_down,'data:') !== false){
if (strpos($vjs_down, 'data:') !== false) {
//过滤二进制文件
continue;
}
if(strlen($vjs_down) > 255){
if (strlen($vjs_down) > 255) {
//过滤太长文件
continue;
}
... ... @@ -365,7 +367,7 @@ class HtmlCollect extends Command
$cos = config('filesystems.disks.cos');
$cosCdn = $cos['cdn'];
if ($vjs_down_host == $cosCdn) {
if ($vjs_down_host && $vjs_down_host == $cosCdn) {
//过滤已经下载的
continue;
}
... ...
... ... @@ -39,6 +39,7 @@ class HtmlLanguageCollect extends Command
public function handle()
{
ini_set('memory_limit', '512M');
while (true) {
$this->start_collect();
}
... ... @@ -294,6 +295,7 @@ class HtmlLanguageCollect extends Command
(empty($scheme) || $scheme == 'https' || $scheme == 'http')
&& (empty($host) || $host == $web_url_domain || $host == $home_url)
&& $path
&& (substr($path,0,1) == '/')
&& (strpos($path, '.') !== false)
&& (!in_array(end($path_arr), ['html', 'php', 'com', 'xml']))
) {
... ... @@ -350,11 +352,11 @@ class HtmlLanguageCollect extends Command
if ($js_css_source) {
foreach ($js_css_source as $vjs) {
$vjs_down = str_replace('"', '', $vjs);
if(strpos($vjs_down,'data:') !== false){
if (strpos($vjs_down, 'data:') !== false) {
//过滤二进制文件
continue;
}
if(strlen($vjs_down) > 255){
if (strlen($vjs_down) > 255) {
//过滤太长文件
continue;
}
... ... @@ -365,7 +367,7 @@ class HtmlLanguageCollect extends Command
$cos = config('filesystems.disks.cos');
$cosCdn = $cos['cdn'];
if ($vjs_down_host == $cosCdn) {
if ($vjs_down_host && $vjs_down_host == $cosCdn) {
//过滤已经下载的
continue;
}
... ...
... ... @@ -49,6 +49,7 @@ class ProjectUpdate extends Command
public function handle()
{
ini_set('memory_limit', '512M');
while (true) {
$this->start_update();
}
... ...
... ... @@ -54,157 +54,28 @@ class UpdateRoute extends Command
*/
public function handle(){
$projectModel = new Project();
$lists = $projectModel->list(['is_upgrade'=>0,'id'=>['>',167],'type'=>['!=',0]]);
$lists = $projectModel->list(['is_upgrade'=>0,'type'=>['!=',0]]);
foreach ($lists as $k => $v){
echo date('Y-m-d H:i:s') . ' start: 项目id为' . $v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
// $this->setProductRoute($v['id']);
$this->setProductKeywordRoute($v['id']);
// $this->setBlogRoute($v['id']);
// $this->setNewsRoute($v['id']);
// $this->setBlogCateRoute($v['id']);
// $this->setNewsCateRoute($v['id']);
$this->getProductKeyword($v['id']);
DB::disconnect('custom_mysql');
}
echo date('Y-m-d H:i:s') . ' end: 项目id为' . $v['id'] . PHP_EOL;
}
/**
* @remark :设置路由
* @name :setRoute
* @remark :产品关键字
* @name :getProductKeyword
* @author :lyh
* @method :post
* @time :2023/11/20 15:30
* @time :2023/12/8 11:13
*/
public function setProductRoute($project_id){
$productModel = new Product();
$productList = $productModel->list(['status'=>['!=',2]],'id',['id','route']);
foreach ($productList as $v){
$route = preg_replace('/-2-1-product.*/', '', $v['route']);
$route = preg_replace('/-1-1-product.*/', '', $route);
$route = preg_replace('/-2-product.*/', '', $route);
$route = preg_replace('/-1-product.*/', '', $route);
$route = preg_replace('/-product.*/', '', $route);
$i = 0;
$routes = $this->productRoute($route,$v['id'],$i);
$route = RouteMap::setRoute($routes, RouteMap::SOURCE_PRODUCT, $v['id'], $project_id);
echo date('Y-m-d H:i:s') . ' 路由表返回的route:' . $route . PHP_EOL;
$productModel->edit(['route'=>$route],['id'=>$v['id']]);
}
return true;
}
/**
* @remark :产品新增单独处理路由
* @name :setProductRoute
* @author :lyh
* @method :post
* @time :2023/11/21 18:48
*/
public function productRoute($route,$id,$i){
echo date('Y-m-d H:i:s') . ' 打印$i:' . $i . PHP_EOL;
if($i == 0){
$routes = $route.'-product';
}else{
$routes = $route.'-'.$i.'-product';
}
$routeMapModel = new RouteMap();
$routeInfo = $routeMapModel->read(['route'=>$routes,'source'=>'product','source_id'=>['!=',$id]]);
if($routeInfo == false){
echo date('Y-m-d H:i:s') . ' route:' . $routes . PHP_EOL;
return $routes;
}else{
echo date('Y-m-d H:i:s') . ' 数据:' . $routeInfo['id'] . PHP_EOL;
$i = $i + 1;
return $this->productRoute($route,$id,$i);
}
}
/**
* @remark :设置路由
* @name :setRoute
* @author :lyh
* @method :post
* @time :2023/11/20 15:30
*/
public function setNewsRoute($project_id){
$newsModel = new News();
$newsList = $newsModel->list(['status'=>['!=',2]],'id',['id','url']);
foreach ($newsList as $v){
RouteMap::setRoute($v['url'], RouteMap::SOURCE_NEWS, $v['id'], $project_id);
}
return true;
}
/**
* @remark :设置路由
* @name :setRoute
* @author :lyh
* @method :post
* @time :2023/11/20 15:30
*/
public function setNewsCateRoute($project_id){
$newsCateModel = new NewsCategory();
$newsList = $newsCateModel->list([],'id',['id','alias']);
foreach ($newsList as $v){
RouteMap::setRoute($v['alias'], RouteMap::SOURCE_NEWS_CATE, $v['id'], $project_id);
}
return true;
}
/**
* @remark :设置路由
* @name :setRoute
* @author :lyh
* @method :post
* @time :2023/11/20 15:30
*/
public function setBlogRoute($project_id){
$blogModel = new Blog();
$blogList = $blogModel->list(['status'=>['!=',2]],'id',['id','url']);
foreach ($blogList as $v){
RouteMap::setRoute($v['url'], RouteMap::SOURCE_BLOG, $v['id'], $project_id);
}
return true;
}
/**
* @remark :设置路由
* @name :setRoute
* @author :lyh
* @method :post
* @time :2023/11/20 15:30
*/
public function setBlogCateRoute($project_id){
$blogCateModel = new BlogCategory();
$blogList = $blogCateModel->list([],'id',['id','alias']);
foreach ($blogList as $v){
RouteMap::setRoute($v['alias'], RouteMap::SOURCE_BLOG_CATE, $v['id'], $project_id);
}
return true;
}
/**
* @remark :设置路由
* @name :setRoute
* @author :lyh
* @method :post
* @time :2023/11/20 15:30
*/
public function setProductKeywordRoute($project_id){
public function getProductKeyword($id){
$keywordModel = new Keyword();
$keywordList = $keywordModel->list([],'id',['id','route']);
if(!empty($keywordList)){
foreach ($keywordList as $v){
// if(!ends_with($v['route'],'-tag')){
// $route = $v['route'].'-tag';
// $keywordModel->edit(['route'=>$route],['id'=>$v['id']]);
// }
$routeMapModel = new RouteMap();
$routeMapModel->edit(['route'=>$v['route']],['source_id'=>$v['id'],'source'=>RouteMap::SOURCE_PRODUCT_KEYWORD]);
RouteMap::setRoute($v['route'], RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $project_id);
}
$lists = $keywordModel->list(['route'=>['like','%-1-2-%']]);
if(!empty($lists)){
echo date('Y-m-d H:i:s') . ' 错误id:' . $id . PHP_EOL;
}
return true;
}
}
... ...
... ... @@ -646,3 +646,39 @@ function redis_add($key,$val,$ttl=3600){
"return redis.call('exists',KEYS[1])<1 and redis.call('setex',KEYS[1],ARGV[2],ARGV[1])", [$key, $val, $ttl], 1
);
}
/**
* 判断远程地址是否需要下载
* @param $url
* @author Akun
* @date 2023/12/08 14:17
*/
function check_remote_url_down($url){
if(!$url){
return false;
}
$arr = parse_url($url);
$scheme = $arr['scheme'] ?? '';
$host = $arr['host'] ?? '';
$path = $arr['path'] ?? '';
if($scheme && !in_array($scheme,['http','https'])){
return false;
}
if(!$host){
return false;
}
$host_arr = explode('.',$host);
if(strpos($host_arr[0],'cnd') !== false){
return false;
}
if(strpos($path, '.') === false){
return false;
}
return true;
}
... ...
... ... @@ -129,25 +129,23 @@ class OnlineController extends BaseController
* @time :2023/8/18 10:58
*/
public function searchParam(&$query){
if(isset($this->map['id'])){
$query->where('gl_project.id',$this->map['id']);
}
if(!empty($this->map['message']) && !empty($this->map['type'])){
// 搜索域名
if($this->map['type'] == 'test_domain'){
$query->where('gl_project_deploy_build.test_domain','like','%'.$this->map['message'].'%');
} else {
// 搜索名称
$query->where('gl_project.title', 'like', '%' . $this->map['message'] . '%');
}
}
if(isset($this->map['qa_status'])){
// 搜索状态
$query->where('gl_project_online_check.qa_status',$this->map['qa_status']);
}
if(isset($this->map['all_status'])){
// 搜索状态
$query->where('gl_project_online_check.qa_status',$this->map['all_status']);
}
if(isset($this->map['optimist_status'])){
// 搜索状态
$query->where('gl_project_online_check.optimist_status',$this->map['optimist_status']);
}
$query = $query->where('gl_project.status',1);//TODO::已提交审核
... ...
... ... @@ -24,7 +24,7 @@ class BlogController extends BaseController
* @time :2023/9/14 10:45
*/
public function lists(BlogModel $blogModel){
$filed = ['id','category_id','operator_id','status','created_at','label_id','image','updated_at','name','sort','url','release_at','is_upgrade'];
$filed = ['id','category_id','operator_id','status','created_at','label_id','image','updated_at','name','sort','url','release_at','is_upgrade','six_read'];
$this->order = 'sort';
$query = $blogModel->orderBy($this->order ,'desc')->orderBy('id','desc');
$query = $this->searchParam($query);
... ...
... ... @@ -9,6 +9,7 @@
namespace App\Http\Controllers\Bside\CustomModule;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\CustomModule\CustomModuleCategoryLogic;
use App\Models\CustomModule\CustomModuleCategory;
... ... @@ -16,7 +17,7 @@ use App\Models\CustomModule\CustomModuleCategory;
class CustomModuleCategoryController extends BaseController
{
/**
* @remark :获取自定义模块列表
* @remark :获取自定义模块分类列表
* @name :ModuleList
* @author :lyh
* @method :post
... ... @@ -29,8 +30,35 @@ class CustomModuleCategoryController extends BaseController
'module_id.required' => 'module_id不能为空',
]);
$this->map['project_id'] = $this->user['project_id'];
$lists = $customModuleCategory->lists($this->map,$this->page,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$lists);
$this->map['status'] = 0;
$list = $customModuleCategory->list($this->map);
if(!empty($list)){
foreach ($list as $k => $v){
$v['url'] = $this->user['domain'].$v['route'];
$list[$k] = $v;
}
}
$data = $this->getListSon($list);
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :无分页子集处理
* @name :getListSon
* @author :lyh
* @method :post
* @time :2023/8/17 11:12
*/
public function getListSon($list){
$data = array();
foreach ($list as $v){
$v = (array)$v;
if ($v['pid'] == 0) {
$v['sub'] = _get_child($v['id'], $list);
$data[] = $v;
}
}
return $data;
}
/**
... ... @@ -73,11 +101,13 @@ class CustomModuleCategoryController extends BaseController
$this->request->validate([
'name'=>['required'],
'route'=>['required'],
'module_id'=>['required']
'module_id'=>['required'],
'pid'=>['required']
],[
'name.required' => '分类名称不能为空',
'route.required' => '分类路由不能为空',
'module_id.required' => '所选模块id不能为空'
'module_id.required' => '所选模块id不能为空',
'pid.required' => '上级不能为空'
]);
$logic->categorySave();
$this->response('success');
... ...
... ... @@ -11,6 +11,7 @@ namespace App\Http\Controllers\Bside\CustomModule;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\CustomModule\CustomModuleContentLogic;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
class CustomModuleContentController extends BaseController
... ... @@ -34,6 +35,19 @@ class CustomModuleContentController extends BaseController
}
/**
* @remark :添加/编辑内容时获取分类
* @name :getCategoryList
* @author :lyh
* @method :post
* @time :2023/12/7 15:19
*/
public function getCategoryList(){
$categoryModel = new CustomModuleCategory();
$list = $categoryModel->list(['project_id'=>$this->user['project_id'],'module_id'=>$this->param['module_id']],['id','name']);
$this->response('success',Code::SUCCESS,$list);
}
/**
* @remark :获取当前数据详情
* @name :info
* @author :lyh
... ... @@ -46,7 +60,7 @@ class CustomModuleContentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$info = $logic->getCustomModuleContentInfo();
$info = $logic->getContentInfo();
$this->response('success',Code::SUCCESS,$info);
}
... ... @@ -67,7 +81,7 @@ class CustomModuleContentController extends BaseController
'route.required' => '分类路由不能为空',
'module_id.required' => '所选模块id不能为空'
]);
$logic->customModuleContentSave();
$logic->contentSave();
$this->response('success');
}
... ... @@ -84,7 +98,7 @@ class CustomModuleContentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$logic->customModuleContentDel();
$logic->contentDel();
$this->response('success');
}
}
... ...
... ... @@ -32,6 +32,7 @@ class CustomModuleController extends BaseController
*/
public function lists(CustomModule $customModule){
$this->map['project_id'] = $this->user['project_id'];
$this->map['status'] = 0;
$lists = $customModule->lists($this->map,$this->page,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$lists);
}
... ...
... ... @@ -22,9 +22,15 @@ class CustomModuleExtentController extends BaseController
* @method :post
* @time :2023/12/4 15:43
*/
public function list(CustomModuleExtend $customModuleExtend){
public function lists(CustomModuleExtend $customModuleExtend){
$this->request->validate([
'module_id'=>['required'],
],[
'module_id.required' => 'module_id不能为空',
]);
$this->map['project_id'] = $this->user['project_id'];
$lists = $customModuleExtend->lists($this->map,$this->page,$this->row,$this->order);
$filed = ['id','title','status','type','operator_id','project_id','module_id','created_at','updated_at'];
$lists = $customModuleExtend->lists($this->map,$this->page,$this->row,$this->order,$filed);
$this->response('success',Code::SUCCESS,$lists);
}
... ... @@ -41,7 +47,7 @@ class CustomModuleExtentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$info = $logic->getCustomModuleExtendInfo();
$info = $logic->getExtendInfo();
$this->response('success',Code::SUCCESS,$info);
}
... ... @@ -53,7 +59,7 @@ class CustomModuleExtentController extends BaseController
* @time :2023/12/4 15:45
*/
public function save(CustomModuleExtendLogic $logic){
$logic->customModuleExtendSave();
$logic->extendSave();
$this->response('success');
}
... ... @@ -70,7 +76,7 @@ class CustomModuleExtentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$logic->customModuleExtendDel();
$logic->extendDel();
$this->response('success');
}
}
... ...
... ... @@ -24,7 +24,7 @@ class NewsController extends BaseController
* @method
*/
public function lists(NewsModel $news){
$filed = ['id','category_id','operator_id','status','created_at','image','updated_at','name','sort','url', 'release_at','is_upgrade'];
$filed = ['id','category_id','operator_id','status','created_at','image','updated_at','name','sort','url', 'release_at','is_upgrade','six_read'];
$this->order = 'sort';
$query = $news->orderBy($this->order ,'desc')->orderBy('id','desc');
$query = $this->searchParam($query);
... ...
... ... @@ -43,7 +43,7 @@ class ProductController extends BaseController
public function index(Product $product)
{
$filed = ['id', 'project_id', 'title', 'sort' ,'thumb', 'gallery' ,'product_type' , 'route' ,
'category_id', 'keyword_id', 'status', 'created_uid', 'is_upgrade' ,'created_at', 'updated_at'];
'category_id', 'keyword_id', 'status', 'created_uid', 'is_upgrade' ,'created_at', 'updated_at','six_read'];
$this->order = 'sort';
$query = $product->orderBy($this->order ,'desc')->orderBy('id','desc');
$query = $this->searchParam($query);
... ...
... ... @@ -253,19 +253,19 @@ class BlogLogic extends BaseLogic
if (!$blog) {
$category_id = '';
if ($data[2]) {
if ($data[2]??'') {
//处理分类
$blogCategoryLogic = new BlogCategoryLogic();
$category_id = $blogCategoryLogic->importBlogCategory($project_id, $user_id, $data[2]);
}
$text = '';
if($data[4]){
if($data[4]??''){
//处理内容中的图片
preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[4], $result);
if($result[2]??[]){
foreach ($result[2] as $img){
$data[4] = str_replace($img,getImageUrl(CosService::uploadRemote($project_id,'image_news',$img)),$data[4]);
check_remote_url_down($img) && $data[4] = str_replace($img,getImageUrl(CosService::uploadRemote($project_id,'image_news',$img)),$data[4]);
}
}
... ... @@ -273,20 +273,25 @@ class BlogLogic extends BaseLogic
preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[4], $result_video);
if($result_video[2]??[]){
foreach ($result_video[2] as $video){
$data[4] = str_replace($video,getImageUrl(CosService::uploadRemote($project_id,'image_news',$video)),$data[4]);
check_remote_url_down($video) && $data[4] = str_replace($video,getImageUrl(CosService::uploadRemote($project_id,'image_news',$video)),$data[4]);
}
}
$text = $data[4];
}
$img = '';
if($data[5]??''){
$img = check_remote_url_down($data[5]) ? CosService::uploadRemote($project_id, 'image_news', $data[5]) : $data[5];
}
$id = $this->model->addReturnId(
[
'name' => $data[0],
'category_id' => $category_id,
'text' => $text,
'remark' => $data[3] ?? '',
'image' => $data['5'] ? CosService::uploadRemote($project_id, 'image_blog', $data[5]) : '',
'image' => $img,
'seo_title' => $data[6] ?? '',
'seo_keywords' => $data[7] ?? '',
'seo_description' => $data[8] ?? '',
... ... @@ -298,7 +303,7 @@ class BlogLogic extends BaseLogic
]
);
//更新路由
$route = RouteMap::setRoute($data[1] ?: $data[0], RouteMap::SOURCE_BLOG, $id, $project_id);
$route = RouteMap::setRoute((isset($data[1]) && $data[1]) ? $data[1] : $data[0], RouteMap::SOURCE_BLOG, $id, $project_id);
$this->edit(['url' => $route], ['id' => $id]);
return true;
... ...
... ... @@ -82,6 +82,7 @@ class CustomModuleCategoryLogic extends BaseLogic
if($info === false){
$this->fail('当前数据不存在或已被删除');
}
$info['image_link'] = getImageUrl($info['image']);
return $this->success($info);
}
... ... @@ -93,6 +94,7 @@ class CustomModuleCategoryLogic extends BaseLogic
* @time :2023/12/4 15:47
*/
public function categorySave(){
$this->param = $this->handleParam($this->param);
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->categoryEdit();
}else{
... ... @@ -102,6 +104,24 @@ class CustomModuleCategoryLogic extends BaseLogic
}
/**
* @name :(参数处理)paramProcessing
* @author :lyh
* @method :post
* @time :2023/6/13 11:30
*/
public function handleParam($param)
{
$param['operator_id'] = $this->user['id'];
if(!isset($param['id']) || empty($param['id'])){
$param['project_id'] = $this->user['project_id'];
}
if(isset($param['image']) && !empty($param['image'])){
$param['image'] = str_replace_url($param['image']);
}
return $this->success($param);
}
/**
* @remark :添加分类
* @name :categoryAdd
* @author :lyh
... ... @@ -116,7 +136,7 @@ class CustomModuleCategoryLogic extends BaseLogic
$this->handleAddSon($id);
$this->addUpdateNotify(RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],$route);
$this->curlDelRoute(['new_route'=>$route]);
$this->edit(['url' => $route], ['id' => $id]);
$this->edit(['route' => $route], ['id' => $id]);
//处理上级分类商品
$this->handleAddSon($id);
}catch (\Exception $e){
... ... @@ -135,7 +155,8 @@ class CustomModuleCategoryLogic extends BaseLogic
public function categoryEdit(){
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],
$this->param['id'], $this->user['project_id']);
$this->editNewsRoute($this->param['id'],$route);
$this->editHandleCategory($this->param['id'],$this->param['pid']);
$this->editRoute($this->param['id'],$route);
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请连续管理员');
... ... @@ -153,16 +174,16 @@ class CustomModuleCategoryLogic extends BaseLogic
public function editHandleCategory($id,$pid){
$info = $this->model->read(['id'=>$id],['id','pid']);
if($info['pid'] != $pid){
//修改勒上级,先查看上级是否拥有博客
//修改勒上级,先查看上级是否拥有产品
$contentModel = new CustomModuleContent();
$newsCount = $contentModel->formatQuery(['category_id'=>['like','%,'.$pid.',%']])->count();
//随机获取最后一级id
$replacement = $this->getLastId($id);
if($newsCount > 0){
$contentCount = $contentModel->formatQuery(['category_id'=>['like','%,'.$pid.',%']])->count();
if($contentCount > 0){
//随机获取最后一级id
$replacement = $this->getLastId($id);
//存在博客时,移动所有博客到当前分类最后一级
$newsCount->where('category_id', 'like', '%,' . $pid . ',%')->where('category_id', 'like', '%,' . $replacement . ',%')
$contentModel->where('category_id', 'like', '%,' . $pid . ',%')->where('category_id', 'like', '%,' . $replacement . ',%')
->update(['category_id' => DB::raw("REPLACE(category_id, ',$pid,', ',')")]);
$newsCount->where('category_id', 'like', '%,' . $pid . ',%')
$contentModel->where('category_id', 'like', '%,' . $pid . ',%')
->update(['category_id' => DB::raw("REPLACE(category_id, ',$pid,', ',$replacement,')")]);
}
}
... ... @@ -170,13 +191,29 @@ class CustomModuleCategoryLogic extends BaseLogic
}
/**
* @remark :随机获取当前id下最后一级的id
* @name :getLastId
* @author :lyh
* @method :post
* @time :2023/10/20 9:45
*/
public function getLastId($id){
$info = $this->model->read(['pid'=>$id],['id']);
if($info !== false){
return $this->getLastId($info['id']);
}else{
return $id;
}
}
/**
* @remark :查看是否编辑路由
* @name :editCategoryRoute
* @author :lyh
* @method :post
* @time :2023/9/7 11:05
*/
public function editNewsRoute($id, $route)
public function editRoute($id, $route)
{
//生成一条删除路由记录
$info = $this->model->read(['id' => $id], ['id', 'route']);
... ... @@ -235,14 +272,37 @@ class CustomModuleCategoryLogic extends BaseLogic
* @time :2023/12/4 15:47
*/
public function categoryDel(){
$info = $this->model->read(['pid' => $this->param['id']], ['id', 'route']);
if($info === false){
$this->fail('当前分类拥有下级');
}
$rs = $this->model->del($this->param);
if($rs === false){
$this->fail('系统错误,请连续管理员');
$ids = $this->param['id'];
foreach ($ids as $id){
$info = $this->model->read(['pid'=>$id],['id']);
if($info !== false){
$this->fail('分类id:'.$id.'拥有子集不允许删除');
}
$contentModel = new CustomModuleContent();
$contentInfo = $contentModel->read(['category_id'=>['like','%,'.$id.',%']]);
if($contentInfo !== false){
$this->fail('当前分类拥有产品不允许删除');
}
//删除路由
$this->delRoute($id);
$this->model->del(['id'=>$id]);
}
return $this->success();
}
/**
* @remark :删除路由
* @name :delRoute
* @author :lyh
* @method :post
* @time :2023/9/7 10:50
*/
public function delRoute($id)
{
RouteMap::delRoute(RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'], $id, $this->user['project_id']);
//通知
$info = $this->model->read(['id' => $id], ['id', 'route']);
$this->curlDelRoute(['route'=>$info['route']]);
return $this->success();
}
}
... ...
... ... @@ -10,7 +10,15 @@
namespace App\Http\Logic\Bside\CustomModule;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\CustomModule\CustomModuleExtend;
use App\Models\CustomModule\CustomModuleExtentContent;
use App\Models\Product\Extend;
use App\Models\Product\ExtendInfo;
use App\Models\RouteMap\RouteMap;
use Illuminate\Support\Facades\DB;
use mysql_xdevapi\Exception;
class CustomModuleContentLogic extends BaseLogic
{
... ... @@ -28,23 +36,257 @@ class CustomModuleContentLogic extends BaseLogic
* @method :post
* @time :2023/12/4 16:10
*/
public function getCustomModuleContentInfo(){
public function getContentInfo(){
$info = $this->model->read($this->param);
if($info === false){
$this->fail('当前数据不存在或已被删除');
}
$info['image_link'] = getImageUrl($info['image']);
$info['extend'] = $this->getExtendInfo($info['module_id'],$info['id']);
return $this->success($info);
}
/**
* @remark :获取扩展字段详情
* @name :getExtendInfo
* @author :lyh
* @method :post
* @time :2023/11/14 9:45
*/
public function getExtendInfo($module_id,$content_id){
$extendModel = new CustomModuleExtend();
$list = $extendModel->list(['module_id'=>$module_id],'id',['id','type','key','title']);
if(empty($list)){
return [];
}
$extendContentModel = new CustomModuleExtentContent();
foreach ($list as $k=>$v){
$info = $extendContentModel->read(['key'=>$v['key'],'content_id'=>$content_id]);
if($info === false){
if($v['type'] == 3 || $v['type'] == 4){
$v['values'] = [];
}else{
$v['values'] = '';
}
}else{
$v = $this->setTypValues($v,$info);
}
$list[$k] = $v;
}
return $this->success($list);
}
/**
* @remark :扩展字段根据type返回类型
* @name :setTypValues
* @author :lyh
* @method :post
* @time :2023/12/6 14:43
*/
public function setTypValues($v,$info){
if($v['type'] == 3){
$arr = json_decode($info['values']);
foreach ($arr as $k1=>$v1){
$v1 = (array)$v1;
$v1['url'] = getImageUrl($v1['url']);
$arr[$k1] = $v1;
}
$v['values'] = $arr;
}elseif($v['type'] == 4){
$arr1 = json_decode($info['values']);
foreach ($arr1 as $k1=>$v1){
$v1 = getFileUrl($v1);
$arr1[$k1] = $v1;
}
$v['values'] = $arr1;
}else{
$v['values'] = $info['values'];
}
return $this->success($v);
}
/**
* @remark :保存数据
* @name :ModuleSave
* @author :lyh
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleContentSave(){
public function contentSave(){
$extend = $this->handleExtent();
$this->param = $this->handleParam($this->param);
if(isset($this->param['id']) && !empty($this->param['id'])){
$id = $this->contentEdit();
}else{
$id = $this->contentAdd();
}
//保存扩展字段
$this->saveExtendInfo($id,$extend);
return $this->success();
}
/**
* @remark :处理扩展字段
* @name :handleExtent
* @author :lyh
* @method :post
* @time :2023/12/6 15:06
*/
public function handleExtent(){
//扩展字段
$extend = [];
if(!empty($this->param['extend'])){
$extend = $this->param['extend'];
unset($this->param['extend']);
}
return $extend;
}
/**
* @remark :添加数据
* @name :contentAdd
* @author :lyh
* @method :post
* @time :2023/12/7 15:04
*/
public function contentAdd(){
try {
$id = $this->model->addReturnId($this->param);
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE.$this->param['module_id'],
$id, $this->user['project_id']);
$this->addUpdateNotify(RouteMap::SOURCE_MODULE.$this->param['module_id'],$route);
$this->curlDelRoute(['new_route'=>$route]);
$this->edit(['route' => $route], ['id' => $id]);
}catch (\Exception $e){
$this->fail('系统错误,请联系管理员');
}
return $id;
}
/**
* @remark :编辑数据
* @name :contentEdit
* @author :lyh
* @method :post
* @time :2023/12/7 15:04
*/
public function contentEdit(){
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE.$this->param['module_id'],
$this->param['id'], $this->user['project_id']);
$this->editRoute($this->param['id'],$route);
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请连续管理员');
}
return $this->param['id'];
}
/**
* @name :(参数处理)paramProcessing
* @author :lyh
* @method :post
* @time :2023/6/13 11:30
*/
public function handleParam($param)
{
$param['operator_id'] = $this->user['id'];
if(!isset($param['id']) || empty($param['id'])){
$param['project_id'] = $this->user['project_id'];
}
if(isset($param['category_id']) && !empty($param['category_id'])){
$param['category_id'] = $this->getLastCategory($param['category_id']);
}
if(isset($param['image']) && !empty($param['image'])){
$param['image'] = str_replace_url($param['image']);
}
return $this->success($param);
}
/**
* @remark :查看是否编辑路由
* @name :editCategoryRoute
* @author :lyh
* @method :post
* @time :2023/9/7 11:05
*/
public function editRoute($id, $route)
{
//生成一条删除路由记录
$info = $this->model->read(['id' => $id], ['id', 'route']);
if ($info['route'] != $route) {
$this->addUpdateNotify(RouteMap::SOURCE_MODULE.$this->param['module_id'],$route);
$this->curlDelRoute(['route'=>$info['route'],'new_route'=>$route]);
}
return true;
}
/**
* @remark :获取最后一级分类id
* @name :getLastCategory
* @author :lyh
* @method :post
* @time :2023/10/20 9:02
*/
public function getLastCategory($category){
$str = '';
$cateModel = new CustomModuleCategory();
foreach ($category as $v){
$info = $cateModel->read(['pid'=>$v]);
if($info === false){
$str .= $v.',';
}
}
return ','.$str;
}
/**
* @remark :保存扩展字段
* @name :saveExtend
* @author :lyh
* @method :post
* @time :2023/11/9 15:02
*/
public function saveExtendInfo($content_id,$extend){
//先删除以前的数据
$extendInfoModel = new ExtendInfo();
$extendInfoModel->del(['content_id'=>$content_id]);
if(empty($extend)) {
return $this->success();
}
foreach ($extend as $v){
if(empty($v['values'])){
continue;
}
$v = $this->saveHandleExtend($v,$content_id);
$extendInfoModel->add($v);
}
return $this->success();
}
/**
* @remark :保存扩展字段时处理数据
* @name :saveHandleExtend
* @author :lyh
* @method :post
* @time :2023/12/6 15:11
*/
public function saveHandleExtend(&$v,$content_id){
if($v['type'] == 3){
foreach ($v['values'] as $k1=>$v1){
$v1['url'] = str_replace_url($v1['url']);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}elseif ($v['type'] == 4){
foreach ($v['values'] as $k1=>$v1){
$v1 = str_replace_url($v1);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}
$v['project_id'] = $this->user['project_id'];
$v['content_id'] = $content_id;
return $this->success($v);
}
/**
... ... @@ -54,7 +296,34 @@ class CustomModuleContentLogic extends BaseLogic
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleContentDel(){
public function contentDel(){
DB::beginTransaction();
try {
foreach ($this->param['id'] as $id) {
$this->delRoute($id);
$this->model->del(['id' => $id]);
}
DB::commit();
} catch (Exception $e) {
DB::rollBack();
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
* @remark :删除路由
* @name :delRoute
* @author :lyh
* @method :post
* @time :2023/9/7 10:50
*/
public function delRoute($id)
{
RouteMap::delRoute(RouteMap::SOURCE_MODULE.$this->param['module_id'], $id, $this->user['project_id']);
//通知
$info = $this->model->read(['id' => $id], ['id', 'url']);
$this->curlDelRoute(['route'=>$info['url']]);
return $this->success();
}
}
... ...
... ... @@ -28,8 +28,12 @@ class CustomModuleExtendLogic extends BaseLogic
* @method :post
* @time :2023/12/4 16:10
*/
public function getCustomModuleExtendInfo(){
public function getExtendInfo(){
$info = $this->model->read($this->param,['id','title','status','type','operator_id','project_id','module_id']);
if($info === false){
$this->fail('当前数据不存在或者已被删除');
}
return $this->success($info);
}
/**
... ... @@ -39,8 +43,68 @@ class CustomModuleExtendLogic extends BaseLogic
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleExtendSave(){
public function extendSave(){
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->extendEdit();
}else{
$this->extendAdd();
}
return $this->success();
}
/**
* @remark :添加
* @name :extendAdd
* @author :lyh
* @method :post
* @time :2023/12/7 14:09
*/
public function extendAdd(){
$info = $this->model->read(['title'=>$this->param['title']]);
if($info !== false){
$this->fail('当前扩展名称已存在');
}
$key = 'pd_extended_field_';
$this->param['key'] = $this->getKey($key);
$this->param['project_id'] = $this->user['project_id'];
$this->param['operator_id'] = $this->user['id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
* @remark :获取唯一key
* @name :getKey
* @author :lyh
* @method :post
* @time :2023/11/9 15:55
*/
public function getKey($key,$i = 1){
$info = $this->model->read(['key'=>$key.$i]);
if($info !== false){
return $this->getKey($key,$i+1);
}else{
return $key.$i;
}
}
/**
* @remark :编辑
* @name :extendEdit
* @author :lyh
* @method :post
* @time :2023/12/7 14:09
*/
public function extendEdit(){
$this->param['operator_id'] = $this->user['id'];
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
... ... @@ -50,7 +114,11 @@ class CustomModuleExtendLogic extends BaseLogic
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleExtendDel(){
public function extendDel(){
$rs = $this->model->del($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
}
... ...
... ... @@ -46,6 +46,7 @@ class CustomModuleLogic extends BaseLogic
* @time :2023/12/4 15:47
*/
public function customModuleSave(){
$this->param = $this->handleParam($this->param);
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->moduleEdit();
}else{
... ... @@ -55,6 +56,21 @@ class CustomModuleLogic extends BaseLogic
}
/**
* @name :(参数处理)paramProcessing
* @author :lyh
* @method :post
* @time :2023/6/13 11:30
*/
public function handleParam($param)
{
$param['operator_id'] = $this->user['id'];
if(!isset($param['id']) || empty($param['id'])){
$param['project_id'] = $this->user['project_id'];
}
return $this->success($param);
}
/**
* @remark :新增
* @name :moduleAdd
* @author :lyh
... ... @@ -62,7 +78,6 @@ class CustomModuleLogic extends BaseLogic
* @time :2023/12/5 9:39
*/
public function moduleAdd(){
$this->param['project_id'] = $this->user['project_id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
... ...
... ... @@ -287,19 +287,19 @@ class NewsLogic extends BaseLogic
if (!$news) {
$category_id = '';
if ($data[2]) {
if ($data[2]??'') {
//处理分类
$newsCategoryLogic = new NewsCategoryLogic();
$category_id = $newsCategoryLogic->importNewsCategory($project_id, $user_id, $data[2]);
}
$text = '';
if($data[4]){
if($data[4]??''){
//处理内容中的图片
preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[4], $result);
if($result[2]??[]){
foreach ($result[2] as $img){
$data[4] = str_replace($img,getImageUrl(CosService::uploadRemote($project_id,'image_news',$img)),$data[4]);
check_remote_url_down($img) && $data[4] = str_replace($img,getImageUrl(CosService::uploadRemote($project_id,'image_news',$img)),$data[4]);
}
}
... ... @@ -307,20 +307,25 @@ class NewsLogic extends BaseLogic
preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[4], $result_video);
if($result_video[2]??[]){
foreach ($result_video[2] as $video){
$data[4] = str_replace($video,getImageUrl(CosService::uploadRemote($project_id,'image_news',$video)),$data[4]);
check_remote_url_down($video) && $data[4] = str_replace($video,getImageUrl(CosService::uploadRemote($project_id,'image_news',$video)),$data[4]);
}
}
$text = $data[4];
}
$img = '';
if($data[5]??''){
$img = check_remote_url_down($data[5]) ? CosService::uploadRemote($project_id, 'image_news', $data[5]) : $data[5];
}
$id = $this->model->addReturnId(
[
'name' => $data[0],
'category_id' => $category_id,
'text' => $text,
'remark' => $data[3] ?? '',
'image' => $data['5'] ? CosService::uploadRemote($project_id, 'image_news', $data[5]) : '',
'image' => $img,
'seo_title' => $data[6] ?? '',
'seo_keywords' => $data[7] ?? '',
'seo_description' => $data[8] ?? '',
... ... @@ -332,7 +337,7 @@ class NewsLogic extends BaseLogic
]
);
//更新路由
$route = RouteMap::setRoute($data[1] ?: $data[0], RouteMap::SOURCE_NEWS, $id, $project_id);
$route = RouteMap::setRoute((isset($data[1]) && $data[1]) ? $data[1] : $data[0], RouteMap::SOURCE_NEWS, $id, $project_id);
$this->edit(['url' => $route], ['id' => $id]);
return true;
... ...
... ... @@ -106,6 +106,7 @@ class ProductLogic extends BaseLogic
}
return $category_ids;
}
/**
* @remark :新增时处理字段
* @name :addHandleParam
... ... @@ -599,14 +600,14 @@ class ProductLogic extends BaseLogic
if (!$product) {
$category_id = '';
if ($data[2]) {
if ($data[2]??'') {
//处理分类
$categoryLogic = new CategoryLogic();
$category_id = $categoryLogic->importProductCategory($project_id, $data[2]);
}
$keyword_id = '';
if($data[3]){
if($data[3]??''){
//处理关键词
$keywordLogic = new KeywordLogic();
$keyword_id = $keywordLogic->importProductKeyword($project_id, $data[3]);
... ... @@ -614,12 +615,12 @@ class ProductLogic extends BaseLogic
$gallery = [];
$thumb = '';
if($data[7]){
if($data[7]??''){
//处理图片
$img_arr = explode(',',$data[7]);
foreach ($img_arr as $v_img){
if($v_img){
$one_img = CosService::uploadRemote($project_id,'image_product',$v_img);
$one_img = check_remote_url_down($v_img) ? CosService::uploadRemote($project_id,'image_product',$v_img) : $v_img;
if($one_img){
$one_gallery = [
'alt' => '这是一张产品图',
... ... @@ -637,12 +638,12 @@ class ProductLogic extends BaseLogic
}
$intro = '';
if($data[5]){
if($data[5]??''){
//处理短描述中的图片
preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[5], $result_intro);
if($result_intro[2]??[]){
foreach ($result_intro[2] as $vi_img){
$data[5] = str_replace($vi_img,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vi_img)),$data[5]);
check_remote_url_down($vi_img) && $data[5] = str_replace($vi_img,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vi_img)),$data[5]);
}
}
... ... @@ -650,7 +651,7 @@ class ProductLogic extends BaseLogic
preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[5], $result_intro_video);
if($result_intro_video[2]??[]){
foreach ($result_intro_video[2] as $vi_video){
$data[5] = str_replace($vi_video,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vi_video)),$data[5]);
check_remote_url_down($vi_video) && $data[5] = str_replace($vi_video,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vi_video)),$data[5]);
}
}
... ... @@ -658,12 +659,12 @@ class ProductLogic extends BaseLogic
}
$content = '';
if($data[6]){
if($data[6]??''){
//处理内容中的图片
preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[6], $result_content);
if($result_content[2]??[]){
foreach ($result_content[2] as $vc_img){
$data[6] = str_replace($vc_img,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vc_img)),$data[6]);
check_remote_url_down($vc_img) && $data[6] = str_replace($vc_img,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vc_img)),$data[6]);
}
}
... ... @@ -671,7 +672,7 @@ class ProductLogic extends BaseLogic
preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $data[6], $result_content_video);
if($result_content_video[2]??[]){
foreach ($result_content_video[2] as $vc_video){
$data[6] = str_replace($vc_video,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vc_video)),$data[6]);
check_remote_url_down($vc_video) && $data[6] = str_replace($vc_video,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vc_video)),$data[6]);
}
}
... ... @@ -687,7 +688,7 @@ class ProductLogic extends BaseLogic
//处理描述切换栏
$describe = [];
if($data[11]){
if($data[11]??''){
//处理描述切换栏中的图片
$describe = json_decode($data[11],true);
... ... @@ -697,7 +698,7 @@ class ProductLogic extends BaseLogic
if($result_desc[2]??[]){
foreach ($result_desc[2] as $vdesc_img){
$v_desc['text'] = str_replace($vdesc_img,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vdesc_img)),$v_desc['text']);
check_remote_url_down($vdesc_img) && $v_desc['text'] = str_replace($vdesc_img,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vdesc_img)),$v_desc['text']);
}
}
... ... @@ -705,7 +706,7 @@ class ProductLogic extends BaseLogic
preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $v_desc['text'], $result_desc_video);
if($result_desc_video[2]??[]){
foreach ($result_desc_video[2] as $vdesc_video){
$v_desc['text'] = str_replace($vdesc_video,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vdesc_video)),$v_desc['text']);
check_remote_url_down($vdesc_video) && $v_desc['text'] = str_replace($vdesc_video,getImageUrl(CosService::uploadRemote($project_id,'image_product',$vdesc_video)),$v_desc['text']);
}
}
}
... ... @@ -729,7 +730,7 @@ class ProductLogic extends BaseLogic
]
);
//更新路由
$route = RouteMap::setRoute($data[1] ?: $data[0], RouteMap::SOURCE_PRODUCT, $id, $project_id);
$route = RouteMap::setRoute((isset($data[1]) && $data[1]) ? $data[1] : $data[0], RouteMap::SOURCE_PRODUCT, $id, $project_id);
$this->edit(['route' => $route], ['id' => $id]);
return true;
... ...
... ... @@ -9,6 +9,7 @@
namespace App\Models\CustomModule;
use App\Helper\Arr;
use App\Models\Base;
class CustomModuleContent extends Base
... ... @@ -16,4 +17,8 @@ class CustomModuleContent extends Base
protected $table = 'gl_custom_module_content';
//连接数据库
protected $connection = 'custom_mysql';
public function getCategoryIdAttribute($value){
return Arr::setToArr(trim($value,','));
}
}
... ...
<?php
/**
* @remark :
* @name :CustomModuleExtentContent.php
* @author :lyh
* @method :post
* @time :2023/12/7 14:38
*/
namespace App\Models\CustomModule;
use App\Models\Base;
class CustomModuleExtentContent extends Base
{
protected $table = 'gl_custom_module_extent_content';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -60,9 +60,20 @@ class RouteMap extends Base
}
$i=1;
$sign = generateRoute($title);
$route = $sign;
while(self::isExist($route, $source, $source_id, $project_id)){
$route = $sign .'-'.$i;
$info = self::where(['project_id' => $project_id, 'source' => $source, 'source_id'=>$source_id])->first();
if($info === false){
if($source == self::SOURCE_PRODUCT_KEYWORD){
$suffix = '-tag';
}
if($source == self::SOURCE_PRODUCT){
$suffix = '-product';
}
}else{
$suffix = '';
}
$route = $sign.$suffix;
while(self::isExist($route, $source_id, $project_id)){
$route = $sign .'-'.$i.$suffix;
$i++;
}
return $route;
... ... @@ -78,22 +89,13 @@ class RouteMap extends Base
* @author zbj
* @date 2023/4/17
*/
protected static function isExist($route, $source, $source_id, $project_id){
protected static function isExist($route, $source_id, $project_id){
$fixed = ['search','api']; //固定的路由
if(in_array($route, $fixed)){
return true;
}
$path = '';
if($source == self::SOURCE_NEWS){
$path = self::SOURCE_NEWS;
}elseif ($source == self::SOURCE_BLOG){
$path = self::SOURCE_BLOG.'s';
}
$where = [
'project_id' => $project_id,
'route' => $route,
'path' => $path,
'project_id' => $project_id, 'route' => $route,
];
$route = self::where($where)->first();
if($route){
... ... @@ -122,25 +124,11 @@ class RouteMap extends Base
}
try {
$route_map = self::where('project_id', $project_id)->where('source_id', $source_id)->where('source', $source)->first();
//上线项目 不能修改链接了
// if($route_map){
// $project = ProjectLogic::instance()->getInfo($project_id);
// if($project['type'] !== Project::STATUS_ONE){
// return $route_map->route;
// }
// }
if(!$route_map){
$route_map = new self();
$route_map->source = $source;
$route_map->source_id = $source_id;
$route_map->project_id = $project_id;
if ($source == self::SOURCE_PRODUCT_KEYWORD){
$route = self::setKeywordRoute($route);
//查看当前路由是否存在
}elseif ($source == self::SOURCE_PRODUCT){
//产品单独处理路由
$route = self::setProductRoute($route);
}
}
if($source == self::SOURCE_NEWS){
$route_map->path = self::SOURCE_NEWS;
... ... @@ -156,45 +144,43 @@ class RouteMap extends Base
}
/**
* @remark :产品新增单独处理路由
* @name :setProductRoute
* @author :lyh
* @method :post
* @time :2023/11/21 18:48
*/
public static function setProductRoute($route,$i = 0){
$routes = $route.'-product';
$routeMapModel = new RouteMap();
$routeInfo = $routeMapModel->read(['route'=>$routes]);
if($routeInfo === false){
return $routes;
}else{
$i = $i + 1;
$route = $route.'-'.$i;
return self::setProductRoute($route,$i);
}
}
/**
* @remark :关键字新增单独处理路由
* @name :setProductRoute
* @author :lyh
* @method :post
* @time :2023/11/21 18:48
*/
public static function setKeywordRoute($route,$i = 0){
$routes = $route.'-tag';
$routeMapModel = new RouteMap();
$routeInfo = $routeMapModel->read(['route'=>$routes]);
if($routeInfo === false){
return $routes;
}else{
$i = $i + 1;
$route = $route.'-'.$i;
return self::setProductRoute($route,$i);
}
}
// /**
// * @remark :产品新增单独处理路由
// * @name :setProductRoute
// * @author :lyh
// * @method :post
// * @time :2023/11/21 18:48
// */
// public static function setProductRoute($route,$i = 0){
// $routes = $route.'-'.$i.'-product';
// $routeMapModel = new RouteMap();
// $routeInfo = $routeMapModel->read(['route'=>$routes]);
// if($routeInfo === false){
// return $routes;
// }else{
// $i = $i + 1;
// return self::setProductRoute($route,$i);
// }
// }
//
// /**
// * @remark :关键字新增单独处理路由
// * @name :setProductRoute
// * @author :lyh
// * @method :post
// * @time :2023/11/21 18:48
// */
// public static function setKeywordRoute($route,$i = 0){
// $routes = $route.'-'.$i.'-tag';
// $routeMapModel = new RouteMap();
// $routeInfo = $routeMapModel->read(['route'=>$routes]);
// if($routeInfo === false){
// return $routes;
// }else{
// $i = $i + 1;
// return self::setKeywordRoute($route,$i);
// }
// }
/**
* @param $route
... ...
... ... @@ -440,10 +440,18 @@ Route::middleware(['bloginauth'])->group(function () {
Route::prefix('content')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'lists'])->name('custom_content_lists');
Route::any('/getCategoryList', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'getCategoryList'])->name('custom_content_getCategoryList');
Route::any('/info', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'info'])->name('custom_content_info');
Route::any('/save', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'save'])->name('custom_content_save');
Route::any('/del', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'del'])->name('custom_content_del');
});
Route::prefix('extend')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'lists'])->name('custom_extend_lists');
Route::any('/info', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'info'])->name('custom_extend_info');
Route::any('/save', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'save'])->name('custom_extend_save');
Route::any('/del', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'del'])->name('custom_extend_del');
});
});
});
//无需登录验证的路由组
... ...