正在显示
1 个修改的文件
包含
37 行增加
和
10 行删除
| @@ -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 | /** |
-
请 注册 或 登录 后发表评论