作者 ZhengBing He

Merge remote-tracking branch 'origin/master' into workorder

@@ -73,7 +73,7 @@ class AiVideoAutoPublish extends Command @@ -73,7 +73,7 @@ class AiVideoAutoPublish extends Command
73 $this->output('开始自动发布Video文章'); 73 $this->output('开始自动发布Video文章');
74 $projectModel = new Project(); 74 $projectModel = new Project();
75 $optimizeModel = new DeployOptimize(); 75 $optimizeModel = new DeployOptimize();
76 - $projectList = $projectModel->list(['is_ai_video'=>1,'delete_status'=>0,'site_status'=>0,'extend_type'=>0],'id',['id','project_type']); 76 + $projectList = $projectModel->list(['is_ai_video'=>1,'id'=>1,'delete_status'=>0,'site_status'=>0,'extend_type'=>0],'id',['id','project_type']);
77 foreach ($projectList as $item){ 77 foreach ($projectList as $item){
78 $this->output("项目{$item['id']}开始自动发布"); 78 $this->output("项目{$item['id']}开始自动发布");
79 //获取当前是否开启自动发布aiVideo 79 //获取当前是否开启自动发布aiVideo
@@ -121,7 +121,7 @@ class AiVideoAutoPublish extends Command @@ -121,7 +121,7 @@ class AiVideoAutoPublish extends Command
121 */ 121 */
122 public function getVideoInfo(){ 122 public function getVideoInfo(){
123 $data = []; 123 $data = [];
124 - $random = 2; 124 + $random = rand(1, 2);
125 if($random == 1){//取产品 125 if($random == 1){//取产品
126 $productModel = new Product(); 126 $productModel = new Product();
127 $info = $productModel->formatQuery(['status'=>1,'title'=>['!=',null],'intro'=>['!=',null]])->select(['title','gallery','intro'])->inRandomOrder()->first(); 127 $info = $productModel->formatQuery(['status'=>1,'title'=>['!=',null],'intro'=>['!=',null]])->select(['title','gallery','intro'])->inRandomOrder()->first();
@@ -247,7 +247,8 @@ class AiVideoAutoPublish extends Command @@ -247,7 +247,8 @@ class AiVideoAutoPublish extends Command
247 $aiVideoTaskModel->addReturnId(['task_id'=>$result['data']['task_id'],'project_id'=>$info['project_id'],'storage'=>$storage]); 247 $aiVideoTaskModel->addReturnId(['task_id'=>$result['data']['task_id'],'project_id'=>$info['project_id'],'storage'=>$storage]);
248 ProjectServer::useProject($info['project_id']); 248 ProjectServer::useProject($info['project_id']);
249 $aiVideoModel = new AiVideo(); 249 $aiVideoModel = new AiVideo();
250 - $aiVideoModel->addReturnId(['title'=>$info['title'],'task_id'=>$result['data']['task_id'],'description'=>$info['remark'],'project_id'=>$info['project_id'],'images'=>json_encode($info['images'],true),'anchor'=>json_encode([],true)]); 250 + $next_auto_date = date('Y-m-d', strtotime('+' . mt_rand(5,7) . 'days')); //每5-7天自动发布
  251 + $aiVideoModel->addReturnId(['next_auto_date'=>$next_auto_date,'title'=>$info['title'],'task_id'=>$result['data']['task_id'],'description'=>$info['remark'],'project_id'=>$info['project_id'],'images'=>json_encode($info['images'],true),'anchor'=>json_encode([],true)]);
251 DB::disconnect('custom_mysql'); 252 DB::disconnect('custom_mysql');
252 $aiVideoAutoLogModel->edit(['status'=>2],['id'=>$info['id']]); 253 $aiVideoAutoLogModel->edit(['status'=>2],['id'=>$info['id']]);
253 } 254 }
@@ -10,6 +10,7 @@ use App\Http\Logic\Aside\Project\OnlineCheckLogic; @@ -10,6 +10,7 @@ use App\Http\Logic\Aside\Project\OnlineCheckLogic;
10 use App\Http\Logic\Aside\Project\ProcessRecordsLogic; 10 use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
11 use App\Http\Logic\Aside\Project\ProjectLogic; 11 use App\Http\Logic\Aside\Project\ProjectLogic;
12 use App\Http\Requests\Aside\Project\ProcessRecordsRequest; 12 use App\Http\Requests\Aside\Project\ProcessRecordsRequest;
  13 +use App\Models\Ai\AiVideo;
13 use App\Models\ASide\APublicModel; 14 use App\Models\ASide\APublicModel;
14 use App\Models\Channel\Channel; 15 use App\Models\Channel\Channel;
15 use App\Models\Channel\User; 16 use App\Models\Channel\User;
@@ -27,7 +28,9 @@ use App\Models\Industry\ProjectIndustry; @@ -27,7 +28,9 @@ use App\Models\Industry\ProjectIndustry;
27 use App\Models\Inquiry\InquirySet; 28 use App\Models\Inquiry\InquirySet;
28 use App\Models\Manage\BelongingGroup; 29 use App\Models\Manage\BelongingGroup;
29 use App\Models\Manage\ManageHr; 30 use App\Models\Manage\ManageHr;
  31 +use App\Models\Project\AiVideoTask;
30 use App\Models\Project\DeployBuild; 32 use App\Models\Project\DeployBuild;
  33 +use App\Models\Project\DeployOptimize;
31 use App\Models\Project\Payment; 34 use App\Models\Project\Payment;
32 use App\Models\Project\ProcessRecords; 35 use App\Models\Project\ProcessRecords;
33 use App\Models\Project\Project; 36 use App\Models\Project\Project;
@@ -1285,4 +1288,16 @@ class ProjectController extends BaseController @@ -1285,4 +1288,16 @@ class ProjectController extends BaseController
1285 $this->response('success',Code::SUCCESS,['url'=>$this->param['url']]); 1288 $this->response('success',Code::SUCCESS,['url'=>$this->param['url']]);
1286 } 1289 }
1287 1290
  1291 + /**
  1292 + * @remark :获取视频配置类型
  1293 + * @name :videoSetting
  1294 + * @author :lyh
  1295 + * @method :post
  1296 + * @time :2025/8/5 9:50
  1297 + */
  1298 + public function videoSetting(){
  1299 + $videoModel = new AiVideoTask();
  1300 + $data = $videoModel->videoSetting();
  1301 + $this->response('success',Code::SUCCESS,$data);
  1302 + }
1288 } 1303 }
@@ -169,14 +169,20 @@ class DomainSettingLogic extends BaseLogic @@ -169,14 +169,20 @@ class DomainSettingLogic extends BaseLogic
169 $this->fail('ftp信息填写未完整'); 169 $this->fail('ftp信息填写未完整');
170 } 170 }
171 171
172 - //获取自建站服务器详情  
173 - $record_info = $server_ip_model->read(['servers_id' => ServerConfig::SELF_SITE_ID], ['id', 'servers_id', 'total']);  
174 - if (!$record_info) {  
175 - $this->fail('解析记录不存在');  
176 - }  
177 -  
178 DB::beginTransaction(); 172 DB::beginTransaction();
179 try { 173 try {
  174 + //获取自建站服务器详情
  175 + $record_info = $server_ip_model->read(['servers_id' => ServerConfig::SELF_SITE_ID, 'ip' => $ftp['url']], ['id', 'servers_id', 'total']);
  176 + if (!$record_info) {
  177 + $record_id = $server_ip_model->addReturnId([
  178 + 'servers_id' => ServerConfig::SELF_SITE_ID,
  179 + 'ip' => $ftp['url'],
  180 + 'domain' => $domain,
  181 + 'remark' => $project_info['company']
  182 + ]);
  183 + $record_info = $server_ip_model->read(['id' => $record_id], ['id', 'servers_id', 'total']);
  184 + }
  185 +
180 //保存一条主域名记录 186 //保存一条主域名记录
181 $setting_info = $this->model->read(['project_id' => $this->user['project_id']]); 187 $setting_info = $this->model->read(['project_id' => $this->user['project_id']]);
182 if ($setting_info === false) { 188 if ($setting_info === false) {
@@ -205,6 +205,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -205,6 +205,7 @@ Route::middleware(['aloginauth'])->group(function () {
205 Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词 205 Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词
206 Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus'); 206 Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus');
207 Route::any('/updateTdk', [Aside\Project\ProjectController::class, 'updateTdk'])->name('admin.project_updateTdk');//更新项目tdk 207 Route::any('/updateTdk', [Aside\Project\ProjectController::class, 'updateTdk'])->name('admin.project_updateTdk');//更新项目tdk
  208 + Route::any('/videoSetting', [Aside\Project\ProjectController::class, 'videoSetting'])->name('admin.project_videoSetting');//项目管理AI.video设置
208 //获取关键词前缀和后缀 209 //获取关键词前缀和后缀
209 Route::prefix('keyword')->group(function () { 210 Route::prefix('keyword')->group(function () {
210 Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix'); 211 Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix');