GeoWritingTaskController.php
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
/**
* @remark :
* @name :GeoWritingTaskController.php
* @author :lyh
* @method :post
* @time :2025/10/25 10:40
*/
namespace App\Http\Controllers\Aside\Geo;
use App\Enums\Common\Code;
use App\Helper\Gpt;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Geo\GeoWritingsTaskLogic;
use App\Http\Requests\Aside\Geo\GeoWritingsTaskRequest;
use Illuminate\Http\Request;
/**
* @remark :文章任务(收集数据)
* @name :GeoWritingTaskController
* @author :lyh
* @method :post
* @time :2025/10/25 10:40
*/
class GeoWritingTaskController extends BaseController
{
public function __construct(Request $request)
{
parent::__construct($request);
$this->logic = new GeoWritingsTaskLogic();
}
/**
* @remark :ai文章列表页
* @name :lists
* @author :lyh
* @method :post
* @time :2025/10/25 15:12
*/
public function lists(){
$this->request->validate([
'project_id'=>'required',
],[
'project_id.required' => 'project_id不能为空',
]);
$data = $this->logic->listWritingTask($this->map,$this->page,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :保存geoAi文章生成数据
* @name :lists
* @author :lyh
* @method :post
* @time :2025/10/25 10:41
*/
public function saveWritingTask(GeoWritingsTaskRequest $request){
$request->validated();
$data = $this->logic->saveWritingTask();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :批量删除文章任务
* @name :delWritingTask
* @author :lyh
* @method :post
* @time :2025/10/25 15:03
*/
public function delWritingTask(){
$this->request->validate([
'id'=>'required|array',
],[
'id.required' => 'ID不能为空',
'id.array' => 'ID为数组',
]);
$data = $this->logic->delWritingTask();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :Ai请求标题
* @name :sendAiTitle
* @author :lyh
* @method :post
* @time :2025/10/27 11:10
*/
public function sendAiTitle(){
$this->request->validate([
'company'=>'required',
'number'=>'required',
'prefix'=>'required',
'keyword'=>'required',
'suffix'=>'required',
'event_title'=>'required',
],[
'company.required' => '公司简称不能为空',
'number.required' => '生成数量不能为空',
'prefix.required' => '关键词前缀为数组',
'keyword.required' => '关键词不能为空',
'suffix.requiredrequired' => '关键词后缀不能为空',
'event_title.required' => '事件标题不能为空',
]);
$aiCommand = "请根据公司简称{$this->param['company']}和这个公司产品的关键词:{$this->param['prefix']}{$this->param['keyword']}{$this->param['suffix']},以及{$this->param['event_title']},帮我写{$this->param['number']}个有吸引力的英文新闻标题;确保这个标题在Google上面唯一存在的,只需要回复我标题,不需要别的内容(比如序号、你的提示、寒暄、解释、注释之类的) 标题不能超过 100 字符数!,一行一个";
$gptHelper = new Gpt();
$data = $gptHelper->openai_chat_qqs($aiCommand);
$this->response('success',Code::SUCCESS,$data);
}
}