作者 赵彬吉
@@ -114,7 +114,7 @@ class AiBlogAuthorTask extends Command @@ -114,7 +114,7 @@ class AiBlogAuthorTask extends Command
114 return true; 114 return true;
115 } 115 }
116 $aiBlogAuthorModel = new AiBlogAuthor(); 116 $aiBlogAuthorModel = new AiBlogAuthor();
117 - $info = $aiBlogAuthorModel->count(['project_id'=>$project_id]); 117 + $info = $aiBlogAuthorModel->counts(['project_id'=>$project_id]);
118 if($info === false){ 118 if($info === false){
119 foreach ($data as $v){ 119 foreach ($data as $v){
120 $param = [ 120 $param = [
@@ -107,7 +107,7 @@ class SyncInquiryProject extends Command @@ -107,7 +107,7 @@ class SyncInquiryProject extends Command
107 } 107 }
108 108
109 // 保存项目 以及 获取路由信息 109 // 保存项目 以及 获取路由信息
110 - $project = InquiryProject::saveProject($date, $val['v'], $val['postid'], $val['company'], implode(',', $channel_tmp), $val['main_url'], $recent_inquiry, $val['is_split'], $val['test_url']); 110 + $project = InquiryProject::saveProject($date, $val['v'], $val['postid'], $val['company'], implode(',', $channel_tmp), $val['main_url'], $recent_inquiry, $val['notice'], $val['is_split'], $val['test_url']);
111 $route_domain = $val['is_split'] && $val['test_url'] ? $val['test_url'] : $val['main_url']; 111 $route_domain = $val['is_split'] && $val['test_url'] ? $val['test_url'] : $val['main_url'];
112 try { 112 try {
113 $result = http_get($route_domain . 'k_u_api.php'); 113 $result = http_get($route_domain . 'k_u_api.php');
@@ -140,13 +140,14 @@ class SyncInquiryProject extends Command @@ -140,13 +140,14 @@ class SyncInquiryProject extends Command
140 $last_week_time = date('Y-m-d H:i:s', strtotime('-1 week')); 140 $last_week_time = date('Y-m-d H:i:s', strtotime('-1 week'));
141 // 获取优化中台项目 141 // 获取优化中台项目
142 $project = Project::leftJoin('gl_project_online_check', 'gl_project.id', '=', 'gl_project_online_check.project_id') 142 $project = Project::leftJoin('gl_project_online_check', 'gl_project.id', '=', 'gl_project_online_check.project_id')
  143 + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
143 ->where('gl_project.type', Project::TYPE_TWO) 144 ->where('gl_project.type', Project::TYPE_TWO)
144 ->where('gl_project.extend_type', '!=', 5) 145 ->where('gl_project.extend_type', '!=', 5)
145 ->where(function ($query) { 146 ->where(function ($query) {
146 $query->orwhere('gl_project_online_check.qa_status', OnlineCheck::STATUS_ONLINE_TRUE) 147 $query->orwhere('gl_project_online_check.qa_status', OnlineCheck::STATUS_ONLINE_TRUE)
147 ->orwhere('gl_project.is_upgrade', Project::IS_UPGRADE_TRUE); 148 ->orwhere('gl_project.is_upgrade', Project::IS_UPGRADE_TRUE);
148 }) 149 })
149 - ->get(['gl_project.id', 'gl_project.title', 'gl_project.level', 'gl_project.channel', 'gl_project.is_upgrade']); 150 + ->get(['gl_project.id', 'gl_project.title', 'gl_project.level', 'gl_project.channel', 'gl_project_deploy_optimize.inquiry_prompt']);
150 // 获取所有项目域名 151 // 获取所有项目域名
151 $domains = DomainInfo::whereIn('project_id', $project->pluck('id')->toArray())->pluck('domain', 'project_id')->toArray(); 152 $domains = DomainInfo::whereIn('project_id', $project->pluck('id')->toArray())->pluck('domain', 'project_id')->toArray();
152 $form_api = new FormGlobalsoApi(); 153 $form_api = new FormGlobalsoApi();
@@ -157,13 +158,13 @@ class SyncInquiryProject extends Command @@ -157,13 +158,13 @@ class SyncInquiryProject extends Command
157 continue; 158 continue;
158 159
159 $domain = $domains[$val->id] ?? ''; 160 $domain = $domains[$val->id] ?? '';
160 - if(!$domain){ 161 + if (!$domain) {
161 continue; 162 continue;
162 } 163 }
163 164
164 //判断项目7天之内是否有询盘 165 //判断项目7天之内是否有询盘
165 $recent_inquiry = 0; 166 $recent_inquiry = 0;
166 - $inquiry_list = $form_api->getInquiryList('https://' . $domain . '/', $val->is_upgrade); 167 + $inquiry_list = $form_api->getInquiryList('https://' . $domain . '/');
167 $last_inquiry_time = $inquiry_list['data']['data'][0]['submit_time'] ?? ''; 168 $last_inquiry_time = $inquiry_list['data']['data'][0]['submit_time'] ?? '';
168 if ($last_inquiry_time > $last_week_time) { 169 if ($last_inquiry_time > $last_week_time) {
169 $recent_inquiry = 1; 170 $recent_inquiry = 1;
@@ -177,7 +178,7 @@ class SyncInquiryProject extends Command @@ -177,7 +178,7 @@ class SyncInquiryProject extends Command
177 DB::disconnect('custom_mysql'); 178 DB::disconnect('custom_mysql');
178 } 179 }
179 180
180 - $project = InquiryProject::saveProject($date, InquiryProject::VERSION_SIX, $val->id, $val->title, $val->channel['channel_id'], 'https://' . $domain . '/', $recent_inquiry); 181 + $project = InquiryProject::saveProject($date, InquiryProject::VERSION_SIX, $val->id, $val->title, $val->channel['channel_id'], 'https://' . $domain . '/', $recent_inquiry, $val->inquiry_prompt ?? '');
181 $this->pushTask($project->id); 182 $this->pushTask($project->id);
182 } 183 }
183 184
@@ -67,10 +67,12 @@ class GeneratePage extends Command @@ -67,10 +67,12 @@ class GeneratePage extends Command
67 $this->output($c_url . ' | 请求成功'); 67 $this->output($c_url . ' | 请求成功');
68 } else { 68 } else {
69 $noticeModel->edit(['status'=>2],['id'=>$noticeInfo['id']]); 69 $noticeModel->edit(['status'=>2],['id'=>$noticeInfo['id']]);
70 - $this->output($c_url . ' | ' . ($re['message'] ?? '未返回失败原因')); 70 + $this->output($c_url . ' | ' . (json_encode($re,true) ?? '未返回失败原因'));
71 } 71 }
72 $this->output(' taskID: ' . $noticeInfo['id'] . ' end'); 72 $this->output(' taskID: ' . $noticeInfo['id'] . ' end');
73 } catch (\Exception $e) { 73 } catch (\Exception $e) {
  74 + $noticeModel->edit(['status'=>3],['id'=>$noticeInfo['id']]);
  75 + @file_put_contents(storage_path('logs/lyh/lyh_error.log'), var_export('通知C端生成任务:'.date('Y-m-d H:i:s') . ' taskID: ' . $noticeInfo['id'] . ', error: ' . $e->getMessage() . PHP_EOL) . PHP_EOL, FILE_APPEND);
74 $this->output(' taskID: ' . $noticeInfo['id'] . ', error: ' . $e->getMessage()); 76 $this->output(' taskID: ' . $noticeInfo['id'] . ', error: ' . $e->getMessage());
75 } 77 }
76 sleep(2); 78 sleep(2);
@@ -62,10 +62,14 @@ class Validate @@ -62,10 +62,14 @@ class Validate
62 */ 62 */
63 public static function check_data($data,$type) 63 public static function check_data($data,$type)
64 { 64 {
65 - if($type == 1){  
66 - $res = HttpUtils::get('https://fob.ai.cc/api/check_email', ['email' => $data]);  
67 - }else{  
68 - $res = HttpUtils::get('https://fob.ai.cc/api/check_phone', ['phone' => $data]); 65 + try {
  66 + if($type == 1){
  67 + $res = HttpUtils::get('https://fob.ai.cc/api/check_email', ['email' => $data]);
  68 + }else{
  69 + $res = HttpUtils::get('https://fob.ai.cc/api/check_phone', ['phone' => $data]);
  70 + }
  71 + }catch (\Exception $e){
  72 + return [];
69 } 73 }
70 return Arr::s2a($res); 74 return Arr::s2a($res);
71 } 75 }
@@ -71,8 +71,8 @@ class AutoTaskController extends BaseController @@ -71,8 +71,8 @@ class AutoTaskController extends BaseController
71 } 71 }
72 // 映射信息 以及解析信息 72 // 映射信息 以及解析信息
73 $val['type'] = $type[$val['type']] ?? ''; 73 $val['type'] = $type[$val['type']] ?? '';
74 - $val['route'] = $route[$val['route']];  
75 - $val['status'] = $status[$val['status']]; 74 + $val['route'] = $route[$val['route']] ?? '';
  75 + $val['status'] = $status[$val['status']] ?? '';
