作者 lyh

gx

@@ -14,6 +14,7 @@ use App\Models\File\File as FileModel; @@ -14,6 +14,7 @@ use App\Models\File\File as FileModel;
14 use App\Models\File\Image; 14 use App\Models\File\Image;
15 use App\Models\File\Image as ImageModel; 15 use App\Models\File\Image as ImageModel;
16 use App\Models\Product\Keyword; 16 use App\Models\Product\Keyword;
  17 +use App\Models\Project\DeployOptimize;
17 use App\Models\Project\Project; 18 use App\Models\Project\Project;
18 use App\Services\AmazonS3Service; 19 use App\Services\AmazonS3Service;
19 use App\Services\ProjectServer; 20 use App\Services\ProjectServer;
@@ -140,12 +141,7 @@ class Demo extends Command @@ -140,12 +141,7 @@ class Demo extends Command
140 // } 141 // }
141 142
142 public function handle(){ 143 public function handle(){
143 - $keywordModel = new KeywordVideoTask();  
144 - $lists = $keywordModel->list(['keywords'=>['!=',null]]);  
145 - foreach ($lists as $v){  
146 - $keywords = str_replace(["\r\n", "\r", "\n"], ',', $v['keywords']);  
147 - $keywordModel->edit(['keywords'=>$keywords],['id'=>$v['id']]);  
148 - }  
149 - return true; 144 + $deployOptimizeModel = new DeployOptimize();
  145 +// $deployOptimizeModel->
150 } 146 }
151 } 147 }
@@ -56,6 +56,13 @@ class HeaderFooter extends Command @@ -56,6 +56,13 @@ class HeaderFooter extends Command
56 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; 56 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
57 } 57 }
58 58
  59 + /**
  60 + * @remark :头部底部分开脚本
  61 + * @name :saveTemplateCom
  62 + * @author :lyh
  63 + * @method :post
  64 + * @time :2024/6/17 14:46
  65 + */
