Merge remote-tracking branch 'origin/master' into zhl
正在显示
19 个修改的文件
包含
278 行增加
和
48 行删除
| @@ -99,6 +99,9 @@ class RemainDay extends Command | @@ -99,6 +99,9 @@ class RemainDay extends Command | ||
| 99 | } | 99 | } |
| 100 | //白帽版本的系统 | 100 | //白帽版本的系统 |
| 101 | if($deploy_build['seo_plan'] == 1){ | 101 | if($deploy_build['seo_plan'] == 1){ |
| 102 | + if($deploy_build['seo_service_duration'] == 0){ | ||
| 103 | + continue; | ||
| 104 | + } | ||
| 102 | if($item['uptime']){ | 105 | if($item['uptime']){ |
| 103 | $diff = time() - strtotime($item['uptime']); | 106 | $diff = time() - strtotime($item['uptime']); |
| 104 | $seo_remain_day = $deploy_build['seo_service_duration'] - floor($diff / (60 * 60 * 24)); | 107 | $seo_remain_day = $deploy_build['seo_service_duration'] - floor($diff / (60 * 60 * 24)); |
| @@ -115,6 +118,10 @@ class RemainDay extends Command | @@ -115,6 +118,10 @@ class RemainDay extends Command | ||
| 115 | //同时包括白帽版本+默认版本的项目 | 118 | //同时包括白帽版本+默认版本的项目 |
| 116 | $this->project->edit(['seo_remain_day'=>$seo_remain_day],['id'=>$item['id']]); | 119 | $this->project->edit(['seo_remain_day'=>$seo_remain_day],['id'=>$item['id']]); |
| 117 | } | 120 | } |
| 121 | + if($deploy_build['service_duration'] == 0){ | ||
| 122 | + //服务时长为0自动跳过 | ||
| 123 | + continue; | ||
| 124 | + } | ||
| 118 | //默认版本计算剩余服务时常 | 125 | //默认版本计算剩余服务时常 |
| 119 | if($item['type'] == Project::TYPE_TWO || $item['type'] == Project::TYPE_FOUR){ | 126 | if($item['type'] == Project::TYPE_TWO || $item['type'] == Project::TYPE_FOUR){ |
| 120 | if(in_array($item['id'],$this->projectId)){//已开始优化的时间结算 | 127 | if(in_array($item['id'],$this->projectId)){//已开始优化的时间结算 |
| @@ -9,8 +9,10 @@ | @@ -9,8 +9,10 @@ | ||
| 9 | 9 | ||
| 10 | namespace App\Console\Commands\LyhTest; | 10 | namespace App\Console\Commands\LyhTest; |
| 11 | 11 | ||
| 12 | +use App\Console\Commands\Domain\DomainInfo; | ||
| 12 | use App\Models\Com\NoticeLog; | 13 | use App\Models\Com\NoticeLog; |
| 13 | use App\Models\Project\AiBlogTask; | 14 | use App\Models\Project\AiBlogTask; |
| 15 | +use App\Models\Project\DeployBuild; | ||
| 14 | use App\Models\Project\Project; | 16 | use App\Models\Project\Project; |
| 15 | use Illuminate\Console\Command; | 17 | use Illuminate\Console\Command; |
| 16 | use Illuminate\Support\Facades\Artisan; | 18 | use Illuminate\Support\Facades\Artisan; |
| @@ -33,9 +35,14 @@ class lyhDemo extends Command | @@ -33,9 +35,14 @@ class lyhDemo extends Command | ||
| 33 | protected $description = '更新路由'; | 35 | protected $description = '更新路由'; |
| 34 | 36 | ||
| 35 | public function handle(){ | 37 | public function handle(){ |
| 36 | - $projectModel = new Project(); | ||
| 37 | - $noticeModel = new NoticeLog(); | ||
| 38 | - $lists = $projectModel->list(['from_order_id'=>null]); | 38 | + $projectBuildModel = new DeployBuild(); |
| 39 | + $projectList = $projectBuildModel->list(['plan'=>0,'seo_plan'=>1],'project_id'); | ||
| 40 | + foreach ($projectList as $val){ | ||
| 41 | + if(!empty($val['service_duration']) && empty($val['seo_service_duration'])){ | ||
| 42 | + $projectBuildModel->edit(['seo_service_duration'=>$val['service_duration']],['id'=>$val['id']]); | ||
| 43 | + echo '项目id:'.$val['project_id'].PHP_EOL; | ||
| 44 | + } | ||
| 45 | + } | ||
| 39 | return true; | 46 | return true; |
| 40 | } | 47 | } |
| 41 | } | 48 | } |
| @@ -2,12 +2,11 @@ | @@ -2,12 +2,11 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Console\Commands\RankData; | 3 | namespace App\Console\Commands\RankData; |
| 4 | 4 | ||
| 5 | -use App\Helper\QuanqiusouApi; | 5 | + |
| 6 | +use App\Http\Logic\Bside\RankData\RankDataLogic; | ||
| 6 | use App\Models\RankData\RankDataLog as RankDataLogModel; | 7 | use App\Models\RankData\RankDataLog as RankDataLogModel; |
| 7 | -use App\Models\Project\DeployOptimize; | 8 | +use App\Models\Domain\DomainInfo; |
| 8 | use App\Models\Project\Project; | 9 | use App\Models\Project\Project; |
| 9 | -use Illuminate\Support\Facades\Cache; | ||
| 10 | -use Illuminate\Support\Facades\DB; | ||
| 11 | use Illuminate\Support\Facades\Log; | 10 | use Illuminate\Support\Facades\Log; |
| 12 | 11 | ||
| 13 | /** | 12 | /** |
| @@ -49,8 +48,7 @@ class RankData extends BaseCommands | @@ -49,8 +48,7 @@ class RankData extends BaseCommands | ||
| 49 | Cache::set('clear_remain_today_' . date('Y-m-d'), 1, 24 * 3600); | 48 | Cache::set('clear_remain_today_' . date('Y-m-d'), 1, 24 * 3600); |
| 50 | } | 49 | } |
| 51 | 50 | ||
| 52 | - $projectModel = new Project(); | ||
| 53 | - $list = $projectModel->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') | 51 | + $list = Project::leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 54 | ->where('gl_project.extend_type',0) | 52 | ->where('gl_project.extend_type',0) |
| 55 | ->where('gl_project.delete_status',0) | 53 | ->where('gl_project.delete_status',0) |
| 56 | ->where('gl_project_deploy_optimize.api_no', '>', 0) | 54 | ->where('gl_project_deploy_optimize.api_no', '>', 0) |
| @@ -79,6 +77,22 @@ class RankData extends BaseCommands | @@ -79,6 +77,22 @@ class RankData extends BaseCommands | ||
| 79 | RankDataLogModel::addTask($item['project_id'], $item['api_no'], $lang); | 77 | RankDataLogModel::addTask($item['project_id'], $item['api_no'], $lang); |
| 80 | } | 78 | } |
| 81 | } | 79 | } |
| 80 | + | ||
| 81 | + //白帽SEO版 | ||
| 82 | + $list = Project::leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') | ||
| 83 | + ->where('gl_project.delete_status',0) | ||
| 84 | + ->where('gl_project_deploy_build.seo_plan', 1) | ||
| 85 | + ->whereIn('gl_project.type',[2,3,4]) | ||
| 86 | + ->orderBy('gl_project.id', 'asc') | ||
| 87 | + ->pluck('gl_project.id')->toArray(); | ||
| 88 | + foreach ($list as $project_id){ | ||
| 89 | + $domain = DomainInfo::getCacheInfoByProjectId($project_id); | ||
| 90 | + $id = RankDataLogic::instance()->getBmSeoProjects($domain['domain']); | ||
| 91 | + if(!$id){ | ||
| 92 | + continue; | ||
| 93 | + } | ||
| 94 | + RankDataLogModel::addTask($project_id, $id . '_bmseo'); | ||
| 95 | + } | ||
| 82 | } catch (\Exception|\Throwable $e) { | 96 | } catch (\Exception|\Throwable $e) { |
| 83 | Log::channel('rank_data')->error('排名数据任务失败 ' . $e->getMessage()); | 97 | Log::channel('rank_data')->error('排名数据任务失败 ' . $e->getMessage()); |
| 84 | } | 98 | } |
| @@ -13,6 +13,7 @@ use App\Models\Project\Project; | @@ -13,6 +13,7 @@ use App\Models\Project\Project; | ||
| 13 | use Illuminate\Support\Facades\Cache; | 13 | use Illuminate\Support\Facades\Cache; |
| 14 | use Illuminate\Support\Facades\Log; | 14 | use Illuminate\Support\Facades\Log; |
| 15 | use Illuminate\Support\Facades\Redis; | 15 | use Illuminate\Support\Facades\Redis; |
| 16 | +use Illuminate\Support\Str; | ||
| 16 | 17 | ||
| 17 | /** | 18 | /** |
| 18 | * Class GoogleRank | 19 | * Class GoogleRank |
| @@ -76,8 +77,13 @@ class RankDataLog extends BaseCommands | @@ -76,8 +77,13 @@ class RankDataLog extends BaseCommands | ||
| 76 | $log->data = Arr::s2a($res); | 77 | $log->data = Arr::s2a($res); |
| 77 | //保存数据 | 78 | //保存数据 |
| 78 | $this->output('保存排名数据:ID'.$log->project_id . ',APINO' . $log->api_no); | 79 | $this->output('保存排名数据:ID'.$log->project_id . ',APINO' . $log->api_no); |
| 79 | - $is_compliance = (new RankDataLogic())->save_rank($log->project_id, $log->api_no, $res, null, $log->lang); | ||
| 80 | - $log->is_compliance = $is_compliance; | 80 | + if(Str::endsWith($log->api_no, '_bmseo')){ |
| 81 | + //白帽版 | ||
| 82 | + (new RankDataLogic())->save_rank_bmseo($log->project_id, $log->api_no, $res); | ||
| 83 | + }else{ | ||
| 84 | + $is_compliance = (new RankDataLogic())->save_rank($log->project_id, $log->api_no, $res, null, $log->lang); | ||
| 85 | + $log->is_compliance = $is_compliance; | ||
| 86 | + } | ||
| 81 | $log->status = 1; | 87 | $log->status = 1; |
| 82 | $log->save(); | 88 | $log->save(); |
| 83 | 89 |
| @@ -74,7 +74,7 @@ class RecommendedSuppliers extends Command | @@ -74,7 +74,7 @@ class RecommendedSuppliers extends Command | ||
| 74 | DB::disconnect('custom_mysql'); | 74 | DB::disconnect('custom_mysql'); |
| 75 | } | 75 | } |
| 76 | }catch (\Exception $e){ | 76 | }catch (\Exception $e){ |
| 77 | - echo date('Y-m-d hH:i:s').'当前项目执行错误:'.$e->getMessage().PHP_EOL; | 77 | + echo date('Y-m-d H:i:s').'当前项目执行错误:'.$e->getMessage().PHP_EOL; |
| 78 | continue; | 78 | continue; |
| 79 | } | 79 | } |
| 80 | } | 80 | } |
| @@ -166,7 +166,7 @@ class RecommendedSuppliers extends Command | @@ -166,7 +166,7 @@ class RecommendedSuppliers extends Command | ||
| 166 | $saveData = [ | 166 | $saveData = [ |
| 167 | 'project_id'=>$project_id, | 167 | 'project_id'=>$project_id, |
| 168 | 'keyword'=>$keyword, | 168 | 'keyword'=>$keyword, |
| 169 | - 'data'=>json_encode($res['data'] ?? '') | 169 | + 'data'=>json_encode($res['data'] ?? []) |
| 170 | ]; | 170 | ]; |
| 171 | $purchaserModel = new Purchaser(); | 171 | $purchaserModel = new Purchaser(); |
| 172 | $purchaserModel->add($saveData); | 172 | $purchaserModel->add($saveData); |
| @@ -214,8 +214,6 @@ class RecommendedSuppliers extends Command | @@ -214,8 +214,6 @@ class RecommendedSuppliers extends Command | ||
| 214 | $v['mobile'] = json_encode($v['mobile']??[],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); | 214 | $v['mobile'] = json_encode($v['mobile']??[],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
| 215 | $v['social_media'] = json_encode($v['social_media']??[],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); | 215 | $v['social_media'] = json_encode($v['social_media']??[],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
| 216 | $v['image'] = str_replace('admin.hagro.cn','fob.ai.cc',$v['image']??''); | 216 | $v['image'] = str_replace('admin.hagro.cn','fob.ai.cc',$v['image']??''); |
| 217 | -// $v['created_at'] = date('Y-m-d H:i:s'); | ||
| 218 | -// $v['updated_at'] = $v['created_at']; | ||
| 219 | $param = $v; | 217 | $param = $v; |
| 220 | $info = $purchaserInfoModel->read(['keyword'=>$keyword,'buyer_id'=>$v['buyer_id']??0,'project_id'=>$project_id],['id']); | 218 | $info = $purchaserInfoModel->read(['keyword'=>$keyword,'buyer_id'=>$v['buyer_id']??0,'project_id'=>$project_id],['id']); |
| 221 | if($info === false){ | 219 | if($info === false){ |
| @@ -6,6 +6,7 @@ namespace App\Helper; | @@ -6,6 +6,7 @@ namespace App\Helper; | ||
| 6 | use App\Models\Project\Project; | 6 | use App\Models\Project\Project; |
| 7 | use App\Utils\HttpUtils; | 7 | use App\Utils\HttpUtils; |
| 8 | use GuzzleHttp\Exception\GuzzleException; | 8 | use GuzzleHttp\Exception\GuzzleException; |
| 9 | +use Illuminate\Support\Facades\Log; | ||
| 9 | 10 | ||
| 10 | 11 | ||
| 11 | /** | 12 | /** |
| @@ -154,7 +155,7 @@ class FormGlobalsoApi | @@ -154,7 +155,7 @@ class FormGlobalsoApi | ||
| 154 | $res = HttpUtils::post($api_url, $data); | 155 | $res = HttpUtils::post($api_url, $data); |
| 155 | $res = Arr::s2a($res); | 156 | $res = Arr::s2a($res); |
| 156 | } catch (\Exception | GuzzleException $e) { | 157 | } catch (\Exception | GuzzleException $e) { |
| 157 | - errorLog('提交询盘信息失败', $data, $e); | 158 | + Log::channel('inquiry')->info('询盘发送邮件失败' . $e->getMessage(), $data); |
| 158 | return false; | 159 | return false; |
| 159 | } | 160 | } |
| 160 | return $res; | 161 | return $res; |
| @@ -834,6 +834,16 @@ function ends_with($string, $suffix) | @@ -834,6 +834,16 @@ function ends_with($string, $suffix) | ||
| 834 | return substr($string, -strlen($suffix)) === $suffix; | 834 | return substr($string, -strlen($suffix)) === $suffix; |
| 835 | } | 835 | } |
| 836 | 836 | ||
| 837 | +function getCustomRouteMap($module_route,$route = '') | ||
| 838 | +{ | ||
| 839 | + if($module_route == $route){ | ||
| 840 | + $resultRoute = $route; | ||
| 841 | + }else{ | ||
| 842 | + $resultRoute = $module_route.'_catalog/'.$route; | ||
| 843 | + } | ||
| 844 | + return $resultRoute; | ||
| 845 | +} | ||
| 846 | + | ||
| 837 | /** | 847 | /** |
| 838 | * @remark :获取二级路由 | 848 | * @remark :获取二级路由 |
| 839 | * @name :getRouteMap | 849 | * @name :getRouteMap |
| @@ -841,11 +851,24 @@ function ends_with($string, $suffix) | @@ -841,11 +851,24 @@ function ends_with($string, $suffix) | ||
| 841 | * @method :post | 851 | * @method :post |
| 842 | * @time :2023/11/10 14:29 | 852 | * @time :2023/11/10 14:29 |
| 843 | */ | 853 | */ |
| 844 | -function getRouteMap($source,$source_id){ | 854 | +function getRouteMap($source,$source_id,$is_upgrade = 0){ |
| 845 | $route = ''; | 855 | $route = ''; |
| 846 | $routeMapModel = new RouteMap(); | 856 | $routeMapModel = new RouteMap(); |
| 847 | $info = $routeMapModel->read(['source'=>$source,'source_id'=>$source_id]); | 857 | $info = $routeMapModel->read(['source'=>$source,'source_id'=>$source_id]); |
| 848 | if($info !== false){ | 858 | if($info !== false){ |
| 859 | + if($is_upgrade == 1){ | ||
| 860 | + if($source == $routeMapModel::SOURCE_NEWS_CATE){ | ||
| 861 | + if($info['route'] != 'news'){ | ||
| 862 | + return $routeMapModel::PATH_NEWS_CATE.'/'.$info['route']; | ||
| 863 | + } | ||
| 864 | + }elseif ($source == $routeMapModel::SOURCE_BLOG_CATE){ | ||
| 865 | + if($info['route'] != 'blog'){ | ||
| 866 | + return $routeMapModel::PATH_BLOG_CATE.'/'.$info['route']; | ||
| 867 | + } | ||
| 868 | + } | ||
| 869 | + $route = $info['route']; | ||
| 870 | + return $route; | ||
| 871 | + } | ||
| 849 | if(!empty($info['path'])){ | 872 | if(!empty($info['path'])){ |
| 850 | if($info['path'] == 'blog'){ | 873 | if($info['path'] == 'blog'){ |
| 851 | $info['path'] = $info['path'].'s'; | 874 | $info['path'] = $info['path'].'s'; |
| @@ -147,8 +147,8 @@ class OptimizeController extends BaseController | @@ -147,8 +147,8 @@ class OptimizeController extends BaseController | ||
| 147 | $data = APublicModel::getNumByProjectId($item['id']); | 147 | $data = APublicModel::getNumByProjectId($item['id']); |
| 148 | } | 148 | } |
| 149 | $manageModel = new ManageHr(); | 149 | $manageModel = new ManageHr(); |
| 150 | - $plan = Project::planMap(); | ||
| 151 | - $seo_plan = Project::seoMap(); | 150 | +// $plan = Project::planMap(); |
| 151 | +// $seo_plan = Project::seoMap(); | ||
| 152 | $item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0); | 152 | $item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0); |
| 153 | $item['build_leader'] = $manageModel->getName($item['leader_mid']); | 153 | $item['build_leader'] = $manageModel->getName($item['leader_mid']); |
| 154 | $item['build_manager'] = $manageModel->getName($item['manager_mid']); | 154 | $item['build_manager'] = $manageModel->getName($item['manager_mid']); |
| @@ -159,8 +159,6 @@ class OptimizeController extends BaseController | @@ -159,8 +159,6 @@ class OptimizeController extends BaseController | ||
| 159 | $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']); | 159 | $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']); |
| 160 | $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']); | 160 | $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']); |
| 161 | $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']); | 161 | $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']); |
| 162 | - $item['plan'] = $plan[$item['plan']] ?? 0; | ||
| 163 | - $item['seo_plan'] = $seo_plan[$item['plan']] ?? 0; | ||
| 164 | $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date'])); | 162 | $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date'])); |
| 165 | $item['autologin_code'] = getAutoLoginCode($item['id']); | 163 | $item['autologin_code'] = getAutoLoginCode($item['id']); |
| 166 | $item['domain'] = 'https://'.$item['domain'].'/'; | 164 | $item['domain'] = 'https://'.$item['domain'].'/'; |
| @@ -194,6 +192,7 @@ class OptimizeController extends BaseController | @@ -194,6 +192,7 @@ class OptimizeController extends BaseController | ||
| 194 | 'gl_project.finish_remain_day AS finish_remain_day', | 192 | 'gl_project.finish_remain_day AS finish_remain_day', |
| 195 | 'gl_project.is_remain_today AS is_remain_today', | 193 | 'gl_project.is_remain_today AS is_remain_today', |
| 196 | 'gl_project.remain_day AS remain_day', | 194 | 'gl_project.remain_day AS remain_day', |
| 195 | + 'gl_project.seo_remain_day AS seo_remain_day', | ||
| 197 | 'gl_project.robots AS robots', | 196 | 'gl_project.robots AS robots', |
| 198 | 'gl_project.is_minor_languages AS is_minor_languages', | 197 | 'gl_project.is_minor_languages AS is_minor_languages', |
| 199 | 'gl_project.is_translate AS is_translate', | 198 | 'gl_project.is_translate AS is_translate', |
| @@ -29,7 +29,7 @@ class BlogCategoryController extends BaseController | @@ -29,7 +29,7 @@ class BlogCategoryController extends BaseController | ||
| 29 | $template_id = $this->getTemplateId(BTemplate::SOURCE_BLOG,BTemplate::IS_LIST); | 29 | $template_id = $this->getTemplateId(BTemplate::SOURCE_BLOG,BTemplate::IS_LIST); |
| 30 | foreach ($lists as $k => $v){ | 30 | foreach ($lists as $k => $v){ |
| 31 | $v['num'] = $blogModel->formatQuery(['category_id'=>['like','%,' . $v['id'] . ',%']])->count(); | 31 | $v['num'] = $blogModel->formatQuery(['category_id'=>['like','%,' . $v['id'] . ',%']])->count(); |
| 32 | - $v['url'] = $this->user['domain'] . getRouteMap(RouteMap::SOURCE_BLOG_CATE,$v['id']); | 32 | + $v['url'] = $this->user['domain'] . getRouteMap(RouteMap::SOURCE_BLOG_CATE,$v['id'],$this->user['is_upgrade']); |
| 33 | $v['is_renovation'] = $this->getIsRenovation(BTemplate::SOURCE_BLOG,BTemplate::IS_LIST,$template_id,$v['id']); | 33 | $v['is_renovation'] = $this->getIsRenovation(BTemplate::SOURCE_BLOG,BTemplate::IS_LIST,$template_id,$v['id']); |
| 34 | $lists[$k] = $v; | 34 | $lists[$k] = $v; |
| 35 | } | 35 | } |
| @@ -42,12 +42,7 @@ class CustomModuleCategoryController extends BaseController | @@ -42,12 +42,7 @@ class CustomModuleCategoryController extends BaseController | ||
| 42 | $template_id = $this->getModuleTemplateId($this->param['module_id']); | 42 | $template_id = $this->getModuleTemplateId($this->param['module_id']); |
| 43 | foreach ($list as $k => $v){ | 43 | foreach ($list as $k => $v){ |
| 44 | $v['is_renovation'] = $this->getIsRenovation($v['module_id'],BTemplate::IS_LIST,$template_id,$v['id'],BTemplate::IS_CUSTOM); | 44 | $v['is_renovation'] = $this->getIsRenovation($v['module_id'],BTemplate::IS_LIST,$template_id,$v['id'],BTemplate::IS_CUSTOM); |
| 45 | - $v['url'] = $this->user['domain'].$v['route']; | ||
| 46 | - if($this->user['is_upgrade'] == 1){ | ||
| 47 | - if($v['route'] != $moduleInfo['route']){ | ||
| 48 | - $v['url'] = $this->user['domain'].$moduleInfo['route']."_catalog/".$v['route']; | ||
| 49 | - } | ||
| 50 | - } | 45 | + $v['url'] = $this->user['domain'].getCustomRouteMap($moduleInfo['route'],$v['route']); |
| 51 | $list[$k] = $v; | 46 | $list[$k] = $v; |
| 52 | } | 47 | } |
| 53 | } | 48 | } |
| @@ -37,7 +37,7 @@ class GoogleSearchController extends BaseController | @@ -37,7 +37,7 @@ class GoogleSearchController extends BaseController | ||
| 37 | //查询详情数据 | 37 | //查询详情数据 |
| 38 | $searchDetailModel = new GoogleSearchDetail(); | 38 | $searchDetailModel = new GoogleSearchDetail(); |
| 39 | $this->map['project_id'] = $this->user['project_id']; | 39 | $this->map['project_id'] = $this->user['project_id']; |
| 40 | - $data = $searchDetailModel->lists($this->map,$this->page,$this->row,'impressions',['keys','click_rate','impressions_rate']); | 40 | + $data = $searchDetailModel->lists($this->map,$this->page,$this->row,'impressions',['keys','click_rate','position','impressions_rate']); |
| 41 | if(!empty($data)){ | 41 | if(!empty($data)){ |
| 42 | if($this->param['type'] == 'country'){ | 42 | if($this->param['type'] == 'country'){ |
| 43 | $codeCountryModel = new GoogleCodeCountry(); | 43 | $codeCountryModel = new GoogleCodeCountry(); |
| @@ -29,7 +29,7 @@ class NewsCategoryController extends BaseController | @@ -29,7 +29,7 @@ class NewsCategoryController extends BaseController | ||
| 29 | $template_id = $this->getTemplateId(BTemplate::SOURCE_BLOG,BTemplate::IS_LIST); | 29 | $template_id = $this->getTemplateId(BTemplate::SOURCE_BLOG,BTemplate::IS_LIST); |
| 30 | foreach ($lists as $k => $v){ | 30 | foreach ($lists as $k => $v){ |
| 31 | $v['num'] = $newsModel->formatQuery(['category_id'=>['like','%,' . $v['id'] . ',%']])->count(); | 31 | $v['num'] = $newsModel->formatQuery(['category_id'=>['like','%,' . $v['id'] . ',%']])->count(); |
| 32 | - $v['url'] = $this->user['domain'].getRouteMap(RouteMap::SOURCE_NEWS_CATE,$v['id']); | 32 | + $v['url'] = $this->user['domain'].getRouteMap(RouteMap::SOURCE_NEWS_CATE,$v['id'],$this->user['is_upgrade']); |
| 33 | $v['is_renovation'] = $this->getIsRenovation(BTemplate::SOURCE_NEWS,BTemplate::IS_LIST,$template_id,$v['id']); | 33 | $v['is_renovation'] = $this->getIsRenovation(BTemplate::SOURCE_NEWS,BTemplate::IS_LIST,$template_id,$v['id']); |
| 34 | $lists[$k] = $v; | 34 | $lists[$k] = $v; |
| 35 | } | 35 | } |
| @@ -321,6 +321,9 @@ class NewsController extends BaseController | @@ -321,6 +321,9 @@ class NewsController extends BaseController | ||
| 321 | 'keyword.required' => 'keyword不能为空', | 321 | 'keyword.required' => 'keyword不能为空', |
| 322 | ]); | 322 | ]); |
| 323 | $data = curl_get('http://gnews.globalso.com/gnews_news.php?keyword='.$this->param['keyword'],true); | 323 | $data = curl_get('http://gnews.globalso.com/gnews_news.php?keyword='.$this->param['keyword'],true); |
| 324 | + if(isset($data['data']['p'][0]) && !empty($data['data']['p'][0])){ | ||
| 325 | + $data['data']['p'][0] = str_replace(' ' ,' ',$data['data']['p'][0]); | ||
| 326 | + } | ||
| 324 | $this->response('success',Code::SUCCESS,$data); | 327 | $this->response('success',Code::SUCCESS,$data); |
| 325 | } | 328 | } |
| 326 | 329 |
| @@ -13,6 +13,8 @@ use App\Enums\Common\Code; | @@ -13,6 +13,8 @@ use App\Enums\Common\Code; | ||
| 13 | use App\Http\Controllers\Bside\BaseController; | 13 | use App\Http\Controllers\Bside\BaseController; |
| 14 | use App\Http\Logic\Bside\Setting\TranslateLogic; | 14 | use App\Http\Logic\Bside\Setting\TranslateLogic; |
| 15 | use App\Models\Blog\Blog; | 15 | use App\Models\Blog\Blog; |
| 16 | +use App\Models\CustomModule\CustomModule; | ||
| 17 | +use App\Models\CustomModule\CustomModuleCategory; | ||
| 16 | use App\Models\CustomModule\CustomModuleContent; | 18 | use App\Models\CustomModule\CustomModuleContent; |
| 17 | use App\Models\News\News; | 19 | use App\Models\News\News; |
| 18 | use App\Models\Product\Product; | 20 | use App\Models\Product\Product; |
| @@ -279,7 +281,19 @@ class TranslateController extends BaseController | @@ -279,7 +281,19 @@ class TranslateController extends BaseController | ||
| 279 | case RouteMap::SOURCE_MODULE_CATE: | 281 | case RouteMap::SOURCE_MODULE_CATE: |
| 280 | $customModel = new CustomModuleContent(); | 282 | $customModel = new CustomModuleContent(); |
| 281 | $count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count(); | 283 | $count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count(); |
| 282 | - $this->pageSixList($data,$count,$v,3,10); | 284 | + //获取module_id |
| 285 | + $customCateModel = new CustomModuleCategory(); | ||
| 286 | + $cateInfo = $customCateModel->read(['route'=>$v['route']],['module_id']); | ||
| 287 | + if($cateInfo !== false){ | ||
| 288 | + $model = new CustomModule(); | ||
| 289 | + $moduleInfo = $model->read(['id'=>$cateInfo['module_id']],['route']); | ||
| 290 | + if($moduleInfo !== false){ | ||
| 291 | + if($v['route'] != $moduleInfo['route']){ | ||
| 292 | + $v['route'] = $moduleInfo['route'].'/'.$v['route']; | ||
| 293 | + } | ||
| 294 | + } | ||
| 295 | + } | ||
| 296 | + $this->pageList($data,$count,$v,3,10); | ||
| 283 | break; | 297 | break; |
| 284 | default: | 298 | default: |
| 285 | $data[] = $v['route']; | 299 | $data[] = $v['route']; |
| @@ -393,7 +407,7 @@ class TranslateController extends BaseController | @@ -393,7 +407,7 @@ class TranslateController extends BaseController | ||
| 393 | } | 407 | } |
| 394 | 408 | ||
| 395 | /** | 409 | /** |
| 396 | - * @remark : | 410 | + * @remark :5.0列表页路由处理 |
| 397 | * @name :pageList | 411 | * @name :pageList |
| 398 | * @author :lyh | 412 | * @author :lyh |
| 399 | * @method :post | 413 | * @method :post |
| @@ -412,6 +426,15 @@ class TranslateController extends BaseController | @@ -412,6 +426,15 @@ class TranslateController extends BaseController | ||
| 412 | } | 426 | } |
| 413 | $page = ceil($count / $pageNum);//向上取整 | 427 | $page = ceil($count / $pageNum);//向上取整 |
| 414 | } | 428 | } |
| 429 | + if($v['source'] == RouteMap::SOURCE_NEWS_CATE){ | ||
| 430 | + if($v['route'] != 'news'){ | ||
| 431 | + $v['route'] = RouteMap::PATH_NEWS_CATE.'/'.$v['route']; | ||
| 432 | + } | ||
| 433 | + }elseif($v['source'] == RouteMap::SOURCE_BLOG_CATE){ | ||
| 434 | + if($v['route'] != 'blog'){ | ||
| 435 | + $v['route'] = RouteMap::PATH_BLOG_CATE.'/'.$v['route']; | ||
| 436 | + } | ||
| 437 | + } | ||
| 415 | for ($i = 1;$i <= $page;$i++){ | 438 | for ($i = 1;$i <= $page;$i++){ |
| 416 | if($i == 1){ | 439 | if($i == 1){ |
| 417 | $data[] = $v['route']; | 440 | $data[] = $v['route']; |
| @@ -423,7 +446,7 @@ class TranslateController extends BaseController | @@ -423,7 +446,7 @@ class TranslateController extends BaseController | ||
| 423 | } | 446 | } |
| 424 | 447 | ||
| 425 | /** | 448 | /** |
| 426 | - * @remark : | 449 | + * @remark :6.0列表路由处理 |
| 427 | * @name :pageList | 450 | * @name :pageList |
| 428 | * @author :lyh | 451 | * @author :lyh |
| 429 | * @method :post | 452 | * @method :post |
| @@ -200,7 +200,22 @@ class DomainInfoLogic extends BaseLogic | @@ -200,7 +200,22 @@ class DomainInfoLogic extends BaseLogic | ||
| 200 | $host_array = explode('.',$host); | 200 | $host_array = explode('.',$host); |
| 201 | 201 | ||
| 202 | if($this->param['type'] == 3){ | 202 | if($this->param['type'] == 3){ |
| 203 | - //需要申请通配符证书,判断_acme-challenge是否已经解析 | 203 | + //需要申请通配符证书 |
| 204 | + | ||
| 205 | + //判断*是否已经解析 | ||
| 206 | + $host_array_any = $host_array; | ||
| 207 | + if (count($host_array_any) <= 2) { | ||
| 208 | + array_unshift($host_array_any, '*'); | ||
| 209 | + } else { | ||
| 210 | + $host_array_any[0] = '*'; | ||
| 211 | + } | ||
| 212 | + $any_domain = implode('.',$host_array_any); | ||
| 213 | + $rand_str = generateRandomString(3); | ||
| 214 | + if(!check_domain_record(str_replace('*',$rand_str,$any_domain), $serversIpInfo)){ | ||
| 215 | + $this->fail('域名' . $any_domain . '未解析至目标服务器'); | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + //判断_acme-challenge是否已经解析 | ||
| 204 | $host_array_ssl = $host_array; | 219 | $host_array_ssl = $host_array; |
| 205 | if (count($host_array_ssl) <= 2) { | 220 | if (count($host_array_ssl) <= 2) { |
| 206 | array_unshift($host_array_ssl, '_acme-challenge'); | 221 | array_unshift($host_array_ssl, '_acme-challenge'); |
| @@ -20,6 +20,7 @@ use App\Models\RankData\ExternalLinks as ExternalLinksModel; | @@ -20,6 +20,7 @@ use App\Models\RankData\ExternalLinks as ExternalLinksModel; | ||
| 20 | use App\Models\RankData\IndexedPages; | 20 | use App\Models\RankData\IndexedPages; |
| 21 | use App\Models\RankData\IndexedPages as IndexedPagesModel; | 21 | use App\Models\RankData\IndexedPages as IndexedPagesModel; |
| 22 | use App\Models\RankData\RankData; | 22 | use App\Models\RankData\RankData; |
| 23 | +use App\Models\RankData\RankDataBmseo; | ||
| 23 | use App\Models\RankData\RankWeek; | 24 | use App\Models\RankData\RankWeek; |
| 24 | use App\Models\RankData\RankWeek as RankWeekModel; | 25 | use App\Models\RankData\RankWeek as RankWeekModel; |
| 25 | use App\Models\RankData\RecommDomain; | 26 | use App\Models\RankData\RecommDomain; |
| @@ -32,6 +33,7 @@ use Illuminate\Database\Eloquent\Model; | @@ -32,6 +33,7 @@ use Illuminate\Database\Eloquent\Model; | ||
| 32 | use Illuminate\Support\Collection; | 33 | use Illuminate\Support\Collection; |
| 33 | use Illuminate\Support\Facades\Cache; | 34 | use Illuminate\Support\Facades\Cache; |
| 34 | use Illuminate\Support\Facades\Log; | 35 | use Illuminate\Support\Facades\Log; |
| 36 | +use Illuminate\Support\Str; | ||
| 35 | 37 | ||
| 36 | class RankDataLogic extends BaseLogic | 38 | class RankDataLogic extends BaseLogic |
| 37 | { | 39 | { |
| @@ -193,6 +195,11 @@ class RankDataLogic extends BaseLogic | @@ -193,6 +195,11 @@ class RankDataLogic extends BaseLogic | ||
| 193 | $data['current_api_no'] = $api_no; | 195 | $data['current_api_no'] = $api_no; |
| 194 | $data['current_api_source'] = $api_no == 10690 ? 'Yandex' : 'Google'; | 196 | $data['current_api_source'] = $api_no == 10690 ? 'Yandex' : 'Google'; |
| 195 | } | 197 | } |
| 198 | + $data['api_no'] = $api_no; | ||
| 199 | + $bmseo_id = RankDataBmseo::where('project_id', $project_id)->value('id'); | ||
| 200 | + if($bmseo_id){ | ||
| 201 | + $data['bmseo_api_no'] = $bmseo_id . '_bmseo'; | ||
| 202 | + } | ||
| 196 | 203 | ||
| 197 | return $data; | 204 | return $data; |
| 198 | } | 205 | } |
| @@ -226,7 +233,12 @@ class RankDataLogic extends BaseLogic | @@ -226,7 +233,12 @@ class RankDataLogic extends BaseLogic | ||
| 226 | $ai_projects = $this->getAiProjects()['data'] ?? []; | 233 | $ai_projects = $this->getAiProjects()['data'] ?? []; |
| 227 | $flg_ai = $this->getAiFlag($ai_projects, $domain); | 234 | $flg_ai = $this->getAiFlag($ai_projects, $domain); |
| 228 | $ai_domain = str_replace('www.', '', $this->getAiProjects($domain)['domain'] ?? ''); | 235 | $ai_domain = str_replace('www.', '', $this->getAiProjects($domain)['domain'] ?? ''); |
| 229 | - $list = RankData::where('project_id', $project_id)->where('api_no', $api_no)->where('lang', $lang)->value('data') ?: []; | 236 | + if (Str::endsWith($api_no, '_bmseo')) { |
| 237 | + $list = RankDataBmseo::where('project_id', $project_id)->where('api_no', $api_no)->where('lang', $lang)->value('data') ?: []; | ||
| 238 | + } else { | ||
| 239 | + $list = RankData::where('project_id', $project_id)->where('api_no', $api_no)->where('lang', $lang)->value('data') ?: []; | ||
| 240 | + } | ||
| 241 | + | ||
| 230 | $list30 = []; //排名前三十的 | 242 | $list30 = []; //排名前三十的 |
| 231 | $list30_0 = []; //排名前三十且近三天没有排名的 | 243 | $list30_0 = []; //排名前三十且近三天没有排名的 |
| 232 | $list100 = []; //排名前100的 | 244 | $list100 = []; //排名前100的 |
| @@ -360,6 +372,34 @@ class RankDataLogic extends BaseLogic | @@ -360,6 +372,34 @@ class RankDataLogic extends BaseLogic | ||
| 360 | } | 372 | } |
| 361 | 373 | ||
| 362 | /** | 374 | /** |
| 375 | + * 获取白帽seo站点项目 | ||
| 376 | + * @author zbj | ||
| 377 | + * @date 2023/5/12 | ||
| 378 | + */ | ||
| 379 | + public function getBmSeoProjects($domain = '') | ||
| 380 | + { | ||
| 381 | + $key = 'weblist_bm'; | ||
| 382 | + $data = Cache::get($key); | ||
| 383 | + if (!$data) { | ||
| 384 | + $api_url = 'http://api.quanqiusou.cn/api/index/weblist_bm'; | ||
| 385 | + try { | ||
| 386 | + $data = HttpUtils::get($api_url, ['key'=> '289c1fc81c89d79c04ed4fd72822948e']); | ||
| 387 | + if ($data) { | ||
| 388 | + $data = Arr::s2a($data); | ||
| 389 | + Cache::put($key, $data, 4 * 3600); | ||
| 390 | + } | ||
| 391 | + } catch (\Exception | GuzzleException $e) { | ||
| 392 | + errorLog('白帽seo站点项目获取失败', [], $e); | ||
| 393 | + return false; | ||
| 394 | + } | ||
| 395 | + } | ||
| 396 | + if ($domain) { | ||
| 397 | + return array_search($domain, $data); | ||
| 398 | + } | ||
| 399 | + return $data; | ||
| 400 | + } | ||
| 401 | + | ||
| 402 | + /** | ||
| 363 | * 获取AI站点项目 | 403 | * 获取AI站点项目 |
| 364 | * | 404 | * |
| 365 | * @author zbj | 405 | * @author zbj |
| @@ -622,6 +662,58 @@ class RankDataLogic extends BaseLogic | @@ -622,6 +662,58 @@ class RankDataLogic extends BaseLogic | ||
| 622 | return $model->is_compliance; | 662 | return $model->is_compliance; |
| 623 | } | 663 | } |
| 624 | 664 | ||
| 665 | + public function save_rank_bmseo($project_id, $api_no, $data){ | ||
| 666 | + $first_num = $first_page_num = $first_three_pages_num = $first_five_pages_num = $first_ten_pages_num = 0; | ||
| 667 | + $first_page_without_extension_num = 0; //不算扩展词在首页的数量 | ||
| 668 | + $first_page_extension_num = 0; //扩展词在首页的数量 | ||
| 669 | + foreach ($data as &$ranks){ | ||
| 670 | + ksort($ranks); | ||
| 671 | + $last = Arr::last($ranks); | ||
| 672 | + //第一名 | ||
| 673 | + if($last['position'] == 1){ | ||
| 674 | + $first_num ++; | ||
| 675 | + } | ||
| 676 | + //排名第一页 | ||
| 677 | + if($last['position'] > 0 && $last['position'] <= 10){ | ||
| 678 | + $first_page_num ++; | ||
| 679 | + $last['g'] == 1 && $first_page_without_extension_num++; | ||
| 680 | + $last['g'] == 2 && $first_page_extension_num++; | ||
| 681 | + } | ||
| 682 | + //排名前三页 | ||
| 683 | + if($last['position'] > 0 && $last['position'] <= 30){ | ||
| 684 | + $first_three_pages_num ++; | ||
| 685 | + } | ||
| 686 | + //排名前五页 | ||
| 687 | + if($last['position'] > 0 && $last['position'] <= 50){ | ||
| 688 | + $first_five_pages_num ++; | ||
| 689 | + } | ||
| 690 | + //排名前十页 | ||
| 691 | + if($last['position'] > 0 && $last['position'] <= 100){ | ||
| 692 | + $first_ten_pages_num ++; | ||
| 693 | + } | ||
| 694 | + } | ||
| 695 | + $where = [ | ||
| 696 | + 'project_id' => $project_id, | ||
| 697 | + 'api_no' => $api_no, | ||
| 698 | + ]; | ||
| 699 | + $model = RankDataBmseo::where($where)->first(); | ||
| 700 | + if(!$model){ | ||
| 701 | + $model = new RankDataBmseo(); | ||
| 702 | + } | ||
| 703 | + $model->project_id = $project_id; | ||
| 704 | + $model->api_no = $api_no; | ||
| 705 | + $model->first_num = $first_num; | ||
| 706 | + $model->first_page_num = $first_page_num; | ||
| 707 | + $model->first_three_pages_num = $first_three_pages_num; | ||
| 708 | + $model->first_five_pages_num = $first_five_pages_num; | ||
| 709 | + $model->first_ten_pages_num = $first_ten_pages_num; | ||
| 710 | + $model->data = $data; | ||
| 711 | + $model->updated_date = date('Y-m-d'); | ||
| 712 | + $model->save(); | ||
| 713 | + | ||
| 714 | + return true; | ||
| 715 | + } | ||
| 716 | + | ||
| 625 | /** | 717 | /** |
| 626 | * @remark :g_top | 718 | * @remark :g_top |
| 627 | * @name :g_top_plan | 719 | * @name :g_top_plan |
| @@ -66,19 +66,6 @@ class InquiryFormData extends Base | @@ -66,19 +66,6 @@ class InquiryFormData extends Base | ||
| 66 | return 0; | 66 | return 0; |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | - | ||
| 70 | - $model = new self(); | ||
| 71 | - $model->form_id = $form_id; | ||
| 72 | - $model->domain = $domain; | ||
| 73 | - $model->ip = $ip; | ||
| 74 | - $model->country = $country; | ||
| 75 | - $model->referer = $referer; | ||
| 76 | - $model->user_agent = $user_agent; | ||
| 77 | - $model->submit_at = $submit_at; | ||
| 78 | - $model->data = $data; | ||
| 79 | - $model->sign = $sign; | ||
| 80 | - $model->save(); | ||
| 81 | - | ||
| 82 | if(!empty($data['name']) && !empty($data['email']) && !empty($data['message'])){ | 69 | if(!empty($data['name']) && !empty($data['email']) && !empty($data['message'])){ |
| 83 | Log::channel('inquiry')->info('开始发邮件' . PHP_EOL); | 70 | Log::channel('inquiry')->info('开始发邮件' . PHP_EOL); |
| 84 | 71 | ||
| @@ -102,8 +89,24 @@ class InquiryFormData extends Base | @@ -102,8 +89,24 @@ class InquiryFormData extends Base | ||
| 102 | if(!$has_file) { | 89 | if(!$has_file) { |
| 103 | $res = (new FormGlobalsoApi())->submitInquiry($ip, $referer, $submit_at, $data, $traffic); | 90 | $res = (new FormGlobalsoApi())->submitInquiry($ip, $referer, $submit_at, $data, $traffic); |
| 104 | Log::channel('inquiry')->info('询盘发送邮件', [$data, $res]); | 91 | Log::channel('inquiry')->info('询盘发送邮件', [$data, $res]); |
| 92 | + if(!$res){ | ||
| 93 | + throw new \Exception('询盘发送邮件失败'); | ||
| 94 | + } | ||
| 105 | } | 95 | } |
| 106 | } | 96 | } |
| 97 | + | ||
| 98 | + $model = new self(); | ||
| 99 | + $model->form_id = $form_id; | ||
| 100 | + $model->domain = $domain; | ||
| 101 | + $model->ip = $ip; | ||
| 102 | + $model->country = $country; | ||
| 103 | + $model->referer = $referer; | ||
| 104 | + $model->user_agent = $user_agent; | ||
| 105 | + $model->submit_at = $submit_at; | ||
| 106 | + $model->data = $data; | ||
| 107 | + $model->sign = $sign; | ||
| 108 | + $model->save(); | ||
| 109 | + | ||
| 107 | return $model->id; | 110 | return $model->id; |
| 108 | } | 111 | } |
| 109 | 112 |
app/Models/RankData/RankDataBmseo.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Models\RankData; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +use App\Helper\Arr; | ||
| 7 | +use App\Models\Base; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * Class GoogleRank | ||
| 11 | + * @package App\Models | ||
| 12 | + * @author zbj | ||
| 13 | + * @date 2023/5/6 | ||
| 14 | + */ | ||
| 15 | +class RankDataBmseo extends Base | ||
| 16 | +{ | ||
| 17 | + //设置关联表名 | ||
| 18 | + protected $table = 'gl_rank_data_bmseo'; | ||
| 19 | + | ||
| 20 | + public static function gMap(){ | ||
| 21 | + return [ | ||
| 22 | + 1 => '主关键词', | ||
| 23 | + 2 => '拓展关键词', | ||
| 24 | + 3 => '小语种关键词', | ||
| 25 | + ]; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public function setDataAttribute($value) | ||
| 29 | + { | ||
| 30 | + $this->attributes['data'] = Arr::a2s($value); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public function getDataAttribute($value) | ||
| 34 | + { | ||
| 35 | + return Arr::s2a($value); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | +} |
| @@ -68,6 +68,11 @@ class SyncSubmitTaskService | @@ -68,6 +68,11 @@ class SyncSubmitTaskService | ||
| 68 | $project = $checkIpCountry['project']; | 68 | $project = $checkIpCountry['project']; |
| 69 | $data['project_id'] = $project['id']; | 69 | $data['project_id'] = $project['id']; |
| 70 | 70 | ||
| 71 | + if(empty($data['data']['url']) && $task['type'] == 'visit'){ | ||
| 72 | + throw new InquiryFilterException( 'url为空'); | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + | ||
| 71 | //特殊处理 | 76 | //特殊处理 |
| 72 | if($project['id'] == 455 && !empty($data['email']) && $data['email'] == 'alb@marketingtu.org'){ | 77 | if($project['id'] == 455 && !empty($data['email']) && $data['email'] == 'alb@marketingtu.org'){ |
| 73 | throw new InquiryFilterException( '黑名单邮箱'); | 78 | throw new InquiryFilterException( '黑名单邮箱'); |
| @@ -288,6 +293,7 @@ class SyncSubmitTaskService | @@ -288,6 +293,7 @@ class SyncSubmitTaskService | ||
| 288 | $name = empty($data['data']['name']) ? '' : ' ' . $data['data']['name']; | 293 | $name = empty($data['data']['name']) ? '' : ' ' . $data['data']['name']; |
| 289 | MessagePush::addInquiryMessage($id, $data['project_id'], $data['country'], $name, $data['submit_at']); | 294 | MessagePush::addInquiryMessage($id, $data['project_id'], $data['country'], $name, $data['submit_at']); |
| 290 | }catch (\Exception $e){ | 295 | }catch (\Exception $e){ |
| 296 | + Cache::decrement($ip_cache_key); | ||
| 291 | Log::channel('inquiry')->info($task_id . '询盘失败', [$e->getMessage(), $e->getFile(), $e->getLine()]); | 297 | Log::channel('inquiry')->info($task_id . '询盘失败', [$e->getMessage(), $e->getFile(), $e->getLine()]); |
| 292 | LogUtils::error('询盘消息'.$id.'写入企微消息队列失败' . $e->getMessage()); | 298 | LogUtils::error('询盘消息'.$id.'写入企微消息队列失败' . $e->getMessage()); |
| 293 | } | 299 | } |
-
请 注册 或 登录 后发表评论