Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6
正在显示
19 个修改的文件
包含
194 行增加
和
108 行删除
| @@ -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 |
app/Models/Com/WordCountry.php
0 → 100644
| 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 | } |
app/Models/WebSetting/WebSettingYoutube.php
0 → 100644
| 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 | //生成路由 |
-
请 注册 或 登录 后发表评论