作者 刘锟

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

@@ -112,12 +112,13 @@ class GeoController extends BaseController @@ -112,12 +112,13 @@ class GeoController extends BaseController
112 } 112 }
113 $content = explode("\n", $data->content); 113 $content = explode("\n", $data->content);
114 $confirm = explode("\n", $data->confirm); 114 $confirm = explode("\n", $data->confirm);
  115 + $max_num = $data->max_num;
115 $type = $data->type; 116 $type = $data->type;
116 $status = $data->status; 117 $status = $data->status;
117 $projectModel = new Project(); 118 $projectModel = new Project();
118 $projectInfo = $projectModel->read(['id' => $data->project_id],['title','version']); 119 $projectInfo = $projectModel->read(['id' => $data->project_id],['title','version']);
119 $project_title = $projectInfo['title'] ?? ''; 120 $project_title = $projectInfo['title'] ?? '';
120 - $result = compact('content', 'confirm', 'type', 'status', 'project_title'); 121 + $result = compact('content', 'confirm', 'type', 'status', 'project_title','max_num');
121 $this->response('success',Code::SUCCESS,$result); 122 $this->response('success',Code::SUCCESS,$result);
122 } 123 }
123 124
@@ -273,6 +273,9 @@ class InquiryController extends BaseController @@ -273,6 +273,9 @@ class InquiryController extends BaseController
273 if (Str::startsWith($item[$field], '=')) { 273 if (Str::startsWith($item[$field], '=')) {
274 $item[$field] = "'" . $item[$field]; 274 $item[$field] = "'" . $item[$field];
275 } 275 }
  276 + if(is_numeric($item[$field])){
  277 + $item[$field] = $item[$field] ."\t";
  278 + }
276 } 279 }
277 } 280 }
278 281
@@ -71,9 +71,6 @@ class GeoConfirmLogic extends BaseLogic @@ -71,9 +71,6 @@ class GeoConfirmLogic extends BaseLogic
71 if($data === false){ 71 if($data === false){
72 return $this->success(); 72 return $this->success();
73 } 73 }
74 - if(empty($data['confirm'])){  
75 - $data['confirm'] = $data['content'];  
76 - }  
77 return $this->success($data); 74 return $this->success($data);
78 } 75 }
79 76
@@ -12,6 +12,7 @@ use App\Models\Project\Project; @@ -12,6 +12,7 @@ use App\Models\Project\Project;
12 use App\Models\Scoring\ScoringSystem; 12 use App\Models\Scoring\ScoringSystem;
13 use App\Models\Sms\SmsLog; 13 use App\Models\Sms\SmsLog;
14 use App\Models\User\User; 14 use App\Models\User\User;
  15 +use App\Models\WorkOrder\TicketProject;
