NewsCategoryController.php 3.2 KB
<?php

namespace App\Http\Controllers\Bside\News;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\News\NewsCategoryLogic;
use App\Http\Requests\Bside\News\NewsCategoryRequest;
use App\Models\News\News as NewsModel;
use App\Models\News\NewsCategory as NewsCategoryModel;

class NewsCategoryController extends BaseController
{
    /**
     * @name :新闻分类列表
     * @return json
     * @author :liyuhang
     * @method
     */
    public function lists(NewsCategoryModel $newsCategory){
        //搜索条件
        $this->map['project_id'] = $this->user['project_id'];
        $lists = $newsCategory->lists($this->map,$this->page,$this->row,$this->order,
            ['id','pid','name','num','alias','status','sort','remark','created_at','updated_at']);
        if(!empty($lists['list'])){
            $newsModel = new NewsModel();
            foreach ($lists['list'] as $k => $v){
                $v['num'] = $newsModel->formatQuery(['category_id'=>['like','%,' . $v['id'] . ',%']])->count();
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @name :获取当前分类详情
     * @return void
     * @author :liyuhang
     * @method
     */
    public function info(NewsCategoryLogic $newsCategoryLogic){
        $this->request->validate([
            'id'=>['required']
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $info = $newsCategoryLogic->info_news_category();
        $this->response('success',Code::SUCCESS,$info);
    }
    /**
     * @name :添加分类
     * @return json
     * @author :liyuhang
     * @method
     */
    public function add(NewsCategoryRequest $request,NewsCategoryLogic $newsCategoryLogic){
        $request->validated();
        //添加时,验证分类上级分类是否有,有则更新到当前分类中,没有时直接添加
        $newsCategoryLogic->add_news_category();
        $this->response('success');
    }

    /**
     * @name :编辑分类
     * @return void
     * @author :liyuhang
     * @method
     */
    public function edit(NewsCategoryRequest $request,NewsCategoryLogic $newsCategoryLogic){
        $request->validate([
            'id'=>['required']
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $newsCategoryLogic->edit_news_category();
        $this->response('success');
    }

    /**
     * @name :编辑状态/排序
     * @return void
     * @author :liyuhang
     * @method
     */
    public function status(NewsCategoryLogic $newsCategoryLogic){
        $this->request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $newsCategoryLogic->status_news_category();
        $this->response('success');
    }

    /**
     * @name :删除分类
     * @return void
     * @author :liyuhang
     * @method
     */
    public function del(NewsCategoryLogic $newsCategoryLogic){
        $this->request->validate([
            'id'=>['required','array'],
        ],[
            'id.required' => 'ID不能为空',
            'id.array' => 'ID为数组',
        ]);
        $newsCategoryLogic->del_news_category();
        $this->response('success');
    }

}