Merge remote-tracking branch 'origin/master' into akun
正在显示
8 个修改的文件
包含
124 行增加
和
43 行删除
| @@ -220,17 +220,24 @@ class VideoTask extends Command | @@ -220,17 +220,24 @@ class VideoTask extends Command | ||
| 220 | if (count($productIds)<7){ | 220 | if (count($productIds)<7){ |
| 221 | $product_all_id = Product::where("project_id", $project_id)->whereNotIn('id', $productIds)->where("status",Product::STATUS_ON)->pluck('id')->toArray(); | 221 | $product_all_id = Product::where("project_id", $project_id)->whereNotIn('id', $productIds)->where("status",Product::STATUS_ON)->pluck('id')->toArray(); |
| 222 | $number = 40; | 222 | $number = 40; |
| 223 | - $product_id = array_rand($product_all_id, min(count($product_all_id, $number-count($productIds)))); | ||
| 224 | - $randomData = Product::where("project_id", $project_id)->whereIn("id", $product_id)->get(); | ||
| 225 | - $products = $productsQuery->merge($randomData); | 223 | + $array_count = count($product_all_id); |
| 224 | + if ($array_count > 0) { | ||
| 225 | + $product_id = array_rand($product_all_id, min($array_count, $number - count($productIds))); | ||
| 226 | + $randomData = Product::where("project_id", $project_id)->whereIn("id", $product_id)->get(); | ||
| 227 | + $products = $productsQuery->merge($randomData); | ||
| 228 | + } | ||
| 226 | }else{ | 229 | }else{ |
| 227 | $products = $productsQuery; | 230 | $products = $productsQuery; |
| 228 | } | 231 | } |
| 229 | }else{ | 232 | }else{ |
| 230 | $product_all_id = Product::where("project_id", $project_id)->where("status",Product::STATUS_ON)->pluck('id')->toArray(); | 233 | $product_all_id = Product::where("project_id", $project_id)->where("status",Product::STATUS_ON)->pluck('id')->toArray(); |
| 231 | $number = 40; | 234 | $number = 40; |
| 232 | - $product_id = array_rand($product_all_id, min(count($product_all_id, $number-count($productIds)))); | ||
| 233 | - $products = Product::where("project_id", $project_id)->whereIn("id", $product_id)->get(); | 235 | + $array_count = count($product_all_id); |
| 236 | + if ($array_count > 0) | ||
| 237 | + { | ||
| 238 | + $product_id = array_rand($product_all_id, min($array_count, $number-count($productIds))); | ||
| 239 | + $products = Product::where("project_id", $project_id)->whereIn("id", $product_id)->get(); | ||
| 240 | + } | ||
| 234 | } | 241 | } |
| 235 | } | 242 | } |
| 236 | $data = []; | 243 | $data = []; |
| @@ -242,10 +249,11 @@ class VideoTask extends Command | @@ -242,10 +249,11 @@ class VideoTask extends Command | ||
| 242 | if(count($data) > 13){ | 249 | if(count($data) > 13){ |
| 243 | break; | 250 | break; |
| 244 | } | 251 | } |
| 245 | - if (strpos($item->keyword_id, ','.$productKeyword->id.',') === false) { | 252 | + $keyword_id = implode(',',$item->keyword_id); |
| 253 | + if (strpos(','.$keyword_id.',', ','.$productKeyword->id.',') === false) { | ||
| 246 | //不包含 | 254 | //不包含 |
| 247 | $productModel = new Product(); | 255 | $productModel = new Product(); |
| 248 | - $keyword_id = $item->keyword_id . $productKeyword->id.','; | 256 | + $keyword_id = $keyword_id . $productKeyword->id.','; |
| 249 | $productModel->edit(['keyword_id'=>$keyword_id],['id'=>$item->id]); | 257 | $productModel->edit(['keyword_id'=>$keyword_id],['id'=>$item->id]); |
| 250 | } | 258 | } |
| 251 | $data[] = ['url'=>getImageUrl($item->thumb['url']),'title'=>$item->title]; | 259 | $data[] = ['url'=>getImageUrl($item->thumb['url']),'title'=>$item->title]; |
| @@ -19,13 +19,13 @@ class Kernel extends ConsoleKernel | @@ -19,13 +19,13 @@ class Kernel extends ConsoleKernel | ||
| 19 | $schedule->command('remain_day')->dailyAt('08:00')->withoutOverlapping(1); // 项目剩余服务时长 | 19 | $schedule->command('remain_day')->dailyAt('08:00')->withoutOverlapping(1); // 项目剩余服务时长 |
| 20 | $schedule->command('rank_data_task')->everyMinute()->withoutOverlapping(1); // 排名数据更新任务 | 20 | $schedule->command('rank_data_task')->everyMinute()->withoutOverlapping(1); // 排名数据更新任务 |
| 21 | $schedule->command('rank_data')->dailyAt('07:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 | 21 | $schedule->command('rank_data')->dailyAt('07:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 |
| 22 | - $schedule->command('rank_data_speed')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次 | ||
| 23 | - $schedule->command('rank_data_external_links')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 | ||
| 24 | - $schedule->command('rank_data_indexed_pages')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据-页面收录,每周一凌晨执行一次 | ||
| 25 | - $schedule->command('rank_data_recomm_domain')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次 | 22 | + $schedule->command('rank_data_speed')->dailyAt('01:10')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次 |
| 23 | + $schedule->command('rank_data_external_links')->dailyAt('01:20')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 | ||
| 24 | + $schedule->command('rank_data_indexed_pages')->dailyAt('01:30')->withoutOverlapping(1); // 排名数据-页面收录,每周一凌晨执行一次 | ||
| 25 | + $schedule->command('rank_data_recomm_domain')->dailyAt('01:40')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次 | ||
| 26 | $schedule->command('rank_data_week')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据,每周一凌晨执行一次 | 26 | $schedule->command('rank_data_week')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据,每周一凌晨执行一次 |
| 27 | // $schedule->command('share_user')->dailyAt('01:00')->withoutOverlapping(1); // 清除用户ayr_share数据,每天凌晨1点执行一次 | 27 | // $schedule->command('share_user')->dailyAt('01:00')->withoutOverlapping(1); // 清除用户ayr_share数据,每天凌晨1点执行一次 |
| 28 | - $schedule->command('count')->dailyAt('01:00')->withoutOverlapping(1); //每天凌晨1点执行一次 | 28 | + $schedule->command('count')->dailyAt('00:30')->withoutOverlapping(1); //每天凌晨1点执行一次 |
| 29 | $schedule->command('service_count')->dailyAt('01:00')->withoutOverlapping(1); //服务器使用情况,每天凌晨1点执行一次 | 29 | $schedule->command('service_count')->dailyAt('01:00')->withoutOverlapping(1); //服务器使用情况,每天凌晨1点执行一次 |
| 30 | $schedule->command('web_traffic 1')->everyThirtyMinutes(); // 引流 1-3个月的项目,半小时一次 | 30 | $schedule->command('web_traffic 1')->everyThirtyMinutes(); // 引流 1-3个月的项目,半小时一次 |
| 31 | $schedule->command('web_traffic 2')->cron('*/18 * * * *'); // 引流 4-8个月的项目,18分钟一次 | 31 | $schedule->command('web_traffic 2')->cron('*/18 * * * *'); // 引流 4-8个月的项目,18分钟一次 |
| @@ -35,7 +35,7 @@ class Kernel extends ConsoleKernel | @@ -35,7 +35,7 @@ class Kernel extends ConsoleKernel | ||
| 35 | $schedule->command('forward_count')->monthlyOn(1,'01:00')->withoutOverlapping(1);//没月月初1号执行月统计转发询盘记录 | 35 | $schedule->command('forward_count')->monthlyOn(1,'01:00')->withoutOverlapping(1);//没月月初1号执行月统计转发询盘记录 |
| 36 | $schedule->command('inquiry_delay')->everyMinute()->withoutOverlapping(1);//TODO::上线放开,转发询盘,每分钟执行一次 | 36 | $schedule->command('inquiry_delay')->everyMinute()->withoutOverlapping(1);//TODO::上线放开,转发询盘,每分钟执行一次 |
| 37 | $schedule->command('inquiry_count')->dailyAt('01:00')->withoutOverlapping(1); // 询盘统计数据,每天凌晨执行一次 | 37 | $schedule->command('inquiry_count')->dailyAt('01:00')->withoutOverlapping(1); // 询盘统计数据,每天凌晨执行一次 |
| 38 | - $schedule->command('domain_info')->dailyAt('01:00')->withoutOverlapping(1);// 更新域名|证书结束时间,每天凌晨1点执行一次 | 38 | + $schedule->command('domain_info')->dailyAt('01:20')->withoutOverlapping(1);// 更新域名|证书结束时间,每天凌晨1点执行一次 |
| 39 | $schedule->command('last_inquiry')->dailyAt('04:00')->withoutOverlapping(1);// 最近一次询盘信息 | 39 | $schedule->command('last_inquiry')->dailyAt('04:00')->withoutOverlapping(1);// 最近一次询盘信息 |
| 40 | // $schedule->command('update_progress')->everyThirtyMinutes()->withoutOverlapping(1);//监控更新 | 40 | // $schedule->command('update_progress')->everyThirtyMinutes()->withoutOverlapping(1);//监控更新 |
| 41 | $schedule->command('update_seo_tdk_crontab')->dailyAt('00:00')->withoutOverlapping(1); //更新上线项目TDK | 41 | $schedule->command('update_seo_tdk_crontab')->dailyAt('00:00')->withoutOverlapping(1); //更新上线项目TDK |
| @@ -43,8 +43,12 @@ class Kernel extends ConsoleKernel | @@ -43,8 +43,12 @@ class Kernel extends ConsoleKernel | ||
| 43 | // $schedule->command('project_file_pdf')->dailyAt('00:00')->withoutOverlapping(1); // 网站项目数据,生成PDF文件 | 43 | // $schedule->command('project_file_pdf')->dailyAt('00:00')->withoutOverlapping(1); // 网站项目数据,生成PDF文件 |
| 44 | $schedule->command('sync_manager')->dailyAt('01:00')->withoutOverlapping(1); //TODO::手机号码同步 每天执行一次 | 44 | $schedule->command('sync_manager')->dailyAt('01:00')->withoutOverlapping(1); //TODO::手机号码同步 每天执行一次 |
| 45 | 45 | ||
| 46 | - $schedule->command('recommended_suppliers')->dailyAt('01:00')->withoutOverlapping(1); //每天凌晨1点执行一次生成推荐商 | 46 | + $schedule->command('recommended_suppliers')->dailyAt('03:00')->withoutOverlapping(1); //每天凌晨1点执行一次生成推荐商 |
| 47 | $schedule->command('notice_c')->dailyAt('02:00')->withoutOverlapping(1); //每天凌晨1点执行一次生成推荐商 | 47 | $schedule->command('notice_c')->dailyAt('02:00')->withoutOverlapping(1); //每天凌晨1点执行一次生成推荐商 |
| 48 | + // 每日推送视频任务 | ||
| 49 | + $schedule->command('video_task')->dailyAt('01:30')->withoutOverlapping(1); | ||
| 50 | + // 每日推送已完成视频任务项目生成对应界面 | ||
| 51 | + $schedule->command('notice_c')->dailyAt('02:00')->withoutOverlapping(1); | ||
| 48 | } | 52 | } |
| 49 | 53 | ||
| 50 | /** | 54 | /** |
| @@ -13,8 +13,10 @@ use App\Models\Product\Product; | @@ -13,8 +13,10 @@ use App\Models\Product\Product; | ||
| 13 | use App\Models\Project\OnlineCheck; | 13 | use App\Models\Project\OnlineCheck; |
| 14 | use App\Models\Project\Project; | 14 | use App\Models\Project\Project; |
| 15 | use App\Models\RouteMap\RouteMap; | 15 | use App\Models\RouteMap\RouteMap; |
| 16 | +use App\Models\User\User; | ||
| 16 | use App\Services\ProjectServer; | 17 | use App\Services\ProjectServer; |
| 17 | use Illuminate\Http\Request; | 18 | use Illuminate\Http\Request; |
| 19 | +use Illuminate\Support\Facades\DB; | ||
| 18 | 20 | ||
| 19 | /** | 21 | /** |
| 20 | * Class PrivateController | 22 | * Class PrivateController |
| @@ -98,4 +100,46 @@ class PrivateController extends BaseController | @@ -98,4 +100,46 @@ class PrivateController extends BaseController | ||
| 98 | } | 100 | } |
| 99 | return $this->success($result); | 101 | return $this->success($result); |
| 100 | } | 102 | } |
| 103 | + | ||
| 104 | + /** | ||
| 105 | + * 验证当前用户是否存在 | ||
| 106 | + * TODO 查询手机号码是否是项目用户, 如果升级项目未上线项目return false; | ||
| 107 | + * @param Request $request | ||
| 108 | + * @return false|string | ||
| 109 | + */ | ||
| 110 | + public function hasUser(Request $request) | ||
| 111 | + { | ||
| 112 | + // 获取数据,初始化信息 | ||
| 113 | + $mobile = trim($request->input('mobile')); | ||
| 114 | + $result = ['mobile' => $mobile, 'v6_user' => false]; | ||
| 115 | + | ||
| 116 | + // 获取用户,验证用户 | ||
| 117 | + $project_ids = User::where(['mobile' => $mobile])->pluck('project_id')->toArray(); | ||
| 118 | + if (empty($project_ids)) | ||
| 119 | + return $this->success($result); | ||
| 120 | + | ||
| 121 | + $projects = Project::whereIn('id', $project_ids)->where('delete_status', 0)->get(); | ||
| 122 | + foreach ($projects as $project) { | ||
| 123 | + // 如果是升级项目 并且未上线状态,不算做有效用户 | ||
| 124 | + if ($project->is_upgrade == Project::IS_UPGRADE_TRUE && $project->type <= Project::TYPE_ONE) | ||
| 125 | + continue; | ||
| 126 | + $result['v6_user'] = true; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + return $this->success($result); | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + /** | ||
| 133 | + * v6 有效用户 | ||
| 134 | + * @param Request $request | ||
| 135 | + * @return false|string | ||
| 136 | + */ | ||
| 137 | + public function validUser(Request $request) | ||
| 138 | + { | ||
| 139 | + // 排除演示项目数据 | ||
| 140 | + $valid_user = User::select(['gl_project_user.mobile'])->leftJoin('gl_project', 'gl_project.id', '=', 'gl_project_user.project_id')->where(['delete_status' => 0, 'is_upgrade' => Project::IS_UPGRADE_FALSE])->where('gl_project.id', '>', 1)->pluck('mobile')->toArray(); | ||
| 141 | + $upgrade_user = User::select(['gl_project_user.mobile'])->leftJoin('gl_project', 'gl_project.id', '=', 'gl_project_user.project_id')->where(['delete_status' => 0, 'is_upgrade' => Project::IS_UPGRADE_TRUE])->where('gl_project.type', '>', Project::TYPE_ONE)->pluck('mobile')->toArray(); | ||
| 142 | + $user = array_unique(array_merge($valid_user, $upgrade_user)); | ||
| 143 | + return $this->success($user); | ||
| 144 | + } | ||
| 101 | } | 145 | } |
| @@ -235,9 +235,15 @@ class LoginController extends BaseController | @@ -235,9 +235,15 @@ class LoginController extends BaseController | ||
| 235 | * @time :2023/8/24 17:37 | 235 | * @time :2023/8/24 17:37 |
| 236 | */ | 236 | */ |
| 237 | public function globalSo_v6_login(UserLoginLogic $logic){ | 237 | public function globalSo_v6_login(UserLoginLogic $logic){ |
| 238 | - $common = new Common(); | ||
| 239 | - $arr = $common->decrypt(urldecode($this->param['token'])); | ||
| 240 | - if(empty($arr)){ | 238 | + $this->param = $this->request->validate([ |
| 239 | + 'token' => 'required', | ||
| 240 | + ],[ | ||
| 241 | + 'token.required' => 'token不能为空', | ||
| 242 | + ]); | ||
| 243 | + try { | ||
| 244 | + $common = new Common(); | ||
| 245 | + $arr = $common->decrypt(urldecode($this->param['token'])); | ||
| 246 | + }catch (\Exception $e){ | ||
| 241 | $this->response('非法请求!',Code::USER_ERROR); | 247 | $this->response('非法请求!',Code::USER_ERROR); |
| 242 | } | 248 | } |
| 243 | if (empty($arr['timestamp']) || time() - $arr['timestamp'] > 60) { | 249 | if (empty($arr['timestamp']) || time() - $arr['timestamp'] > 60) { |
| @@ -54,7 +54,7 @@ class TranslateLogic extends BaseLogic | @@ -54,7 +54,7 @@ class TranslateLogic extends BaseLogic | ||
| 54 | if($info !== false){ | 54 | if($info !== false){ |
| 55 | $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE); | 55 | $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE); |
| 56 | foreach ($data_read as $k => $v){ | 56 | foreach ($data_read as $k => $v){ |
| 57 | - $old_key[] = $k; | 57 | + $old_key[] = trim($k); |
| 58 | $data[] = [$k => $v]; | 58 | $data[] = [$k => $v]; |
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| @@ -83,30 +83,9 @@ class TranslateLogic extends BaseLogic | @@ -83,30 +83,9 @@ class TranslateLogic extends BaseLogic | ||
| 83 | 83 | ||
| 84 | } | 84 | } |
| 85 | } | 85 | } |
| 86 | - $data = $this->unique_multidimensional_array($data); | ||
| 87 | return $this->success($data); | 86 | return $this->success($data); |
| 88 | } | 87 | } |
| 89 | 88 | ||
| 90 | - /** | ||
| 91 | - * @remark :多维数组去重 | ||
| 92 | - * @name :unique_multidimensional_array | ||
| 93 | - * @author :lyh | ||
| 94 | - * @method :post | ||
| 95 | - * @time :2024/3/8 16:38 | ||
| 96 | - */ | ||
| 97 | - public function unique_multidimensional_array($array) { | ||
| 98 | - $tempArray = []; | ||
| 99 | - $uniqueArray = []; | ||
| 100 | - foreach ($array as $value) { | ||
| 101 | - // 使用键作为临时数组的键,如果不存在则添加到去重后的数组中 | ||
| 102 | - $key = key($value); | ||
| 103 | - if (!isset($tempArray[$key])) { | ||
| 104 | - $tempArray[$key] = true; | ||
| 105 | - $uniqueArray[] = $value; | ||
| 106 | - } | ||
| 107 | - } | ||
| 108 | - return $uniqueArray; | ||
| 109 | - } | ||
| 110 | 89 | ||
| 111 | /** | 90 | /** |
| 112 | * @remark :获取图片列表 | 91 | * @remark :获取图片列表 |
| @@ -203,10 +182,11 @@ class TranslateLogic extends BaseLogic | @@ -203,10 +182,11 @@ class TranslateLogic extends BaseLogic | ||
| 203 | if(FALSE !== strpos($country_class, 'country-flag')) { | 182 | if(FALSE !== strpos($country_class, 'country-flag')) { |
| 204 | continue; | 183 | continue; |
| 205 | } | 184 | } |
| 206 | - $need_tran[] = htmlspecialchars_decode(html_entity_decode($string)); | 185 | + $need_tran[] = trim(htmlspecialchars_decode(html_entity_decode($string))); |
| 207 | } | 186 | } |
| 208 | $need_tran[] = $description ? $description->attr['content'] : ''; | 187 | $need_tran[] = $description ? $description->attr['content'] : ''; |
| 209 | $need_tran[] = $keywords ? $keywords->attr['content'] : ''; | 188 | $need_tran[] = $keywords ? $keywords->attr['content'] : ''; |
| 189 | + $need_tran = array_unique($need_tran); | ||
| 210 | return $need_tran; | 190 | return $need_tran; |
| 211 | } | 191 | } |
| 212 | 192 |
| @@ -2,11 +2,12 @@ | @@ -2,11 +2,12 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Listeners; | 3 | namespace App\Listeners; |
| 4 | 4 | ||
| 5 | -use Illuminate\Contracts\Queue\ShouldQueue; | 5 | +use App\Enums\Common\Common; |
| 6 | use Illuminate\Database\Events\QueryExecuted; | 6 | use Illuminate\Database\Events\QueryExecuted; |
| 7 | -use Illuminate\Queue\InteractsWithQueue; | 7 | +use Illuminate\Support\Facades\Cache; |
| 8 | use Illuminate\Support\Facades\Log; | 8 | use Illuminate\Support\Facades\Log; |
| 9 | -use Illuminate\Support\Facades\Redis; | 9 | +use Illuminate\Support\Facades\Route; |
| 10 | +use Illuminate\Support\Str; | ||
| 10 | 11 | ||
| 11 | /** | 12 | /** |
| 12 | * 监听数据库sql执行事件 | 13 | * 监听数据库sql执行事件 |
| @@ -47,6 +48,33 @@ class QueryListener | @@ -47,6 +48,33 @@ class QueryListener | ||
| 47 | $log = $log.' [ RunTime:'.$event->time.'ms ] '; | 48 | $log = $log.' [ RunTime:'.$event->time.'ms ] '; |
| 48 | Log::debug($log); | 49 | Log::debug($log); |
| 49 | } | 50 | } |
| 51 | + //监听9644这个api_no是TM咋个被改的 | ||
| 52 | + if (in_array(9644, $event->bindings) && Str::contains($event->sql, 'update') && Str::contains($event->sql, '`api_no` =')) { | ||
| 53 | + //记录debug 根据这个溯源 | ||
| 54 | + $trace = debug_backtrace(); | ||
| 55 | + $traces = []; | ||
| 56 | + foreach ($trace as $index => $caller) { | ||
| 57 | + if ($index === 0) { | ||
| 58 | + continue; // 跳过当前方法的调用信息 | ||
| 59 | + } | ||
| 60 | + $file = $caller['file']; | ||
| 61 | + $line = $caller['line']; | ||
| 62 | + $class = $caller['class']; | ||
| 63 | + $method = $caller['function']; | ||
| 64 | + $traces[] = "Method $method called from $class in file $file at line $line\n"; | ||
| 65 | + } | ||
| 66 | + //用户信息 哪个改的 还是脚本跑的 | ||
| 67 | + $token = request()->header('token'); | ||
| 68 | + Log::channel('test')->info('api_no updated', [ | ||
| 69 | + 'sql' => $event->sql, | ||
| 70 | + 'bindings' => $event->bindings, | ||
| 71 | + 'route' => Route::current(), | ||
| 72 | + 'request' => request()->all(), | ||
| 73 | + 'a_info' => Cache::get(Common::MANAGE_TOKEN . $token), | ||
| 74 | + 'b_info' => Cache::get($token), | ||
| 75 | + 'trace' => $traces | ||
| 76 | + ]); | ||
| 77 | + } | ||
| 50 | }catch (\Exception $exception){ | 78 | }catch (\Exception $exception){ |
| 51 | Log::error('log sql error:'.$exception->getMessage()); | 79 | Log::error('log sql error:'.$exception->getMessage()); |
| 52 | } | 80 | } |
| @@ -72,6 +72,12 @@ return [ | @@ -72,6 +72,12 @@ return [ | ||
| 72 | 'via' => \App\Factory\LogFormatterFactory::class, | 72 | 'via' => \App\Factory\LogFormatterFactory::class, |
| 73 | 'prefix' => 'rank_data', | 73 | 'prefix' => 'rank_data', |
| 74 | ], | 74 | ], |
| 75 | + //测试数据日志 | ||
| 76 | + 'test' => [ | ||
| 77 | + 'driver' => 'custom', | ||
| 78 | + 'via' => \App\Factory\LogFormatterFactory::class, | ||
| 79 | + 'prefix' => 'test', | ||
| 80 | + ], | ||
| 75 | 'wechatside' => [ | 81 | 'wechatside' => [ |
| 76 | 'driver' => 'custom', | 82 | 'driver' => 'custom', |
| 77 | 'via' => \App\Factory\LogFormatterFactory::class, | 83 | 'via' => \App\Factory\LogFormatterFactory::class, |
| @@ -24,4 +24,9 @@ Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::cl | @@ -24,4 +24,9 @@ Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::cl | ||
| 24 | Route::any('get_product_images', [\App\Http\Controllers\Api\ProductController::class, 'getImages'])->name('api.get_product_images'); | 24 | Route::any('get_product_images', [\App\Http\Controllers\Api\ProductController::class, 'getImages'])->name('api.get_product_images'); |
| 25 | Route::post('inquiry_submit', [\App\Http\Controllers\Api\InquiryController::class, 'submit'])->name('api.inquiry_submit'); | 25 | Route::post('inquiry_submit', [\App\Http\Controllers\Api\InquiryController::class, 'submit'])->name('api.inquiry_submit'); |
| 26 | Route::any('getOptimizationReport', [\App\Http\Controllers\Api\OptimizationReportController::class, 'getOptimizationReport'])->name('api.getOptimizationReport'); | 26 | Route::any('getOptimizationReport', [\App\Http\Controllers\Api\OptimizationReportController::class, 'getOptimizationReport'])->name('api.getOptimizationReport'); |
| 27 | +// 视频任务回调信息 | ||
| 27 | Route::post('video_task_callback', [\App\Http\Controllers\Api\NoticeController::class, 'videoTaskCallback'])->name('api.video_task_callback'); | 28 | Route::post('video_task_callback', [\App\Http\Controllers\Api\NoticeController::class, 'videoTaskCallback'])->name('api.video_task_callback'); |
| 29 | +// 验证是否为6.0用户 | ||
| 30 | +Route::any('has_user', [\App\Http\Controllers\Api\PrivateController::class, 'hasUser'])->name('api.has_user'); | ||
| 31 | +// 6.0有效用户用户 | ||
| 32 | +Route::any('valid_user', [\App\Http\Controllers\Api\PrivateController::class, 'validUser'])->name('api.valid_user'); |
-
请 注册 或 登录 后发表评论