作者 lyh

gx

@@ -4,14 +4,12 @@ namespace App\Http\Controllers\Bside\Blog; @@ -4,14 +4,12 @@ namespace App\Http\Controllers\Bside\Blog;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Bside\BaseController; 6 use App\Http\Controllers\Bside\BaseController;
7 -use App\Http\Logic\Bside\Blog\BlogCategoryLogic;  
8 -use App\Http\Logic\Bside\Blog\BlogLabelLogic;  
9 use App\Http\Logic\Bside\Blog\BlogLogic; 7 use App\Http\Logic\Bside\Blog\BlogLogic;
10 use App\Http\Requests\Bside\Blog\BlogRequest; 8 use App\Http\Requests\Bside\Blog\BlogRequest;
11 use App\Models\Blog\Blog as BlogModel; 9 use App\Models\Blog\Blog as BlogModel;
12 use App\Models\Blog\BlogCategory; 10 use App\Models\Blog\BlogCategory;
13 use App\Models\Blog\BlogCategory as BlogCategoryModel; 11 use App\Models\Blog\BlogCategory as BlogCategoryModel;
14 -use App\Models\RouteMap\RouteMap; 12 +use App\Models\Product\Category;
15 use App\Models\User\User; 13 use App\Models\User\User;
16 14
17 class BlogController extends BaseController 15 class BlogController extends BaseController
@@ -25,11 +23,13 @@ class BlogController extends BaseController @@ -25,11 +23,13 @@ class BlogController extends BaseController
25 * @time :2023/9/14 10:45 23 * @time :2023/9/14 10:45
26 */ 24 */
27 public function lists(BlogModel $blogModel){ 25 public function lists(BlogModel $blogModel){
28 - $this->map = $this->searchParam();  
29 $filed = ['id','category_id','operator_id','status','created_at','label_id','image','updated_at','name','sort','url']; 26 $filed = ['id','category_id','operator_id','status','created_at','label_id','image','updated_at','name','sort','url'];
30 $this->order = 'sort'; 27 $this->order = 'sort';
31 - $lists = $blogModel->lists($this->map,$this->page,$this->row,$this->order,$filed); 28 + $query = $blogModel->sortOrder($query,$this->order ,'desc');
  29 + $query = $this->searchParam($query);
  30 + $lists = $query->select($filed)->paginate($this->row, ['*'], 'page', $this->page);
32 if(!empty($lists) && !empty($lists['list'])){ 31 if(!empty($lists) && !empty($lists['list'])){
  32 + $lists = $lists->toArray();
33 //获取当前项目的所有分类 33 //获取当前项目的所有分类
34 $data = $this->getCategoryList(); 34 $data = $this->getCategoryList();
35 $user = new User(); 35 $user = new User();
@@ -51,12 +51,39 @@ class BlogController extends BaseController @@ -51,12 +51,39 @@ class BlogController extends BaseController
51 * @method :post 51 * @method :post
52 * @time :2023/9/14 10:01 52 * @time :2023/9/14 10:01
53 */ 53 */
54 - public function searchParam(){  
55 - $this->map['project_id'] = $this->user['project_id'];  
56 - if(isset($this->map['category_id']) && !empty($this->map['category_id'])){  
57 - $this->map['category_id'] = ['like','%,'.$this->map['category_id'].',%']; 54 + public function searchParam(&$query){
  55 + $query = $query->where('project_id',$this->user['project_id']);
  56 + if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
  57 + $str = [];
  58 + $this->getLastLevelIds($this->map['category_id'],$str);
  59 + $query->where(function ($subQuery) use ($str) {
  60 + foreach ($str as $v) {
  61 + $subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);
  62 + }
  63 + });
  64 + }
  65 + return $query;
  66 + }
  67 +
  68 + /**
  69 + * @remark :获取当前分类的最后一级id
  70 + * @name :getLastLevelIds
  71 + * @author :lyh
  72 + * @method :post
  73 + * @time :2023/10/20 15:02
  74 + */
  75 + public function getLastLevelIds($id, &$str = []) {
  76 + $cateModel = new BlogCategoryModel();
  77 + $subList = $cateModel->where('pid', $id)->get();
  78 + if ($subList->isEmpty()) {
  79 + // 如果没有子集,将当前 ID 添加到最后一级 ID 数组
  80 + $str[] = $id;
  81 + } else {
  82 + // 如果有子集,继续向下遍历
  83 + foreach ($subList as $v) {
  84 + $this->getLastLevelIds($v->id, $str);
  85 + }
58 } 86 }
59 - return $this->map;  
60 } 87 }
61 88
62 /** 89 /**