76 $val['project_title'] = $projects[$val['project_id']] ?? ''; 76 $val['project_title'] = $projects[$val['project_id']] ?? '';
77 $val['domain'] = $data['domain'] ?? ''; 77 $val['domain'] = $data['domain'] ?? '';
78 $val['url'] = FALSE == empty($data['url']) ? $data['url'] : []; 78 $val['url'] = FALSE == empty($data['url']) ? $data['url'] : [];
@@ -411,8 +411,6 @@ class ComController extends BaseController @@ -411,8 +411,6 @@ class ComController extends BaseController
411 $data[] = ['project_id'=>$v['id'],'company'=>$v['company']]; 411 $data[] = ['project_id'=>$v['id'],'company'=>$v['company']];
412 } 412 }
413 } 413 }
414 - //登录选择项目的有效时间  
415 - Cache::add('login-project-'.$this->user['mobile'],1,300);  
416 $this->response('success',Code::SUCCESS,$data); 414 $this->response('success',Code::SUCCESS,$data);
417 } 415 }
418 416
@@ -58,14 +58,23 @@ class InquiryController extends BaseController @@ -58,14 +58,23 @@ class InquiryController extends BaseController
58 if(!empty($data) && !empty($data['list'])){ 58 if(!empty($data) && !empty($data['list'])){
59 $email = $phone = []; 59 $email = $phone = [];
60 foreach ($data['list'] as $v){ 60 foreach ($data['list'] as $v){
61 - if(!empty($v['phone'])){  
62 - $phone[] = $v['phone'];  
63 - }  
64 - if(!empty($v['email'])){  
65 - $email[] = $v['email'];  
66 - } 61 + if(!empty($v['phone'])){$phone[] = $v['phone'];}
  62 + if(!empty($v['email'])){$email[] = $v['email'];}
67 } 63 }
  64 + $data = $this->handleMobile($data,$phone);
  65 + $data = $this->handleEmail($data,$email);
68 } 66 }
  67 + $this->response('success',Code::SUCCESS,$data);
  68 + }
  69 +
  70 + /**
  71 + * @remark :处理手机号码
  72 + * @name :handleMobile
  73 + * @author :lyh
  74 + * @method :post
  75 + * @time :2025/3/11 16:22
  76 + */
  77 + public function handleMobile($data,$phone){
69 if(!empty($phone)){ 78 if(!empty($phone)){
70 $phoneDataModel = new PhoneData(); 79 $phoneDataModel = new PhoneData();
71 $phoneDataList = $phoneDataModel->list(['phone'=>['in',$phone]]); 80 $phoneDataList = $phoneDataModel->list(['phone'=>['in',$phone]]);
@@ -80,6 +89,17 @@ class InquiryController extends BaseController @@ -80,6 +89,17 @@ class InquiryController extends BaseController
80 $data['list'][$key] = $value; 89 $data['list'][$key] = $value;
81 } 90 }
82 } 91 }
  92 + return $data;
  93 + }
  94 +
  95 + /**
  96 + * @remark :处理邮箱
  97 + * @name :handleEmail
  98 + * @author :lyh
  99 + * @method :post
  100 + * @time :2025/3/11 16:24
  101 + */
  102 + public function handleEmail($data,$email){
83 if(!empty($email)){ 103 if(!empty($email)){
84 $emailDataModel = new EmailData(); 104 $emailDataModel = new EmailData();
85 $emailDataList = $emailDataModel->list(['email'=>['in',$email]]); 105 $emailDataList = $emailDataModel->list(['email'=>['in',$email]]);
@@ -94,7 +114,7 @@ class InquiryController extends BaseController @@ -94,7 +114,7 @@ class InquiryController extends BaseController
94 $data['list'][$key] = $value; 114 $data['list'][$key] = $value;
95 } 115 }
96 } 116 }
97 - $this->response('success',Code::SUCCESS,$data); 117 + return $data;
98 } 118 }
99 119
100 /** 120 /**
@@ -270,4 +290,21 @@ class InquiryController extends BaseController @@ -270,4 +290,21 @@ class InquiryController extends BaseController
270 // return Storage::disk('runtime')->download($file); //直接下载 290 // return Storage::disk('runtime')->download($file); //直接下载
271 $this->response('success',Code::SUCCESS,['url' => $fileurl]); 291 $this->response('success',Code::SUCCESS,['url' => $fileurl]);
272 } 292 }
  293 +
  294 + /**
  295 + * @remark :翻译国家
  296 + * @name :tranCountry
  297 + * @author :lyh
  298 + * @method :post
  299 + * @time :2025/3/11 14:18
  300 + */
  301 + public function tranCountry(InquiryLogic $logic){
  302 + $this->request->validate([
  303 + 'country_code' => 'required',
  304 + ],[
  305 + 'country_code.required' => '国家译文不能为空'
  306 + ]);
  307 + $data = $logic->tranCountry();
  308 + $this->response('success',Code::SUCCESS,$data);
  309 + }
