AiBlogLogic.php 2.2 KB
<?php

namespace App\Http\Logic\Bside\Ai;

use App\Http\Logic\Bside\BaseLogic;
use App\Models\Ai\AiBlog;
use App\Models\Project\AiBlogTask;
use App\Models\Project\Project;
use App\Models\Project\ProjectAiSetting;
use App\Services\AiBlogService;

class AiBlogLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->param = $this->requestAll;
        $this->model = new AiBlog();
    }

    /**
     * @remark :ai发布博客
     * @name   :blogSave
     * @author :lyh
     * @method :post
     * @time   :2023/7/5 14:46
     */
    public function blogSave(){
        $this->param['project_id'] = $this->user['project_id'];
        $rs = $this->model->add($this->param);
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @remark :发布任务
     * @name   :sendTask
     * @author :lyh
     * @method :post
     * @time   :2025/2/14 10:28
     */
    public function sendTask(){
        $projectAiSettingModel = new ProjectAiSetting();
        $aiSettingInfo = $projectAiSettingModel->read(['project_id'=>$this->user['project_id']]);
        if($aiSettingInfo === false){
            $this->fail('请先联系管理员开启Ai博客');
        }
        $aiBlogService = new AiBlogService();
        $aiBlogService->mch_id = $aiSettingInfo['mch_id'];
        $aiBlogService->key = $aiSettingInfo['key'];
        $result = $aiBlogService->createTask($this->param['keyword'],$this->param['type']);
        if($result['status'] == 200){
            try {
                $aiBlogTaskModel = new AiBlogTask();
                $aiBlogTaskModel->addReturnId(['project_id'=>$this->user['project_id'],'task_id'=>$result['data']['task_id'],'status'=>$result['data']['status']]);
                $aiBlogModel = new AiBlog();
                $aiBlogModel->addReturnId(['keyword'=>$this->param['keyword'], 'status'=>$result['data']['status'], 'task_id'=>$result['data']['task_id'],'project_id'=>$this->user['project_id'],
                ]);
            }catch (\Exception $e){
                $this->fail('请求ai_blog失败,请联系管理员');
            }
        }
        return $this->success();
    }
}