BlogController.php 4.1 KB
<?php

namespace App\Http\Controllers\Bside\Blog;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Blog\BlogLogic;
use App\Http\Requests\Bside\Blog\BlogRequest;
use App\Models\Blog\Blog as BlogModel;
use App\Models\Blog\BlogCategory as BlogCategoryModel;
use Illuminate\Http\Request;
class BlogController extends BaseController
{
    /**
     * @name :博客列表
     * @return json
     * @author :liyuhang
     * @method
     */
    public function lists(BlogModel $blogModel){
        //搜索条件
        $this->map['project_id'] = $this->user['project_id'];
        $lists = $blogModel->lists($this->map,$this->page,$this->row,$this->order);
        if(!empty($lists['list'])){
            foreach ($lists['list'] as $k => $v){
                $blogCategoryModel= new BlogCategoryModel();
                //获取用户已读还是未读
                $category_info = $blogCategoryModel->
                list(['id'=>['in',explode(',',trim($v['category_id'],','))]],'id',['name']);
                $str = '';
                foreach ($category_info as $v1){
                    $str .= $v1['name'].',';
                }
                $v['category_id'] = trim($str,',');
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @name :获取分页列表
     * @return void
     * @throws \App\Exceptions\BsideGlobalException
     * @author :liyuhang
     * @method
     */
    public function get_category_list(BlogLogic $blogLogic){
        $list = $blogLogic->blog_get_category_list();
        $this->response('success',Code::SUCCESS,$list);
    }
    /**
     * @name :获取当前博客详情
     * @return json
     * @author :liyuhang
     * @method
     */
    public function info(Request $request,BlogLogic $blogLogic){
        $request->validate([
            'id'=>['required']
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $info = $blogLogic->blog_info();
        $this->response('success',Code::SUCCESS,$info);
    }
    /**
     * @name :添加博客
     * @return void
     * @author :liyuhang
     * @method
     */
    public function add(BlogRequest $request,BlogLogic $blogLogic){
        $request->validated();
        $blogLogic->blog_add();
        //TODO::写入日志
        $this->response('success');
    }

    /**
     * @name :编辑博客
     * @return void
     * @author :liyuhang
     * @method
     */
    public function edit(BlogRequest $request,BlogLogic $blogLogic){
        $request->validate([
            'id'=>['required']
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $blogLogic->blog_edit();
        //TODO::写入日志
        $this->response('success');
    }

    /**
     * @name :编辑博客状态/排序
     * @return void
     * @author :liyuhang
     * @method
     */
    public function status(Request $request,BlogLogic $blogLogic){
        $request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $blogLogic->blog_status();
        //TODO::写入日志
        $this->response('success');
    }

    /**
     * @name :删除博客(批量逻辑删除)
     * @return void
     * @author :liyuhang
     * @method
     */
    public function del(Request $request,BlogLogic $blogLogic){
        $request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $blogLogic->blog_del();
        $this->response('success');
    }
    /**
     * @name :ai生成
     * @return void
     * @author :liyuhang
     * @method
     */
    public function ai_blog(Request $request){
        $request->validate([
            'keywords'=>['required'],
            'key'=>['required']
        ],[
            'keywords.required' => '关键字不能为空',
            'key.required' => '场景不能为空',
        ]);
        #TODO 通过key获取到ai指令对象
        $url = 'v2/openai_chat';
        $data = $this->send_openai_msg($url);
        $this->response('success',Code::SUCCESS,$data);
    }

}