273 } 310 }
@@ -35,7 +35,7 @@ class LoginController extends BaseController @@ -35,7 +35,7 @@ class LoginController extends BaseController
35 { 35 {
36 36
37 /** 37 /**
38 - * @remark :登录 38 + * @remark :登录返回所属项目
39 * @name :login 39 * @name :login
40 * @author :lyh 40 * @author :lyh
41 * @method :post 41 * @method :post
@@ -23,8 +23,8 @@ class WebSettingSeoController extends BaseController @@ -23,8 +23,8 @@ class WebSettingSeoController extends BaseController
23 * @time :2023/9/11 16:31 23 * @time :2023/9/11 16:31
24 */ 24 */
25 public function info(WebSettingSeoLogic $logic){ 25 public function info(WebSettingSeoLogic $logic){
26 - $info = $logic->seoInfo();  
27 - $this->response('success',Code::SUCCESS,$info); 26 + $result = $logic->seoInfo();
  27 + $this->response('success',Code::SUCCESS,$result);
28 } 28 }
29 29
30 /** 30 /**
@@ -35,7 +35,7 @@ class WebSettingSeoController extends BaseController @@ -35,7 +35,7 @@ class WebSettingSeoController extends BaseController
35 * @time :2023/9/11 16:32 35 * @time :2023/9/11 16:32
36 */ 36 */
37 public function save(WebSettingSeoLogic $logic){ 37 public function save(WebSettingSeoLogic $logic){
38 - $logic->seoSave();  
39 - $this->response('success'); 38 + $result = $logic->seoSave();
  39 + $this->response('success',Code::SUCCESS,$result);
40 } 40 }
41 } 41 }
@@ -7,6 +7,7 @@ use App\Helper\FormGlobalsoApi; @@ -7,6 +7,7 @@ use App\Helper\FormGlobalsoApi;
7 use App\Helper\Translate; 7 use App\Helper\Translate;
8 use App\Http\Logic\Aside\Project\ProjectLogic; 8 use App\Http\Logic\Aside\Project\ProjectLogic;
9 use App\Http\Logic\Bside\BaseLogic; 9 use App\Http\Logic\Bside\BaseLogic;
  10 +use App\Models\Com\WordCountry;