15 use Illuminate\Support\Facades\Cache; 16 use Illuminate\Support\Facades\Cache;
16 17
17 class UserLoginLogic 18 class UserLoginLogic
@@ -257,6 +258,9 @@ class UserLoginLogic @@ -257,6 +258,9 @@ class UserLoginLogic
257 * @time :2024/11/5 16:51 258 * @time :2024/11/5 16:51
258 */ 259 */
259 public function handleInfo($info,$project){ 260 public function handleInfo($info,$project){
  261 + //根据项目获取工单uuid
  262 + $ticketProjectModel = new TicketProject();
  263 + $info['ticket_uuid'] = $ticketProjectModel->getValue(['project_cate'=>2,'table_id'=>$project['id']],'uuid') ?? '';
260 $info['title'] = $project['title'] ?? ''; 264 $info['title'] = $project['title'] ?? '';
261 $info['company'] = $project['company'] ?? ''; 265 $info['company'] = $project['company'] ?? '';
262 $info['from_order_id'] = $project['from_order_id'] ?? ''; 266 $info['from_order_id'] = $project['from_order_id'] ?? '';
@@ -45,9 +45,9 @@ class SyncImageFileJob implements ShouldQueue @@ -45,9 +45,9 @@ class SyncImageFileJob implements ShouldQueue
45 45
46 public function synchronizationFile($path_name){ 46 public function synchronizationFile($path_name){
47 //同步到大文件 47 //同步到大文件
48 - $file_path = config('filesystems.disks.cos')['cdn1'].$path_name;  
49 - $directoryPath = pathinfo($path_name, PATHINFO_DIRNAME);  
50 - $cmd = 'curl -k -F "file_path='.$file_path.'" -F "save_path=/www/wwwroot/cos'.$directoryPath.'" https://v6-file.globalso.com/upload.php'; 48 +// $file_path = config('filesystems.disks.cos')['cdn1'].$path_name;
  49 +// $directoryPath = pathinfo($path_name, PATHINFO_DIRNAME);
  50 + $cmd = 'curl -k -F "file_path='.$path_name.'" -F "save_path=/www/wwwroot/cos'.$path_name.'" https://v6-file.globalso.com/upload.php';
51 echo date('Y-m-d H:i:s') . ' | ' . $cmd . PHP_EOL; 51 echo date('Y-m-d H:i:s') . ' | ' . $cmd . PHP_EOL;
52 return shell_exec($cmd); 52 return shell_exec($cmd);
53 } 53 }
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 namespace App\Models\Geo; 8 namespace App\Models\Geo;
9 9
10 use App\Models\Base; 10 use App\Models\Base;
  11 +use App\Models\Project\DeployBuild;
11 use App\Models\Project\Project; 12 use App\Models\Project\Project;
12 use App\Models\Workchat\MessagePush; 13 use App\Models\Workchat\MessagePush;
13 14
@@ -55,11 +56,11 @@ class GeoConfirm extends Base @@ -55,11 +56,11 @@ class GeoConfirm extends Base
55 * @method :post 56 * @method :post
56 * @time :2025/10/31 10:10 57 * @time :2025/10/31 10:10
57 */ 58 */
58 - public static function typeDesc() 59 + public static function typeDesc($num = 10)
59 { 60 {
60 return [ 61 return [
61 - self::TYPE_TITLE => '需选择确认10个文章标题,后续根据您确认的文章标题整理文章内容;如有补充展会、资质证书等资料,可一并提供。',  
62 - self::TYPE_KEYWORD => '需选择确认10个核心关键词问题,后续根据您确认的核心关键词问题整理文章标题;建议提供展会、资质证书等资料。' 62 + self::TYPE_TITLE => '需选择确认'.$num.'个文章标题,后续根据您确认的文章标题整理文章内容;如有补充展会、资质证书等资料,可一并提供。',
  63 + self::TYPE_KEYWORD => '需选择确认'.$num.'个核心关键词问题,后续根据您确认的核心关键词问题整理文章标题;建议提供展会、资质证书等资料。'
63 ]; 64 ];
64 } 65 }
65 66
@@ -115,11 +116,11 @@ class GeoConfirm extends Base @@ -115,11 +116,11 @@ class GeoConfirm extends Base
115 $token = uniqid().$friend_id; 116 $token = uniqid().$friend_id;
116 $created_at = $updated_at = now(); 117 $created_at = $updated_at = now();
117 $projectModel = new Project(); 118 $projectModel = new Project();
118 - $projectInfo = $projectModel->read(['id'=>$project_id],['company','seo_plan']);  
119 - $seo_plan = ($projectModel::seoMap()[$projectInfo['seo_plan']]) ?? '无选择'; 119 + $company = $projectModel->getValue(['id'=>$project_id],'company');
  120 + $seo_plan_name = 'GEO';
120 $content_array = [ 121 $content_array = [
121 - 'title' => "【{$projectInfo['company']} {$seo_plan}】".self::typeMapping()[$data->type],  
122 - 'desc' => self::typeDesc()[$data->type], 122 + 'title' => "【{$company} {$seo_plan_name}】".self::typeMapping()[$data->type],
  123 + 'desc' => self::typeDesc($data->max_num)[$data->type],
123 'size' => 0, 124 'size' => 0,
124 'thumbSize' => 0, 125 'thumbSize' => 0,
125 'thumbUrl' => 'https://hub.globalso.com/logocm.png', 126 'thumbUrl' => 'https://hub.globalso.com/logocm.png',
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 namespace App\Models\Geo; 8 namespace App\Models\Geo;
9 9
10 use App\Models\Base; 10 use App\Models\Base;
  11 +use App\Models\Project\DeployBuild;
11 use App\Models\Project\Project; 12 use App\Models\Project\Project;
12 use App\Models\ProjectAssociation\ProjectAssociation; 13 use App\Models\ProjectAssociation\ProjectAssociation;
13 use App\Models\Workchat\MessagePush; 14 use App\Models\Workchat\MessagePush;
@@ -92,12 +93,12 @@ class GeoWritings extends Base @@ -92,12 +93,12 @@ class GeoWritings extends Base
92 'send_at' => time() 93 'send_at' => time()
93 ]; 94 ];
94 $projectModel = new Project(); 95 $projectModel = new Project();
95 - $projectInfo = $projectModel->read(['id'=>$project_id],['company','seo_plan']);  
96 - $seo_plan = ($projectModel::seoMap()[$projectInfo['seo_plan']]) ?? '无选择'; 96 + $company = $projectModel->getValue(['id'=>$project_id],'company');
  97 + $seo_plan_name = 'GEO';
97 $token = Crypt::encrypt($param); 98 $token = Crypt::encrypt($param);
98 $content_array = [ 99 $content_array = [
99 - 'title' => "【{$projectInfo['company']} {$seo_plan}】核心文章已整理,请查看并确认",  
100 - 'desc' => '需选择确认10篇文章,后续根据您确认的文章进行外链发布。', 100 + 'title' => "【{$company} {$seo_plan_name}】核心文章已整理,请查看并确认",
  101 + 'desc' => '需选择确认文章,后续根据您确认的文章进行外链发布。',
101 'size' => 0, 102 'size' => 0,
102 'thumbSize' => 0, 103 'thumbSize' => 0,
103 'thumbUrl' => 'https://hub.globalso.com/logocm.png', 104 'thumbUrl' => 'https://hub.globalso.com/logocm.png',
@@ -528,6 +528,20 @@ class SyncSubmitTaskService @@ -528,6 +528,20 @@ class SyncSubmitTaskService
528 throw new InquiryFilterException( '被刷数据'); 528 throw new InquiryFilterException( '被刷数据');
529 } 529 }
530 530
  531 + //4572 汉得利 ip 荷兰|俄罗斯 访问页面是首页 关杰
  532 + if($project_id == 4572 && in_array($data['country']??'', ['荷兰', '俄罗斯']))
  533 + {
  534 + $path = parse_url($data['data']['globalso-domain_host_url"'], PHP_URL_PATH);
  535 + if(!$path || $path == '/'){
  536 + throw new InquiryFilterException( '被刷数据');
  537 + }
  538 + }
  539 + //1968 河南影刻软件 荷兰和俄罗斯来的都屏蔽掉
  540 + if($project_id == 1968 && in_array($data['country']??'', ['荷兰', '俄罗斯']))
  541 + {
  542 + throw new InquiryFilterException( '被刷数据');
  543 + }
  544 +
531 //数据都是空的 545 //数据都是空的
532 $is_all_empty = true; 546 $is_all_empty = true;
533 foreach ($data['data'] as $item){ 547 foreach ($data['data'] as $item){