59 public function saveTemplateCom($project_id){ 66 public function saveTemplateCom($project_id){
60 //获取当前项目选择的模版 67 //获取当前项目选择的模版
61 $settingModel = new Setting(); 68 $settingModel = new Setting();
@@ -389,6 +389,23 @@ class ProjectController extends BaseController @@ -389,6 +389,23 @@ class ProjectController extends BaseController
389 } 389 }
390 390
391 /** 391 /**
  392 + * @remark :逻辑删除
  393 + * @name :deleteMinorLanguages
  394 + * @author :lyh
  395 + * @method :post
  396 + * @time :2024/6/18 11:53
  397 + */
  398 + public function deleteMinorLanguages(ProjectLogic $logic){
  399 + $this->request->validate([
  400 + 'id'=>'required'
  401 + ],[
  402 + 'id.required' => 'ID不能为空'
  403 + ]);
  404 + $data = $logic->deleteMinorLanguages();
  405 + $this->response('success',Code::SUCCESS,$data);
  406 + }
  407 +
  408 + /**
392 * @remark :保存数据 409 * @remark :保存数据
393 * @name :save 410 * @name :save
394 * @author :lyh 411 * @author :lyh
@@ -77,7 +77,6 @@ class ProjectLogic extends BaseLogic @@ -77,7 +77,6 @@ class ProjectLogic extends BaseLogic
77 public function getProjectInfo($id){ 77 public function getProjectInfo($id){
78 $info = $this->model->with(['payment', 'deploy_build', 'deploy_optimize', 'online_check', 'project_after','inquiry_filter_config','web_traffic_config'])->where(['id'=>$id])->first()->toArray(); 78 $info = $this->model->with(['payment', 'deploy_build', 'deploy_optimize', 'online_check', 'project_after','inquiry_filter_config','web_traffic_config'])->where(['id'=>$id])->first()->toArray();
79 $info['online_check']['name'] = (new Manage())->getName($info['online_check']['created_manage_id'] ?? 0); 79 $info['online_check']['name'] = (new Manage())->getName($info['online_check']['created_manage_id'] ?? 0);
80 - $info['deploy_optimize']['minor_keywords'] = !empty($info['deploy_optimize']['minor_keywords']) ? json_decode($info['deploy_optimize']['minor_keywords']) : [];  
81 $info['init_domain'] = $this->getInitDomain($info['serve_id'])['domain']; 80 $info['init_domain'] = $this->getInitDomain($info['serve_id'])['domain'];
82 if($info['extend_type'] != 0){ 81 if($info['extend_type'] != 0){
83 $info['type'] = $info['extend_type']; 82 $info['type'] = $info['extend_type'];
@@ -99,12 +98,27 @@ class ProjectLogic extends BaseLogic @@ -99,12 +98,27 @@ class ProjectLogic extends BaseLogic
99 if(isset($info['deploy_build']['other_project']) && !empty($info['deploy_build']['other_project'])){ 98 if(isset($info['deploy_build']['other_project']) && !empty($info['deploy_build']['other_project'])){
100 $info['deploy_build']['other_project']= json_decode($info['deploy_build']['other_project']); 99 $info['deploy_build']['other_project']= json_decode($info['deploy_build']['other_project']);
101 } 100 }
  101 + //获取小语种
  102 + $info['minor_languages'] = $this->getProjectMinorLanguages($id);
102 //升级项目采集完成时间 103 //升级项目采集完成时间
103 $info['collect_time'] = $info['is_upgrade'] ? UpdateLog::getProjectUpdate($id) : ''; 104 $info['collect_time'] = $info['is_upgrade'] ? UpdateLog::getProjectUpdate($id) : '';
104 return $this->success($info); 105 return $this->success($info);
105 } 106 }
106 107
107 /** 108 /**
  109 + * @remark :获取当前项目的小语种配置
  110 + * @name :getProjectMinorLanguages
  111 + * @author :lyh
  112 + * @method :post
  113 + * @time :2024/6/18 11:05
  114 + */
  115 + public function getProjectMinorLanguages($project_id){
  116 + $projectMinorLanguagesModel = new MinorLanguages();
  117 + $lists = $projectMinorLanguagesModel->list(['project_id'=>$project_id]);
  118 + return $this->success($lists);
  119 + }
  120 +
  121 + /**
108 * @remark :获取初始域名 122 * @remark :获取初始域名
109 * @name :getInitDomain 123 * @name :getInitDomain
110 * @author :lyh 124 * @author :lyh
@@ -131,8 +145,8 @@ class ProjectLogic extends BaseLogic @@ -131,8 +145,8 @@ class ProjectLogic extends BaseLogic
131 * @time :2023/8/30 11:57 145 * @time :2023/8/30 11:57
132 */ 146 */
133 public function projectSave(){ 147 public function projectSave(){
134 -// DB::beginTransaction();  
135 -// try { 148 + DB::beginTransaction();
  149 + try {
136 if($this->param['type'] == Project::TYPE_SEVEN){ 150 if($this->param['type'] == Project::TYPE_SEVEN){
137 //错误单直接返回,单独处理 151 //错误单直接返回,单独处理
138 $this->setTypeSevenEdit($this->param); 152 $this->setTypeSevenEdit($this->param);
@@ -149,18 +163,28 @@ class ProjectLogic extends BaseLogic @@ -149,18 +163,28 @@ class ProjectLogic extends BaseLogic
149 $this->saveProjectDeployOptimize($this->param['deploy_optimize']); 163 $this->saveProjectDeployOptimize($this->param['deploy_optimize']);
150 //保存售后信息 164 //保存售后信息
151 $this->saveProjectAfter($this->param['project_after']); 165 $this->saveProjectAfter($this->param['project_after']);
152 - $this->saveMinorLanguages($this->param['deploy_optimize']['minor_languages'] ?? []); 166 + //单独保存小语种配置
  167 + $this->saveMinorLanguages($this->param['minor_languages'] ?? [],$this->param['id']);
  168 + //同步图片文件
153 $this->syncImageFile($this->param['project_location'],$this->param['id']); 169 $this->syncImageFile($this->param['project_location'],$this->param['id']);
  170 + //同步信息表
154 (new SyncService())->projectAcceptAddress($this->param['id']); 171 (new SyncService())->projectAcceptAddress($this->param['id']);
155 } 172 }
156 -// DB::commit();  
157 -// }catch (\Exception $e){  
158 -// DB::rollBack();  
159 -// $this->fail('保存失败,请联系管理员');  
160 -// } 173 + DB::commit();
  174 + }catch (\Exception $e){
  175 + DB::rollBack();
  176 + $this->fail('保存失败,请联系管理员');
  177 + }
161 return $this->success(); 178 return $this->success();
162 } 179 }
163 180
  181 + /**
  182 + * @remark :危险项目同步图片与文件
  183 + * @name :syncImageFile
  184 + * @author :lyh
  185 + * @method :post
  186 + * @time :2024/6/18 10:51
  187 + */