10 use App\Models\Domain\DomainInfo; 11 use App\Models\Domain\DomainInfo;
11 use App\Models\Inquiry\InquiryForm; 12 use App\Models\Inquiry\InquiryForm;
12 use App\Models\Inquiry\InquiryFormData; 13 use App\Models\Inquiry\InquiryFormData;
@@ -27,7 +28,7 @@ class InquiryLogic extends BaseLogic @@ -27,7 +28,7 @@ class InquiryLogic extends BaseLogic
27 public function __construct() 28 public function __construct()
28 { 29 {
29 parent::__construct(); 30 parent::__construct();
30 - 31 + $this->param = $this->requestAll;
31 $this->form_globalso_api = new FormGlobalsoApi(); 32 $this->form_globalso_api = new FormGlobalsoApi();
32 } 33 }
33 34
@@ -195,7 +196,7 @@ class InquiryLogic extends BaseLogic @@ -195,7 +196,7 @@ class InquiryLogic extends BaseLogic
195 public function sendMobileVerifyData($phone){ 196 public function sendMobileVerifyData($phone){
196 $phoneDataModel = new PhoneData(); 197 $phoneDataModel = new PhoneData();
197 $num_phone = preg_replace('/\D/', '',$phone) ?? ''; // \D 匹配所有非数字字符 198 $num_phone = preg_replace('/\D/', '',$phone) ?? ''; // \D 匹配所有非数字字符
198 - $data = $phoneDataModel->read(['num_phone'=>$num_phone]); 199 + $data = $phoneDataModel->read(['phone'=>$phone]);
199 if($data === false){ 200 if($data === false){
200 $url = 'https://fob.ai.cc/api/mobile_verify_data/'.$num_phone; 201 $url = 'https://fob.ai.cc/api/mobile_verify_data/'.$num_phone;
201 $data = http_get($url); 202 $data = http_get($url);
@@ -212,10 +213,38 @@ class InquiryLogic extends BaseLogic @@ -212,10 +213,38 @@ class InquiryLogic extends BaseLogic
212 'country_code'=>$data['country_code'] ?? '', 213 'country_code'=>$data['country_code'] ?? '',
213 'phone_region'=>$data['phone_region'] ?? '', 214 'phone_region'=>$data['phone_region'] ?? '',
214 ]; 215 ];
  216 + if(!empty($param['country_code'])){
  217 + $wordCountryModel = new WordCountry();
  218 + $info = $wordCountryModel->read(['pid'=>0,'iso2'=>$this->param['country_code']],['chinese_name']);
  219 + if($info !== false){
  220 + $param['country'] = $info['chinese_name'];
  221 + }
  222 + }
215 (new PhoneData())->addReturnId($param); 223 (new PhoneData())->addReturnId($param);
216 return $this->success($param); 224 return $this->success($param);
217 } 225 }
218 } 226 }
219 return $this->success($data); 227 return $this->success($data);
220 } 228 }
  229 +
  230 + /**
  231 + * @remark :翻译国家
  232 + * @name :tranCountry
  233 + * @author :lyh
  234 + * @method :post
  235 + * @time :2025/3/11 14:11
  236 + * @param :pid:0->国家
  237 + */
  238 + public function tranCountry(){
  239 + $wordCountryModel = new WordCountry();
  240 + $info = $wordCountryModel->read(['pid'=>0,'iso2'=>$this->param['country_code']],['chinese_name']);
  241 + if($info !== false){
  242 + $chinese_name = $info['chinese_name'];
  243 + }else{
  244 + $chinese_name = $this->param['country_code'];
  245 + }
  246 + $phoneDataModel = new PhoneData();
  247 + $phoneDataModel->edit(['country'=>$info['chinese_name']],['country_code'=>$this->param['country_code']]);
  248 + return $this->success(['country'=>$chinese_name]);
  249 + }
