作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

... ... @@ -55,8 +55,13 @@ class BlogController extends BaseController
$query = $query->where('project_id',$this->user['project_id']);
if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
$str = [];
$str[] = $this->map['category_id'];
$this->getAllSub($this->map['category_id'],$str);
$query = $query->whereIn('category_id',$str);
$query->where(function ($subQuery) use ($str) {
foreach ($str as $v) {
$subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
}
});
}
if(isset($this->map['status'])){
$query = $query->where('status',$this->map['status']);
... ...
... ... @@ -58,8 +58,13 @@ class NewsController extends BaseController
$query = $query->where('project_id',$this->user['project_id']);
if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
$str = [];
$str[] = $this->map['category_id'];
$this->getAllSub($this->map['category_id'],$str);
$query = $query->whereIn('category_id',$str);
$query->where(function ($subQuery) use ($str) {
foreach ($str as $v) {
$subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
}
});
}
if(isset($this->map['status'])){
$query = $query->where('status',$this->map['status']);
... ...
... ... @@ -79,8 +79,13 @@ class ProductController extends BaseController
$query = $query->where('project_id',$this->user['project_id']);
if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
$str = [];
$str[] = $this->map['category_id'];
$this->getAllSub($this->map['category_id'],$str);
$query = $query->whereIn('category_id',$str);
$query->where(function ($subQuery) use ($str) {
foreach ($str as $v) {
$subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
}
});
}
if(isset($this->map['title']) && !empty($this->map['title'])){
$query = $query->where('title','like','%'.$this->map['title'].'%');
... ...
... ... @@ -75,6 +75,18 @@ class BTemplateController extends BaseController
}
/**
* @remark :可视化装修数据类型设置
* @name :moduleSetting
* @author :lyh
* @method :post
* @time :2023/7/17 15:55
*/
public function getModuleTypes(BTemplateLogic $BTemplateLogic){
$list = $BTemplateLogic->getModuleTypes();
$this->response('success',Code::SUCCESS,$list);
}
/**
* @remark :公共主题设置公共head
* @name :setHead
* @author :lyh
... ...
... ... @@ -6,6 +6,7 @@ use App\Http\Logic\Bside\BaseLogic;
use App\Models\Blog\Blog;
use App\Models\Blog\BlogCategory;
use App\Models\CustomModule\CustomModule;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Models\Product\Category;
... ... @@ -697,18 +698,67 @@ class BTemplateLogic extends BaseLogic
public function getModuleTypes(){
$data['module'] = ['默认','产品','新闻','博客','产品分类'];
$data = [
['id'=>'0',"name"=>'默认','category'=>[["id"=>"all", "title"=>"全部"], ["id"=>"hot", "title"=>"热销产品",], ["id"=>"recommend", "title"=>"推荐产品",]]],
['id'=>'1',"name"=>'产品','category'=>[]],
['id'=>'2',"name"=>'新闻','category'=>[]],
['id'=>'3',"name"=>'博客','category'=>[]],
['id'=>'0',"name"=>'默认','category'=>[]],
['id'=>'1',"name"=>'产品','category'=>[["id"=>"all", "title"=>"全部"], ["id"=>"hot", "title"=>"热销产品",], ["id"=>"recommend", "title"=>"推荐产品"]]],
['id'=>'2',"name"=>'新闻','category'=>[["id"=>"all", "name"=>"全部",], ["id"=>"new", "name"=>"最新"]]],
['id'=>'3',"name"=>'博客','category'=>[["id"=>"all", "name"=>"全部",], ["id"=>"new", "name"=>"最新"]]],
['id'=>'4','name'=>'产品分类','category'=>[]],
];
$data = $this->handleCategory($data);
//获取当前项目的扩展模块
$moduleModel = new CustomModule();
$moduleList = $moduleModel->list(['status'=>0]);
foreach ($moduleList as $v){
$data[] = ['id'=>'custom-'.$v['id'],'name'=>$v['name'],'category'=>[]];
$moduleCategory = $this->getCategoryList((new CustomModuleCategory()),0,['id','name','pid']);
$categoryList = [["id"=>"all", "name"=>"全部"], ["id"=>"new", "name"=>"最新"]];
foreach ($moduleCategory as $values){
$categoryList[] = $values;
}
$data[] = ['id'=>'custom-'.$v['id'],'name'=>$v['name'],'category'=>$categoryList];
}
return $this->success($data);
}
/**
* @remark :处理默认分类
* @name :handleCategory
* @author :lyh
* @method :post
* @time :2023/12/21 18:31
*/
public function handleCategory($data){
foreach ($data as $key => $values){
switch ($values['name']){
case '产品':
$productCategory = $this->getCategoryList((new Category()),1,['id','title','pid']);
if(!empty($productCategory)){
foreach ($productCategory as $item){
$values['category'][] = $item;
}
}
break;
case '新闻':
$newCategory = $this->getCategoryList((new NewsCategory()),0,['id','name','pid']);
if(!empty($newCategory)){
foreach ($newCategory as $item){
$values['category'][] = $item;
}
}
break;
case '博客':
$blogCategory = $this->getCategoryList((new BlogCategory()),0,['id','name','pid']);
if(!empty($blogCategory)){
foreach ($blogCategory as $item){
$values['category'][] = $item;
}
}
break;
default:
break;
}
$data[$key] = $values;
}
return $this->success($data);
}
/**
... ... @@ -718,12 +768,12 @@ class BTemplateLogic extends BaseLogic
* @method :post
* @time :2023/12/20 10:26
*/
public function getCategoryList($categoryModel,$status = 0){
public function getCategoryList($categoryModel,$status = 0,$filed = ['*']){
$data = array();
$list = $categoryModel->list(['pid'=>0,'status'=>$status]);
$list = $categoryModel->list(['pid'=>0,'status'=>$status],['sort','id'],$filed);
foreach ($list as $v){
$data[] = $v;
$son_list = $categoryModel->list(['pid'=>$v['id'],'status'=>$status]);
$son_list = $categoryModel->list(['pid'=>$v['id'],'status'=>$status],['sort','id'],$filed);
foreach ($son_list as $v1){
$data[] = $v1;
}
... ...
... ... @@ -310,6 +310,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/save', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'save'])->name('template_save');
//可视化保存获取数据类型
Route::any('/getTypeSetting', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getTypeSetting'])->name('template_getTypeSetting');
Route::any('/getModuleTypes', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getModuleTypes'])->name('template_getModuleTypes');
Route::any('/getHeadFooter', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getHeadFooter'])->name('template_getHeadFooter');
Route::any('/setHeadFooter', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'setHeadFooter'])->name('template_setHeadFooter');
Route::any('/savePublicTemplate', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'savePublicTemplate'])->name('template_savePublicTemplate');
... ...