UpdateController.php 5.0 KB
<?php
/**
 * @remark :
 * @name   :UpdateController.php
 * @author :lyh
 * @method :post
 * @time   :2023/8/19 9:08
 */

namespace App\Http\Controllers\Aside\Com;

use App\Helper\Common;
use App\Http\Controllers\Bside\BaseController;
use App\Services\ProjectServer;
use Illuminate\Support\Facades\DB;

/**
 * @remark :b端网站更新相关
 * @name   :UpdateController
 * @author :lyh
 * @method :post
 * @time   :2023/8/19 9:08
 */
class UpdateController extends BaseController
{
    /**
     * @remark :一键更新所有tdk
     * @name   :updateSeoTdk
     * @author :lyh
     * @method :post
     * @time   :2023/8/19 9:25
     */
    public function updateSeoTdk(){
        $this->request->validate([
            'project_id'=>'required',
        ],[
            'project_id.required' => 'project_id不能为空',
        ]);
        ProjectServer::useProject($this->param['project_id']);
        $this->updateProduct($this->param['project_id']);
        $this->updateBlogs($this->param['project_id']);
        $this->updateNews($this->param['project_id']);
        DB::disconnect('custom_mysql');
        $this->response('success');
    }

    /**
     * @remark :更新产品tdk
     * @name   :updateProduct
     * @author :lyh
     * @method :post
     * @time   :2023/8/19 9:25
     */
    public function updateProduct($project_id){
        $list = DB::connection('custom_mysql')->table('gl_product')->where(['status'=>1,'project_id'=>$project_id])->get()->toArray();
        if(!empty($list)){
            foreach ($list as $v){
                if(!empty($v['seo_mate'])){
                    $seo_arr = $v['seo_mate'];
                    //更新seo_title
                    if(!isset($seo_arr['title'])){
                        //生成seo_title
                        $seo_arr['title'] = $this->ai_send('product_seo_title',$v['title']);
                    }
                    //更新seo_keyword
                    if(!isset($seo_arr['keyword'])){
                        $seo_arr['keyword'] = $this->ai_send('product_seo_keyword',$v['title']);
                    }
                    //更新seo_keyword
                    if(!isset($seo_arr['description'])){
                        $seo_arr['description'] = $this->ai_send('product_seo_description',$v['title']);
                    }
                    $ser_str = json_encode($seo_arr,true);
                    DB::connection('custom_mysql')->table('gl_product')->where(['id'=>$v['id']])->update(['seo_mate'=>$ser_str]);
                }
            }
        }
        return true;
    }

    /**
     * @remark :更新新闻Tdk
     * @name   :updateNews
     * @author :lyh
     * @method :post
     * @time   :2023/8/19 10:06
     */
    public function updateNews($project_id){
        $list = DB::connection('custom_mysql')->table('gl_news')->where(['status'=>1,'project_id'=>$project_id])->get()->toArray();
        if(!empty($list)){
            foreach ($list as $k => $v){
                $data = [];
                if(empty($v['seo_title'])){
                    $data['seo_title'] = $this->ai_send('news_seo_title',$v['name']);
                }
                if(empty($v['seo_keywords'])){
                    $data['seo_keywords'] = $this->ai_send('news_seo_keyword',$v['name']);
                }
                if(empty($v['seo_description'])){
                    $data['seo_description'] = $this->ai_send('news_seo_description',$v['name']);
                }
                DB::connection('custom_mysql')->table('gl_news')->where(['id'=>$v['id']])->update($data);
            }
        }
        return true;
    }

    /**
     * @remark :更新blogTdk
     * @name   :updateBlogs
     * @author :lyh
     * @method :post
     * @time   :2023/8/19 10:07
     */
    public function updateBlogs($project_id){
        $list = DB::connection('custom_mysql')->table('gl_blog')->where(['status'=>1,'project_id'=>$project_id])->get()->toArray();
        if(!empty($list)){
            foreach ($list as $k => $v){
                $data = [];
                if(empty($v['seo_title'])){
                    $data['seo_title'] = $this->ai_send('blog_seo_title',$v['name']);
                }
                if(empty($v['seo_keywords'])){
                    $data['seo_keywords'] = $this->ai_send('blog_seo_keyword',$v['name']);
                }
                if(empty($v['seo_description'])){
                    $data['seo_description'] = $this->ai_send('blog_seo_description',$v['name']);
                }
                DB::connection('custom_mysql')->table('gl_product')->where(['id'=>$v['id']])->update($data);
            }
        }
        return true;
    }

    /**
     * @remark :AI发送
     * @name   :ai_send
     * @author :lyh
     * @method :post
     * @time   :2023/8/19 10:40
     */
    public function ai_send($key,$keywords){
        $chat_url = 'v2/openai_chat';
        $param = [
            'key'=>$key,
            'keywords'=>$keywords,
        ];
        $data = Common::send_openai_msg($chat_url,$param);
        return $data['text'];
    }
}