221 } 250 }
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 9
10 namespace App\Http\Logic\Bside\Setting; 10 namespace App\Http\Logic\Bside\Setting;
11 11
  12 +use App\Helper\Arr;
12 use App\Http\Logic\Bside\BaseLogic; 13 use App\Http\Logic\Bside\BaseLogic;
13 use App\Models\WebSetting\WebSettingSeo; 14 use App\Models\WebSetting\WebSettingSeo;
14 15
@@ -42,8 +43,11 @@ class WebSettingSeoLogic extends BaseLogic @@ -42,8 +43,11 @@ class WebSettingSeoLogic extends BaseLogic
42 * @author :lyh 43 * @author :lyh
43 * @method :post 44 * @method :post
44 * @time :2023/9/11 16:34 45 * @time :2023/9/11 16:34
  46 + * @param :product_category_prefix->分类页前缀;product_category_suffix->分类页后缀
45 */ 47 */
46 public function seoSave(){ 48 public function seoSave(){
  49 + $this->param['product_category_prefix'] = Arr::a2s($this->param['product_category_prefix'] ?? []);
  50 + $this->param['product_category_suffix'] = Arr::a2s($this->param['product_category_suffix'] ?? []);
47 try { 51 try {
48 $info = $this->model->read(['project_id'=>$this->user['project_id']]); 52 $info = $this->model->read(['project_id'=>$this->user['project_id']]);
49 if($info === false){ 53 if($info === false){
@@ -22,10 +22,8 @@ class UserLoginLogic @@ -22,10 +22,8 @@ class UserLoginLogic
22 22
23 public function __construct() 23 public function __construct()
24 { 24 {
25 - //验证账号密码  
26 $this->param = request()->all(); 25 $this->param = request()->all();
27 $this->model = new User(); 26 $this->model = new User();
28 -  
29 } 27 }
30 28
31 /** 29 /**
@@ -86,7 +84,6 @@ class UserLoginLogic @@ -86,7 +84,6 @@ class UserLoginLogic
86 if(isset($info['token']) && !empty($info['token'])){ 84 if(isset($info['token']) && !empty($info['token'])){
87 //清除上一次用户缓存 85 //清除上一次用户缓存
88 Cache::pull($info['token']); 86 Cache::pull($info['token']);
89 - Cache::pull('login-project-'.$this->param['mobile']);  
90 } 87 }
91 //生成新token 88 //生成新token
92 $token = md5(uniqid().$info['id']); 89 $token = md5(uniqid().$info['id']);
@@ -178,7 +175,7 @@ class UserLoginLogic @@ -178,7 +175,7 @@ class UserLoginLogic
178 175
179 /** 176 /**
180 * @remark :组装返回数据 177 * @remark :组装返回数据
181 - * @name :getProjectInfo 178 + * @name :assembleParam
182 * @author :lyh 179 * @author :lyh
183 * @method :post 180 * @method :post
184 * @time :2023/8/29 15:26 181 * @time :2023/8/29 15:26
@@ -343,10 +340,7 @@ class UserLoginLogic @@ -343,10 +340,7 @@ class UserLoginLogic
343 public function wechatLogin($wechat){ 340 public function wechatLogin($wechat){
344 $info = $this->model->read(['wechat'=>$wechat]); 341 $info = $this->model->read(['wechat'=>$wechat]);
345 if($info === false){ 342 if($info === false){
346 - $data = [  
347 - 'code'=>0,  
348 - 'message'=>'当前用户未绑定账户,请绑定后登录',  
349 - ]; 343 + $data = ['code'=>0, 'message'=>'当前用户未绑定账户,请绑定后登录',];
350 }else { 344 }else {
351 //获取项目详情 345 //获取项目详情
352 $info = $this->autoAssembleParam($info,User::LOGIN_PASSWORD_SOURCE); 346 $info = $this->autoAssembleParam($info,User::LOGIN_PASSWORD_SOURCE);
@@ -366,8 +360,7 @@ class UserLoginLogic @@ -366,8 +360,7 @@ class UserLoginLogic
366 'message'=>'登陆成功', 360 'message'=>'登陆成功',
367 'data'=>$info 361 'data'=>$info
368 ]; 362 ];
369 - Common::set_user_login(['user_id'=>$info['id'],'ip'=>request()->ip(),  
370 - 'project_id'=>$info['project_id'], 'type'=>2 ,'remark' => '自动登录,用户微信扫码']); 363 + Common::set_user_login(['user_id'=>$info['id'],'ip'=>request()->ip(), 'project_id'=>$info['project_id'], 'type'=>2 ,'remark' => '自动登录,用户微信扫码']);
371 } 364 }
372 return $this->success($data); 365 return $this->success($data);
373 } 366 }
@@ -40,7 +40,7 @@ class Notify extends Base @@ -40,7 +40,7 @@ class Notify extends Base
40 const ROUTE_PRODUCT_KEYWORD = 4; 40 const ROUTE_PRODUCT_KEYWORD = 4;
41 const ROUTE_NOT_TRANSLATE = 5; 41 const ROUTE_NOT_TRANSLATE = 5;
42 const ROUTE_PRODUCT_VIDEO_KEYWORD = 6; 42 const ROUTE_PRODUCT_VIDEO_KEYWORD = 6;
43 - 43 + const ROUTE_AI_BLOG = 7;
44 /** 44 /**
45 * 是否拉取HTML压缩包 45 * 是否拉取HTML压缩包
46 * 0:默认不拉取 46 * 0:默认不拉取
@@ -74,7 +74,8 @@ class Notify extends Base @@ -74,7 +74,8 @@ class Notify extends Base
74 self::ROUTE_URL => '指定路由', 74 self::ROUTE_URL => '指定路由',
75 self::ROUTE_PRODUCT_KEYWORD => '聚合页面', 75 self::ROUTE_PRODUCT_KEYWORD => '聚合页面',
76 self::ROUTE_NOT_TRANSLATE => '漏翻检查', 76 self::ROUTE_NOT_TRANSLATE => '漏翻检查',
77 - self::ROUTE_PRODUCT_VIDEO_KEYWORD => '视频聚合页' 77 + self::ROUTE_PRODUCT_VIDEO_KEYWORD => '视频聚合页',
  78 + self::ROUTE_AI_BLOG => 'AI博客'
78 ]; 79 ];
79 } 80 }
80 81
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :WordCountry.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2025/3/11 17:24
  8 + */
  9 +
  10 +namespace App\Models\Com;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +/**
  15 + * @remark :国家信息
  16 + * @name :WordCountry
  17 + * @author :lyh
  18 + * @method :post
  19 + * @time :2025/3/11 17:24
  20 + */
  21 +class WordCountry extends Base
  22 +{
  23 + protected $table = 'gl_world_country_city';
  24 +}
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 * Date: 2025/2/17 5 * Date: 2025/2/17
6 * Time: 11:49 6 * Time: 11:49
7 */ 7 */
  8 +
8 namespace App\Models\Inquiry; 9 namespace App\Models\Inquiry;
9 10
10 use App\Models\Base; 11 use App\Models\Base;
@@ -34,16 +35,20 @@ class InquiryProject extends Base @@ -34,16 +35,20 @@ class InquiryProject extends Base
34 * @param $channel 35 * @param $channel
35 * @param $domain 36 * @param $domain
36 * @param $recent_inquiry 37 * @param $recent_inquiry
  38 + * @param $remark
37 * @param int $is_split 39 * @param int $is_split
38 * @param string $test_domain 40 * @param string $test_domain
39 * @return InquiryProject 41 * @return InquiryProject
40 */ 42 */
41 - public static function saveProject($date, $version, $primary_id, $project, $channel, $domain,$recent_inquiry, $is_split = 0, $test_domain = '') 43 + public static function saveProject($date, $version, $primary_id, $project, $channel, $domain, $recent_inquiry, $remark = '', $is_split = 0, $test_domain = '')
42 { 44 {
43 $log = self::where(compact('version', 'primary_id'))->first(); 45 $log = self::where(compact('version', 'primary_id'))->first();
44 if ($log) { 46 if ($log) {
45 $log->date = $date; 47 $log->date = $date;
  48 + $log->project = $project;
  49 + $log->domain = $domain;
46 $log->recent_inquiry = $recent_inquiry; 50 $log->recent_inquiry = $recent_inquiry;
  51 + $log->remark = $remark;
47 $log->save(); 52 $log->save();
48 return $log; 53 return $log;
49 } 54 }
@@ -7,72 +7,6 @@ use App\Models\Base; @@ -7,72 +7,6 @@ use App\Models\Base;
7 use Illuminate\Database\Eloquent\Relations\BelongsToMany; 7 use Illuminate\Database\Eloquent\Relations\BelongsToMany;
8 use Illuminate\Database\Eloquent\SoftDeletes; 8 use Illuminate\Database\Eloquent\SoftDeletes;
9 9
10 -/**  
11 - * App\Models\Product\Product  
12 - *  
13 - * @method static get()  
14 - * @property int $id  
15 - * @property int $project_id  
16 - * @property string $title  
17 - * @property string $thumb 封面  
18 - * @property mixed|null $gallery 图集  
19 - * @property mixed|null $attrs 属性参数  
20 - * @property string|null $attr_id 通用参数  
21 - * @property string|null $category_id 分类 多个,号隔开  
22 - * @property string|null $keyword_id 关键词标签 多个,号隔开  
23 - * @property string|null $intro 简介  
24 - * @property string|null $content 详情  
25 - * @property mixed|null $describe 描述  
26 - * @property string $describe_id 通用描述  
27 - * @property mixed|null $seo_mate seo tdk  
28 - * @property string $related_product_id 相关产品 多个,号隔开  
29 - * @property int $sort 排序  
30 - * @property int $status 状态 0草稿 1已上架 2已下架  
31 - * @property int $created_uid 创建者  
32 - * @property \Illuminate\Support\Carbon|null $created_at  
33 - * @property \Illuminate\Support\Carbon|null $updated_at  
34 - * @property \Illuminate\Support\Carbon|null $deleted_at  
35 - * @property string|null $route 路由  
36 - * @property mixed|null $icon 图标  
37 - * @property string|null $product_type 产品类型:1,一般产品;2:推荐产品(recommend);3:热销产品(hot)  
38 - * @property int $is_upgrade 0:6.0 1:4.0,5.0升级  
39 - * @property string|null $send_time 发布时间  
40 - * @property int|null $six_read 1:导入数据可按6.0显示  
41 - * @method \Illuminate\Database\Eloquent\Builder|Product newModelQuery()  
42 - * @method \Illuminate\Database\Eloquent\Builder|Product newQuery()  
43 - * @method \Illuminate\Database\Eloquent\Builder|Product onlyTrashed()  
44 - * @method static \Illuminate\Database\Eloquent\Builder|Product query()  
45 - * @method \Illuminate\Database\Eloquent\Builder|Product whereAttrId($value)  
46 - * @method \Illuminate\Database\Eloquent\Builder|Product whereAttrs($value)  
47 - * @method \Illuminate\Database\Eloquent\Builder|Product whereCategoryId($value)  
48 - * @method \Illuminate\Database\Eloquent\Builder|Product whereContent($value)  
49 - * @method \Illuminate\Database\Eloquent\Builder|Product whereCreatedAt($value)  
50 - * @method \Illuminate\Database\Eloquent\Builder|Product whereCreatedUid($value)  
51 - * @method \Illuminate\Database\Eloquent\Builder|Product whereDeletedAt($value)  
52 - * @method \Illuminate\Database\Eloquent\Builder|Product whereDescribe($value)  
53 - * @method \Illuminate\Database\Eloquent\Builder|Product whereDescribeId($value)  
54 - * @method \Illuminate\Database\Eloquent\Builder|Product whereGallery($value)  
55 - * @method \Illuminate\Database\Eloquent\Builder|Product whereIcon($value)  
56 - * @method \Illuminate\Database\Eloquent\Builder|Product whereId($value)  
57 - * @method \Illuminate\Database\Eloquent\Builder|Product whereIntro($value)  
58 - * @method \Illuminate\Database\Eloquent\Builder|Product whereIsUpgrade($value)  
59 - * @method \Illuminate\Database\Eloquent\Builder|Product whereKeywordId($value)  
60 - * @method \Illuminate\Database\Eloquent\Builder|Product whereProductType($value)  
61 - * @method \Illuminate\Database\Eloquent\Builder|Product whereProjectId($value)  
62 - * @method \Illuminate\Database\Eloquent\Builder|Product whereRelatedProductId($value)  
63 - * @method \Illuminate\Database\Eloquent\Builder|Product whereRoute($value)  
64 - * @method \Illuminate\Database\Eloquent\Builder|Product whereSendTime($value)  
65 - * @method \Illuminate\Database\Eloquent\Builder|Product whereSeoMate($value)  
66 - * @method \Illuminate\Database\Eloquent\Builder|Product whereSixRead($value)  
67 - * @method \Illuminate\Database\Eloquent\Builder|Product whereSort($value)  
68 - * @method \Illuminate\Database\Eloquent\Builder|Product whereStatus($value)  
69 - * @method \Illuminate\Database\Eloquent\Builder|Product whereThumb($value)  
70 - * @method \Illuminate\Database\Eloquent\Builder|Product whereTitle($value)  
71 - * @method \Illuminate\Database\Eloquent\Builder|Product whereUpdatedAt($value)  
72 - * @method \Illuminate\Database\Eloquent\Builder|Product withTrashed()  
73 - * @method \Illuminate\Database\Eloquent\Builder|Product withoutTrashed()  
74 - * @mixin \Eloquent  
75 - */  
76 class Product extends Base 10 class Product extends Base
77 { 11 {
78 use SoftDeletes; 12 use SoftDeletes;
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 9
10 namespace App\Models\WebSetting; 10 namespace App\Models\WebSetting;
11 11
  12 +use App\Helper\Arr;
12 use App\Models\Base; 13 use App\Models\Base;
13 14
14 class WebSettingSeo extends Base 15 class WebSettingSeo extends Base
@@ -18,4 +19,32 @@ class WebSettingSeo extends Base @@ -18,4 +19,32 @@ class WebSettingSeo extends Base
18 19
19 //连接数据库 20 //连接数据库
20 protected $connection = 'custom_mysql'; 21 protected $connection = 'custom_mysql';
  22 +
  23 + /**
  24 + * @remark :(获取器)分类页前缀
  25 + * @name :getProductCategoryPrefixAttribute
  26 + * @author :lyh
  27 + * @method :post
  28 + * @time :2025/3/12 10:37
  29 + */
  30 + public function getProductCategoryPrefixAttribute($value){
  31 + if(!empty($value)){
  32 + $value = Arr::s2a($value);
  33 + }
  34 + return $value;
  35 + }
  36 +
  37 + /**
  38 + * @remark :(获取器)分类页后缀
  39 + * @name :getProductCategorySuffixAttribute
  40 + * @author :lyh
  41 + * @method :post
  42 + * @time :2025/3/12 10:38
  43 + */
  44 + public function getProductCategorySuffixAttribute($value){
  45 + if(!empty($value)){
  46 + $value = Arr::s2a($value);
  47 + }
  48 + return $value;
  49 + }
21 } 50 }
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :WebSettingYoutube.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2025/3/11 15:51
  8 + */
  9 +
  10 +namespace App\Models\WebSetting;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +/**
  15 + * @remark :youtube账号密码设置
  16 + * @name :WebSettingYoutube
  17 + * @author :lyh
  18 + * @method :post
  19 + * @time :2025/3/11 15:51
  20 + */
  21 +class WebSettingYoutube extends Base
  22 +{
  23 + protected $table = 'gl_web_setting_youtube';
  24 +}
@@ -371,6 +371,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -371,6 +371,7 @@ Route::middleware(['bloginauth'])->group(function () {
371 Route::any('/export', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'export'])->name('inquiry_export'); 371 Route::any('/export', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'export'])->name('inquiry_export');
372 Route::any('/send', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'sendMobileVerifyData'])->name('inquiry_sendMobileVerifyData'); 372 Route::any('/send', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'sendMobileVerifyData'])->name('inquiry_sendMobileVerifyData');
373 Route::any('/checkEmail', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'checkEmail'])->name('inquiry_checkEmail'); 373 Route::any('/checkEmail', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'checkEmail'])->name('inquiry_checkEmail');
  374 + Route::any('/tranCountry', [\App\Http\Controllers\Bside\Inquiry\InquiryController::class, 'tranCountry'])->name('inquiry_tranCountry');
374 }); 375 });
375 376
376 //生成路由 377 //生成路由