NewsController.php 4.1 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\NewsLogic;
use App\Http\Requests\Bside\News\NewsRequest;
use App\Models\News\News as NewsModel;
use Illuminate\Http\Request;

/**
 * @name:新闻管理
 */
class NewsController extends BaseController
{
    /**
     * @name :获取新闻列表
     * @return json
     * @author :liyuhang
     * @method
     */
    public function lists(NewsModel $news){
        $this->map['project_id'] = $this->user['project_id'];
        $lists = $news->lists($this->map,$this->page,$this->row,$this->order);
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @name :添加新闻时获取分类列表
     * @return void
     * @author :liyuhang
     * @method
     */
    public function get_category_list(NewsLogic $newsLogic){
        $list = $newsLogic->news_get_category_list();
        $this->response('success',Code::SUCCESS,$list);
    }
    /**
     * @name :获取详情
     * @return void
     * @author :liyuhang
     * @method
     */
    public function info(Request $request,NewsLogic $newsLogic){
        $request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $info = $newsLogic->news_info();
        //TODO::清空相关资源
        $this->response('success',Code::SUCCESS,$info);
    }
    /**
     * @name :添加新闻
     * @return json
     * @author :liyuhang
     * @method
     */
    public function add(NewsRequest $newsRequest,NewsLogic $newsLogic){
        $newsRequest->validated();
        $newsLogic->news_add();
        //TODO::写入日志
        $this->response('success');
    }

    /**
     * @name :编辑
     * @return void
     * @author :liyuhang
     * @method
     */
    public function edit(NewsRequest $newsRequest,NewsLogic $newsLogic){
        $newsRequest->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $newsLogic->news_edit();
        //TODO::写入日志
        $this->response('success',Code::SUCCESS);
    }

    /**
     * @name :编辑状态/与排序
     * @return void
     * @author :liyuhang
     * @method
     */
    public function status(Request $request,NewsLogic $newsLogic){
        $request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $newsLogic->news_status();
        //TODO::写入日志
        $this->response('success');
    }
    /**
     * @name :删除新闻(逻辑删除)
     * @return void
     * @author :liyuhang
     * @method
     */
    public function del(Request $request,NewsLogic $newsLogic){
        $request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $newsLogic->news_del();
        //TODO::清空相关资源/写入日志
        $this->response('success');
    }

    /**
     * @name :ai生成名称
     * @return void
     * @author :liyuhang
     * @method
     */
    public function ai_news_name(Request $request){
        # id, key, scene, ai
        $request->validate([
            'keywords'=>['required'],
        ],[
            'keywords.required' => '关键字不能为空',
        ]);
        $key = 'news_title';
        #TODO 通过key获取到ai指令对象
        $url = 'v2/openai_chat';
        $data = $this->send_openai_msg($url,$key);
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @name :ai生成内容
     * @return void
     * @author :liyuhang
     * @method
     */
    public function ai_news_content(Request $request){
        $request->validate([
            'keywords'=>['required'],
        ],[
            'keywords.required' => '关键字不能为空',
        ]);
        $key = 'new_content';
        #TODO 通过key获取到ai指令对象
        $url = 'v2/openai_chat';
        $data = $this->send_openai_msg($url,$key);
        $this->response('success',Code::SUCCESS,$data);
    }
}