作者 lyh

gx

@@ -2,10 +2,14 @@ @@ -2,10 +2,14 @@
2 2
3 namespace App\Http\Controllers\Bside\Ai; 3 namespace App\Http\Controllers\Bside\Ai;
4 4
  5 +use App\Enums\Common\Code;
5 use App\Http\Controllers\Bside\BaseController; 6 use App\Http\Controllers\Bside\BaseController;
6 use App\Http\Logic\Bside\Ai\AiBlogLogic; 7 use App\Http\Logic\Bside\Ai\AiBlogLogic;
7 use App\Http\Requests\Bside\Ai\AiBlogRequest; 8 use App\Http\Requests\Bside\Ai\AiBlogRequest;
  9 +use App\Models\Ai\AiBlog;
8 use App\Services\AiBlogService; 10 use App\Services\AiBlogService;
  11 +use App\Services\ProjectServer;
  12 +use Illuminate\Support\Facades\DB;
9 13
10 class AiBlogController extends BaseController 14 class AiBlogController extends BaseController
11 { 15 {
@@ -22,5 +26,23 @@ class AiBlogController extends BaseController @@ -22,5 +26,23 @@ class AiBlogController extends BaseController
22 $this->response('success'); 26 $this->response('success');
23 } 27 }
24 28
25 - 29 + /**
  30 + * @remark :发布任务
  31 + * @name :sendTask
  32 + * @author :lyh
  33 + * @method :post
  34 + * @time :2025/2/14 10:25
  35 + */
  36 + public function sendTask(AiBlogLogic $aiBlogLogic){
  37 + $this->request->validate([
  38 + 'keyword'=>['required'],
  39 + 'type'=>['required']
  40 + ],[
  41 + 'keyword.required' => '关键字不能为空',
  42 + 'type.required' => '场景不能为空',
  43 + ]);
  44 + //获取当前项目的ai_blog设置
  45 + $result = $aiBlogLogic->sendTask();
  46 + $this->response('success',Code::SUCCESS,$result);
  47 + }
26 } 48 }
@@ -4,6 +4,10 @@ namespace App\Http\Logic\Bside\Ai; @@ -4,6 +4,10 @@ namespace App\Http\Logic\Bside\Ai;
4 4
5 use App\Http\Logic\Bside\BaseLogic; 5 use App\Http\Logic\Bside\BaseLogic;
6 use App\Models\Ai\AiBlog; 6 use App\Models\Ai\AiBlog;
  7 +use App\Models\Project\AiBlogTask;
  8 +use App\Models\Project\Project;
  9 +use App\Models\Project\ProjectAiSetting;
  10 +use App\Services\AiBlogService;
7 11
8 class AiBlogLogic extends BaseLogic 12 class AiBlogLogic extends BaseLogic
9 { 13 {
@@ -29,4 +33,35 @@ class AiBlogLogic extends BaseLogic @@ -29,4 +33,35 @@ class AiBlogLogic extends BaseLogic
29 } 33 }
30 return $this->success(); 34 return $this->success();
31 } 35 }
  36 +
  37 + /**
  38 + * @remark :发布任务
  39 + * @name :sendTask
  40 + * @author :lyh
  41 + * @method :post
  42 + * @time :2025/2/14 10:28
  43 + */
  44 + public function sendTask(){
  45 + $projectAiSettingModel = new ProjectAiSetting();
  46 + $aiSettingInfo = $projectAiSettingModel->read(['project_id'=>$this->user['project_id']]);
  47 + if($aiSettingInfo === false){
  48 + $this->fail('请先联系管理员开启Ai博客');
  49 + }
  50 + $aiBlogService = new AiBlogService();
  51 + $aiBlogService->mch_id = $aiSettingInfo['mch_id'];
  52 + $aiBlogService->key = $aiSettingInfo['key'];
  53 + $result = $aiBlogService->createTask($this->param['keyword'],$this->param['type']);
  54 + if($result['status'] == 200){
  55 + try {
  56 + $aiBlogTaskModel = new AiBlogTask();
  57 + $aiBlogTaskModel->addReturnId(['project_id'=>$this->user['project_id'],'task_id'=>$result['data']['task_id'],'status'=>$result['data']['status']]);
  58 + $aiBlogModel = new AiBlog();
  59 + $aiBlogModel->addReturnId(['keywords'=>$this->param['keyword'], 'status'=>$result['data']['status'], 'task_id'=>$result['data']['task_id'],'project_id'=>$this->user['project_id'],
  60 + ]);
  61 + }catch (\Exception $e){
  62 + $this->fail('请求ai_blog失败,请联系管理员');
  63 + }
  64 + }
  65 + return $this->success();
  66 + }
32 } 67 }
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :AiBlogTask.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2025/2/14 11:03
  8 + */
  9 +
  10 +namespace App\Models\Project;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +class AiBlogTask extends Base
  15 +{
  16 + protected $table = 'gl_ai_blog_task';
  17 +}
@@ -154,6 +154,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -154,6 +154,7 @@ Route::middleware(['bloginauth'])->group(function () {
154 //ai 154 //ai
155 Route::any('/news/', [\App\Http\Controllers\Bside\Ai\AiNewsController::class, 'save'])->name('ai_news_save'); 155 Route::any('/news/', [\App\Http\Controllers\Bside\Ai\AiNewsController::class, 'save'])->name('ai_news_save');
156 Route::any('/blog/', [\App\Http\Controllers\Bside\Ai\AiBlogController::class, 'save'])->name('ai_blog_save'); 156 Route::any('/blog/', [\App\Http\Controllers\Bside\Ai\AiBlogController::class, 'save'])->name('ai_blog_save');
  157 + Route::any('/blog/sendTask', [\App\Http\Controllers\Bside\Ai\AiBlogController::class, 'sendTask'])->name('ai_blog_sendTask');
157 Route::any('/product/', [\App\Http\Controllers\Bside\Ai\AiProductController::class, 'save'])->name('ai_product_save'); 158 Route::any('/product/', [\App\Http\Controllers\Bside\Ai\AiProductController::class, 'save'])->name('ai_product_save');
158 Route::any('/product/productList', [\App\Http\Controllers\Bside\Ai\AiProductController::class, 'productList'])->name('ai_product_productList'); 159 Route::any('/product/productList', [\App\Http\Controllers\Bside\Ai\AiProductController::class, 'productList'])->name('ai_product_productList');
159 Route::any('/product/productCateList', [\App\Http\Controllers\Bside\Ai\AiProductController::class, 'productCateList'])->name('ai_product_productCateList'); 160 Route::any('/product/productCateList', [\App\Http\Controllers\Bside\Ai\AiProductController::class, 'productCateList'])->name('ai_product_productCateList');