164 public function syncImageFile($location,$project_id){ 188 public function syncImageFile($location,$project_id){
165 if($location == 1){ 189 if($location == 1){
166 CopyImageFileJob::dispatch(['project_id'=>$project_id]); 190 CopyImageFileJob::dispatch(['project_id'=>$project_id]);
@@ -176,6 +200,8 @@ class ProjectLogic extends BaseLogic @@ -176,6 +200,8 @@ class ProjectLogic extends BaseLogic
176 * @time :2023/8/30 12:14 200 * @time :2023/8/30 12:14
177 */ 201 */
178 public function saveProject($param){ 202 public function saveProject($param){
  203 +// unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],
  204 +// $param['online_check'],$param['project_after'],$param['inquiry_filter_config'],$param['minor_languages']);
179 if((($param['type'] == Project::TYPE_TWO) || ($param['type'] == Project::TYPE_THREE)) && empty($param['uptime'])){ 205 if((($param['type'] == Project::TYPE_TWO) || ($param['type'] == Project::TYPE_THREE)) && empty($param['uptime'])){
180 $param['uptime'] = date('Y-m-d H:i:s'); 206 $param['uptime'] = date('Y-m-d H:i:s');
181 } 207 }
@@ -207,8 +233,6 @@ class ProjectLogic extends BaseLogic @@ -207,8 +233,6 @@ class ProjectLogic extends BaseLogic
207 } 233 }
208 $param['remain_day'] = $param['deploy_build']['service_duration'] - $param['finish_remain_day']; 234 $param['remain_day'] = $param['deploy_build']['service_duration'] - $param['finish_remain_day'];
209 $param['remain_day'] = ($param['remain_day'] > 0) ? $param['remain_day'] : 0; 235 $param['remain_day'] = ($param['remain_day'] > 0) ? $param['remain_day'] : 0;
210 - unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],  
211 - $param['online_check'],$param['project_after'],$param['inquiry_filter_config'],$param['minor_language']);  
212 //文件上传默认值 236 //文件上传默认值
213 if($param['is_upload_manage']){ 237 if($param['is_upload_manage']){
214 $param['upload_config'] = [ 238 $param['upload_config'] = [
@@ -278,9 +302,7 @@ class ProjectLogic extends BaseLogic @@ -278,9 +302,7 @@ class ProjectLogic extends BaseLogic
278 //更改域名 302 //更改域名
279 $this->editDomainStatus($deploy_optimize['domain'],$deploy_optimize['project_id']); 303 $this->editDomainStatus($deploy_optimize['domain'],$deploy_optimize['project_id']);
280 } 304 }
281 - $deploy_optimize['minor_languages'] = Arr::a2s($deploy_optimize['minor_languages'] ?? []);  
282 $deploy_optimize['g_top_plan'] = Arr::a2s($deploy_optimize['g_top_plan'] ?? []); 305 $deploy_optimize['g_top_plan'] = Arr::a2s($deploy_optimize['g_top_plan'] ?? []);
283 - $deploy_optimize['minor_keywords'] = Arr::a2s(!empty($deploy_optimize['minor_keywords']) ? $deploy_optimize['minor_keywords'] : []);  
284 $deploy_optimize['special'] = !empty($deploy_optimize['special']) ? ','.trim($deploy_optimize['special'],',').',' : ''; 306 $deploy_optimize['special'] = !empty($deploy_optimize['special']) ? ','.trim($deploy_optimize['special'],',').',' : '';
285 //是否更新了api_no 307 //是否更新了api_no
286 $api_no = DeployOptimize::where('id', $deploy_optimize['id'])->value('api_no'); 308 $api_no = DeployOptimize::where('id', $deploy_optimize['id'])->value('api_no');
@@ -324,30 +346,40 @@ class ProjectLogic extends BaseLogic @@ -324,30 +346,40 @@ class ProjectLogic extends BaseLogic
324 * @method :post 346 * @method :post
325 * @time :2023/8/30 13:57 347 * @time :2023/8/30 13:57
326 */ 348 */
327 - protected function saveMinorLanguages($minor_language){ 349 + protected function saveMinorLanguages($minor_language,$project_id){
328 $data = []; 350 $data = [];
329 - //查询数据是否存在  
330 $languageModel = new MinorLanguages(); 351 $languageModel = new MinorLanguages();
331 - $languageModel->del(['project_id'=>$this->param['id']]);  
332 if(!empty($minor_language)){ 352 if(!empty($minor_language)){
333 $webLanguageModel = new WebLanguage(); 353 $webLanguageModel = new WebLanguage();
334 $result = []; 354 $result = [];
335 - foreach ($minor_language as $k => $v){ 355 + foreach ($minor_language as $v){
336 if(!empty($v['lang'])){ 356 if(!empty($v['lang'])){
337 $zh = $webLanguageModel->read(['short'=>$v['lang']],['chinese']); 357 $zh = $webLanguageModel->read(['short'=>$v['lang']],['chinese']);
338 - if(empty($zh)){ 358 + if($zh === false){
339 continue; 359 continue;
340 } 360 }
341 - //获取小语种达标天数  
342 - $result['language'] = $zh['chinese'];  
343 - $result['lang'] = $v['lang'];  
344 - $result['created_at'] = date('Y-m-d H:i:s');  
345 - $result['updated_at'] = date('Y-m-d H:i:s');  
346 - $result['project_id'] = $this->param['id'];  
347 - $result['service_day'] = $v['service_day'];  
348 - $result['type'] = $v['type'];  
349 - $result['keywords'] = $v['keywords'];  
350 - $data[] = $result; 361 + $info = $languageModel->read(['lang'=>$v['lang'],'project_id'=>$project_id]);
  362 + if($info === false){
  363 + //获取小语种达标天数
  364 + $result['language'] = $zh['chinese'];
  365 + $result['lang'] = $v['lang'];
  366 + $result['created_at'] = date('Y-m-d H:i:s');
  367 + $result['updated_at'] = date('Y-m-d H:i:s');
  368 + $result['project_id'] = $project_id;
  369 + $result['service_day'] = $v['service_day'] ?? 50;
  370 + $result['type'] = $v['type'] ?? 0;
  371 + $result['keywords'] = $v['keywords'] ?? 50;
  372 + $result['minor_keywords'] = $v['minor_keywords'] ?? '';
  373 + $data[] = $result;
  374 + }else{
  375 + $editParam = [
  376 + 'service_day'=>$v['service_day'],
  377 + 'type'=>$v['type'],
  378 + 'keywords'=>$v['keywords'],
  379 + 'minor_keywords'=>$v['minor_keywords'],
  380 + ];
  381 + $languageModel->edit($editParam,['id'=>$info['id']]);
  382 + }
351 } 383 }
352 } 384 }
353 if(!empty($data)){ 385 if(!empty($data)){
@@ -358,6 +390,18 @@ class ProjectLogic extends BaseLogic @@ -358,6 +390,18 @@ class ProjectLogic extends BaseLogic
358 } 390 }
359 391
360 /** 392 /**
  393 + * @remark :删除小语种(主键id)
  394 + * @name :deleteMinorLanguages
  395 + * @author :lyh
  396 + * @method :post
  397 + * @time :2024/6/18 11:32
  398 + */
  399 + public function deleteMinorLanguages(){
  400 + $languageModel = new MinorLanguages();
  401 + return $languageModel->edit(['is_delete'=>1],['id'=>$this->param['id']]);
  402 + }
  403 +
  404 + /**
361 * @remark :创建初始数据 405 * @remark :创建初始数据
362 * @name :createProjectData 406 * @name :createProjectData
363 * @author :lyh 407 * @author :lyh
@@ -95,7 +95,7 @@ class Base extends Model @@ -95,7 +95,7 @@ class Base extends Model
95 * @time :2023/8/21 17:18 95 * @time :2023/8/21 17:18
96 */ 96 */
97 public function add($data){ 97 public function add($data){
98 - $data = $this->filterRequestData($data,$this->table); 98 + $data = $this->filterRequestData($data);
99 $data['created_at'] = date('Y-m-d H:i:s'); 99 $data['created_at'] = date('Y-m-d H:i:s');
100 $data['updated_at'] = $data['created_at']; 100 $data['updated_at'] = $data['created_at'];
101 return $this->insert($data); 101 return $this->insert($data);
@@ -109,7 +109,7 @@ class Base extends Model @@ -109,7 +109,7 @@ class Base extends Model
109 * @time :2023/8/21 17:17 109 * @time :2023/8/21 17:17
110 */ 110 */
111 public function addReturnId($data){ 111 public function addReturnId($data){
112 - $data = $this->filterRequestData($data,$this->table); 112 + $data = $this->filterRequestData($data);
113 $data['created_at'] = date('Y-m-d H:i:s'); 113 $data['created_at'] = date('Y-m-d H:i:s');
114 $data['updated_at'] = $data['created_at']; 114 $data['updated_at'] = $data['created_at'];
115 return $this->insertGetId($data); 115 return $this->insertGetId($data);
@@ -126,7 +126,7 @@ class Base extends Model @@ -126,7 +126,7 @@ class Base extends Model
126 if(isset($data['id']) && !empty($data['id'])){ 126 if(isset($data['id']) && !empty($data['id'])){
127 unset($data['id']); 127 unset($data['id']);
128 } 128 }
129 - $data = $this->filterRequestData($data,$this->table); 129 + $data = $this->filterRequestData($data);
130 $query = $this->formatQuery($condition); 130 $query = $this->formatQuery($condition);
131 $data['updated_at'] = date('Y-m-d H:i:s'); 131 $data['updated_at'] = date('Y-m-d H:i:s');
132 return $query->update($data); 132 return $query->update($data);
@@ -261,10 +261,10 @@ class Base extends Model @@ -261,10 +261,10 @@ class Base extends Model
261 * @method :post 261 * @method :post
262 * @time :2024/6/14 10:49 262 * @time :2024/6/14 10:49
263 */ 263 */
264 - public function filterRequestData(array $data, $table) 264 + public function filterRequestData(array $data)
265 { 265 {
266 // 获取表的字段列表 266 // 获取表的字段列表
267 - $columns = Schema::connection($this->connection)->getColumnListing($table); 267 + $columns = Schema::connection($this->connection)->getColumnListing($this->table);
268 // 过滤数据 268 // 过滤数据
269 return array_filter($data, function ($key) use ($columns) { 269 return array_filter($data, function ($key) use ($columns) {
270 return in_array($key, $columns); 270 return in_array($key, $columns);
@@ -162,6 +162,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -162,6 +162,7 @@ Route::middleware(['aloginauth'])->group(function () {
162 Route::get('/', [Aside\Project\ProjectController::class, 'lists'])->name('admin.project'); 162 Route::get('/', [Aside\Project\ProjectController::class, 'lists'])->name('admin.project');
163 Route::get('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info'); 163 Route::get('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info');
164 Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save'); 164 Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save');
  165 + Route::get('/deleteMinorLanguages', [Aside\Project\ProjectController::class, 'deleteMinorLanguages'])->name('admin.project_deleteMinorLanguages');
165 Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set'); 166 Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set');
166 Route::any('/get_process_records', [Aside\Project\ProjectController::class, 'get_process_records'])->name('admin.project_get_process_records'); 167 Route::any('/get_process_records', [Aside\Project\ProjectController::class, 'get_process_records'])->name('admin.project_get_process_records');
167 Route::any('/save_process_records', [Aside\Project\ProjectController::class, 'save_process_records'])->name('admin.project_save_process_records'); 168 Route::any('/save_process_records', [Aside\Project\ProjectController::class, 'save_process_records'])->name('admin.project_save_process_records');