作者 刘锟

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

@@ -55,8 +55,13 @@ class BlogController extends BaseController @@ -55,8 +55,13 @@ class BlogController extends BaseController
55 $query = $query->where('project_id',$this->user['project_id']); 55 $query = $query->where('project_id',$this->user['project_id']);
56 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) { 56 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
57 $str = []; 57 $str = [];
  58 + $str[] = $this->map['category_id'];
58 $this->getAllSub($this->map['category_id'],$str); 59 $this->getAllSub($this->map['category_id'],$str);
59 - $query = $query->whereIn('category_id',$str); 60 + $query->where(function ($subQuery) use ($str) {
  61 + foreach ($str as $v) {
  62 + $subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
  63 + }
  64 + });
60 } 65 }
61 if(isset($this->map['status'])){ 66 if(isset($this->map['status'])){
62 $query = $query->where('status',$this->map['status']); 67 $query = $query->where('status',$this->map['status']);
@@ -58,8 +58,13 @@ class NewsController extends BaseController @@ -58,8 +58,13 @@ class NewsController extends BaseController
58 $query = $query->where('project_id',$this->user['project_id']); 58 $query = $query->where('project_id',$this->user['project_id']);
59 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) { 59 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
60 $str = []; 60 $str = [];
  61 + $str[] = $this->map['category_id'];
61 $this->getAllSub($this->map['category_id'],$str); 62 $this->getAllSub($this->map['category_id'],$str);
62 - $query = $query->whereIn('category_id',$str); 63 + $query->where(function ($subQuery) use ($str) {
  64 + foreach ($str as $v) {
  65 + $subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
  66 + }
  67 + });
63 } 68 }
64 if(isset($this->map['status'])){ 69 if(isset($this->map['status'])){
65 $query = $query->where('status',$this->map['status']); 70 $query = $query->where('status',$this->map['status']);
@@ -79,8 +79,13 @@ class ProductController extends BaseController @@ -79,8 +79,13 @@ class ProductController extends BaseController
79 $query = $query->where('project_id',$this->user['project_id']); 79 $query = $query->where('project_id',$this->user['project_id']);
80 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) { 80 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
81 $str = []; 81 $str = [];
  82 + $str[] = $this->map['category_id'];
82 $this->getAllSub($this->map['category_id'],$str); 83 $this->getAllSub($this->map['category_id'],$str);
83 - $query = $query->whereIn('category_id',$str); 84 + $query->where(function ($subQuery) use ($str) {
  85 + foreach ($str as $v) {
  86 + $subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
  87 + }
  88 + });
84 } 89 }
85 if(isset($this->map['title']) && !empty($this->map['title'])){ 90 if(isset($this->map['title']) && !empty($this->map['title'])){
86 $query = $query->where('title','like','%'.$this->map['title'].'%'); 91 $query = $query->where('title','like','%'.$this->map['title'].'%');
@@ -75,6 +75,18 @@ class BTemplateController extends BaseController @@ -75,6 +75,18 @@ class BTemplateController extends BaseController
75 } 75 }
76 76
77 /** 77 /**
  78 + * @remark :可视化装修数据类型设置
  79 + * @name :moduleSetting
  80 + * @author :lyh
  81 + * @method :post
  82 + * @time :2023/7/17 15:55
  83 + */
  84 + public function getModuleTypes(BTemplateLogic $BTemplateLogic){
  85 + $list = $BTemplateLogic->getModuleTypes();
  86 + $this->response('success',Code::SUCCESS,$list);
  87 + }
  88 +
  89 + /**
78 * @remark :公共主题设置公共head 90 * @remark :公共主题设置公共head
79 * @name :setHead 91 * @name :setHead
80 * @author :lyh 92 * @author :lyh
@@ -6,6 +6,7 @@ use App\Http\Logic\Bside\BaseLogic; @@ -6,6 +6,7 @@ use App\Http\Logic\Bside\BaseLogic;
6 use App\Models\Blog\Blog; 6 use App\Models\Blog\Blog;
7 use App\Models\Blog\BlogCategory; 7 use App\Models\Blog\BlogCategory;
8 use App\Models\CustomModule\CustomModule; 8 use App\Models\CustomModule\CustomModule;
  9 +use App\Models\CustomModule\CustomModuleCategory;
9 use App\Models\News\News; 10 use App\Models\News\News;
10 use App\Models\News\NewsCategory; 11 use App\Models\News\NewsCategory;
11 use App\Models\Product\Category; 12 use App\Models\Product\Category;
@@ -697,18 +698,67 @@ class BTemplateLogic extends BaseLogic @@ -697,18 +698,67 @@ class BTemplateLogic extends BaseLogic
697 public function getModuleTypes(){ 698 public function getModuleTypes(){
698 $data['module'] = ['默认','产品','新闻','博客','产品分类']; 699 $data['module'] = ['默认','产品','新闻','博客','产品分类'];
699 $data = [ 700 $data = [
700 - ['id'=>'0',"name"=>'默认','category'=>[["id"=>"all", "title"=>"全部"], ["id"=>"hot", "title"=>"热销产品",], ["id"=>"recommend", "title"=>"推荐产品",]]],  
701 - ['id'=>'1',"name"=>'产品','category'=>[]],  
702 - ['id'=>'2',"name"=>'新闻','category'=>[]],  
703 - ['id'=>'3',"name"=>'博客','category'=>[]], 701 + ['id'=>'0',"name"=>'默认','category'=>[]],
  702 + ['id'=>'1',"name"=>'产品','category'=>[["id"=>"all", "title"=>"全部"], ["id"=>"hot", "title"=>"热销产品",], ["id"=>"recommend", "title"=>"推荐产品"]]],
  703 + ['id'=>'2',"name"=>'新闻','category'=>[["id"=>"all", "name"=>"全部",], ["id"=>"new", "name"=>"最新"]]],
  704 + ['id'=>'3',"name"=>'博客','category'=>[["id"=>"all", "name"=>"全部",], ["id"=>"new", "name"=>"最新"]]],
704 ['id'=>'4','name'=>'产品分类','category'=>[]], 705 ['id'=>'4','name'=>'产品分类','category'=>[]],
705 ]; 706 ];
  707 + $data = $this->handleCategory($data);
706 //获取当前项目的扩展模块 708 //获取当前项目的扩展模块
707 $moduleModel = new CustomModule(); 709 $moduleModel = new CustomModule();
708 $moduleList = $moduleModel->list(['status'=>0]); 710 $moduleList = $moduleModel->list(['status'=>0]);
709 foreach ($moduleList as $v){ 711 foreach ($moduleList as $v){
710 - $data[] = ['id'=>'custom-'.$v['id'],'name'=>$v['name'],'category'=>[]]; 712 + $moduleCategory = $this->getCategoryList((new CustomModuleCategory()),0,['id','name','pid']);
  713 + $categoryList = [["id"=>"all", "name"=>"全部"], ["id"=>"new", "name"=>"最新"]];
  714 + foreach ($moduleCategory as $values){
  715 + $categoryList[] = $values;
711 } 716 }
  717 + $data[] = ['id'=>'custom-'.$v['id'],'name'=>$v['name'],'category'=>$categoryList];
  718 + }
  719 + return $this->success($data);
  720 + }
  721 +
  722 + /**
  723 + * @remark :处理默认分类
  724 + * @name :handleCategory
  725 + * @author :lyh
  726 + * @method :post
  727 + * @time :2023/12/21 18:31
  728 + */
  729 + public function handleCategory($data){
  730 + foreach ($data as $key => $values){
  731 + switch ($values['name']){
  732 + case '产品':
  733 + $productCategory = $this->getCategoryList((new Category()),1,['id','title','pid']);
  734 + if(!empty($productCategory)){
  735 + foreach ($productCategory as $item){
  736 + $values['category'][] = $item;
  737 + }
  738 + }
  739 + break;
  740 + case '新闻':
  741 + $newCategory = $this->getCategoryList((new NewsCategory()),0,['id','name','pid']);
  742 + if(!empty($newCategory)){
  743 + foreach ($newCategory as $item){
  744 + $values['category'][] = $item;
  745 + }
  746 + }
  747 + break;
  748 + case '博客':
  749 + $blogCategory = $this->getCategoryList((new BlogCategory()),0,['id','name','pid']);
  750 + if(!empty($blogCategory)){
  751 + foreach ($blogCategory as $item){
  752 + $values['category'][] = $item;
  753 + }
  754 + }
  755 + break;
  756 + default:
  757 + break;
  758 + }
  759 + $data[$key] = $values;
  760 + }
  761 + return $this->success($data);
712 } 762 }
713 763
714 /** 764 /**
@@ -718,12 +768,12 @@ class BTemplateLogic extends BaseLogic @@ -718,12 +768,12 @@ class BTemplateLogic extends BaseLogic
718 * @method :post 768 * @method :post
719 * @time :2023/12/20 10:26 769 * @time :2023/12/20 10:26
720 */ 770 */
721 - public function getCategoryList($categoryModel,$status = 0){ 771 + public function getCategoryList($categoryModel,$status = 0,$filed = ['*']){
722 $data = array(); 772 $data = array();
723 - $list = $categoryModel->list(['pid'=>0,'status'=>$status]); 773 + $list = $categoryModel->list(['pid'=>0,'status'=>$status],['sort','id'],$filed);
724 foreach ($list as $v){ 774 foreach ($list as $v){
725 $data[] = $v; 775 $data[] = $v;
726 - $son_list = $categoryModel->list(['pid'=>$v['id'],'status'=>$status]); 776 + $son_list = $categoryModel->list(['pid'=>$v['id'],'status'=>$status],['sort','id'],$filed);
727 foreach ($son_list as $v1){ 777 foreach ($son_list as $v1){
728 $data[] = $v1; 778 $data[] = $v1;
729 } 779 }
@@ -310,6 +310,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -310,6 +310,7 @@ Route::middleware(['bloginauth'])->group(function () {
310 Route::any('/save', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'save'])->name('template_save'); 310 Route::any('/save', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'save'])->name('template_save');
311 //可视化保存获取数据类型 311 //可视化保存获取数据类型
312 Route::any('/getTypeSetting', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getTypeSetting'])->name('template_getTypeSetting'); 312 Route::any('/getTypeSetting', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getTypeSetting'])->name('template_getTypeSetting');
  313 + Route::any('/getModuleTypes', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getModuleTypes'])->name('template_getModuleTypes');
313 Route::any('/getHeadFooter', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getHeadFooter'])->name('template_getHeadFooter'); 314 Route::any('/getHeadFooter', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'getHeadFooter'])->name('template_getHeadFooter');
314 Route::any('/setHeadFooter', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'setHeadFooter'])->name('template_setHeadFooter'); 315 Route::any('/setHeadFooter', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'setHeadFooter'])->name('template_setHeadFooter');
315 Route::any('/savePublicTemplate', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'savePublicTemplate'])->name('template_savePublicTemplate'); 316 Route::any('/savePublicTemplate', [\App\Http\Controllers\Bside\Template\BTemplateController::class, 'savePublicTemplate'])->name('template_savePublicTemplate');