Merge remote-tracking branch 'origin/master' into akun
正在显示
14 个修改的文件
包含
96 行增加
和
62 行删除
| @@ -50,11 +50,11 @@ class Count extends Command | @@ -50,11 +50,11 @@ class Count extends Command | ||
| 50 | try { | 50 | try { |
| 51 | if(!empty($list)){ | 51 | if(!empty($list)){ |
| 52 | $list = $list->toArray(); | 52 | $list = $list->toArray(); |
| 53 | - $data = []; | ||
| 54 | $yesterday = Carbon::yesterday()->toDateString(); | 53 | $yesterday = Carbon::yesterday()->toDateString(); |
| 55 | $domainInfo = new DomainInfo(); | 54 | $domainInfo = new DomainInfo(); |
| 56 | foreach ($list as $v){ | 55 | foreach ($list as $v){ |
| 57 | $v = (array)$v; | 56 | $v = (array)$v; |
| 57 | + echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; | ||
| 58 | if($v['type'] == Project::TYPE_ZERO){ | 58 | if($v['type'] == Project::TYPE_ZERO){ |
| 59 | continue; | 59 | continue; |
| 60 | } | 60 | } |
| @@ -76,7 +76,7 @@ class Count extends Command | @@ -76,7 +76,7 @@ class Count extends Command | ||
| 76 | //服务达标天数 | 76 | //服务达标天数 |
| 77 | $arr['compliance_day'] = $v['finish_remain_day']; | 77 | $arr['compliance_day'] = $v['finish_remain_day']; |
| 78 | //剩余服务时常 | 78 | //剩余服务时常 |
| 79 | - $arr['service_day'] = $v['remain_day'] - 1; | 79 | + $arr['service_day'] = ($v['remain_day'] - 1) < 0 ? 0: $v['remain_day'] - 1; |
| 80 | //项目id | 80 | //项目id |
| 81 | $arr['project_id'] = $v['project_id']; | 81 | $arr['project_id'] = $v['project_id']; |
| 82 | $arr['created_at'] = date('Y-m-d H:i:s'); | 82 | $arr['created_at'] = date('Y-m-d H:i:s'); |
| @@ -84,9 +84,16 @@ class Count extends Command | @@ -84,9 +84,16 @@ class Count extends Command | ||
| 84 | //询盘统计 | 84 | //询盘统计 |
| 85 | $arr = $this->inquiry($arr,$v['test_domain'], $v['id']); | 85 | $arr = $this->inquiry($arr,$v['test_domain'], $v['id']); |
| 86 | if($arr === false){ | 86 | if($arr === false){ |
| 87 | - $data[] = $v['test_domain']; | 87 | + continue; |
| 88 | + } | ||
| 89 | + //查询当天数据是否存在 存在则更新 | ||
| 90 | + $countModel = new \App\Models\HomeCount\Count(); | ||
| 91 | + $info = $countModel->read(['date'=>$arr['date'],'project_id'=>$v['id']]); | ||
| 92 | + if($info === false){ | ||
| 93 | + DB::table('gl_count')->insert($arr); | ||
| 94 | + }else{ | ||
| 95 | + $countModel->edit($arr,['id'=>$info['id']]); | ||
| 88 | } | 96 | } |
| 89 | - DB::table('gl_count')->insert($arr); | ||
| 90 | Log::channel('day_count')->error('日期:'.$arr['created_at'].'success: ' .$v['test_domain']); | 97 | Log::channel('day_count')->error('日期:'.$arr['created_at'].'success: ' .$v['test_domain']); |
| 91 | } | 98 | } |
| 92 | } | 99 | } |
| @@ -59,8 +59,8 @@ class UpdateRoute extends Command | @@ -59,8 +59,8 @@ class UpdateRoute extends Command | ||
| 59 | foreach ($list as $v){ | 59 | foreach ($list as $v){ |
| 60 | echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; | 60 | echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; |
| 61 | ProjectServer::useProject($v['id']); | 61 | ProjectServer::useProject($v['id']); |
| 62 | - $this->getProduct(); | ||
| 63 | -// $this->setProductKeyword(); | 62 | +// $this->getProduct(); |
| 63 | + $this->setProductKeyword(); | ||
| 64 | DB::disconnect('custom_mysql'); | 64 | DB::disconnect('custom_mysql'); |
| 65 | } | 65 | } |
| 66 | echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; | 66 | echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; |
| @@ -21,14 +21,14 @@ class Kernel extends ConsoleKernel | @@ -21,14 +21,14 @@ class Kernel extends ConsoleKernel | ||
| 21 | // $schedule->command('inspire')->hourly(); | 21 | // $schedule->command('inspire')->hourly(); |
| 22 | $schedule->command('remain_day')->dailyAt('09:00')->withoutOverlapping(1); // 项目剩余服务时长 | 22 | $schedule->command('remain_day')->dailyAt('09:00')->withoutOverlapping(1); // 项目剩余服务时长 |
| 23 | $schedule->command('rank_data_task')->everyMinute()->withoutOverlapping(1); // 排名数据更新任务 | 23 | $schedule->command('rank_data_task')->everyMinute()->withoutOverlapping(1); // 排名数据更新任务 |
| 24 | - $schedule->command('rank_data')->dailyAt('07:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 | ||
| 25 | - $schedule->command('rank_data')->dailyAt('08:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 | ||
| 26 | - $schedule->command('rank_data_speed')->dailyAt('01:10')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次 | ||
| 27 | - $schedule->command('rank_data_external_links')->dailyAt('08:30')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 | ||
| 28 | - $schedule->command('rank_data_external_links')->dailyAt('18:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 | ||
| 29 | - $schedule->command('rank_data_indexed_pages')->dailyAt('07:30')->withoutOverlapping(1); // 排名数据-页面收录,每周一凌晨执行一次 | ||
| 30 | - $schedule->command('rank_data_recomm_domain')->dailyAt('07:40')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次 | ||
| 31 | - $schedule->command('rank_data_week')->weeklyOn([1,2], '08:30')->withoutOverlapping(1); // 排名数据,每周一、二早上执行一次 | 24 | +// $schedule->command('rank_data')->dailyAt('07:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 |
| 25 | +// $schedule->command('rank_data')->dailyAt('08:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 | ||
| 26 | +// $schedule->command('rank_data_speed')->dailyAt('01:10')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次 | ||
| 27 | +// $schedule->command('rank_data_external_links')->dailyAt('08:30')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 | ||
| 28 | +// $schedule->command('rank_data_external_links')->dailyAt('18:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 | ||
| 29 | +// $schedule->command('rank_data_indexed_pages')->dailyAt('07:30')->withoutOverlapping(1); // 排名数据-页面收录,每周一凌晨执行一次 | ||
| 30 | +// $schedule->command('rank_data_recomm_domain')->dailyAt('07:40')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次 | ||
| 31 | +// $schedule->command('rank_data_week')->weeklyOn([1,2], '08:30')->withoutOverlapping(1); // 排名数据,每周一、二早上执行一次 | ||
| 32 | $schedule->command('service_count')->dailyAt('01:00')->withoutOverlapping(1); //服务器使用情况,每天凌晨1点执行一次 | 32 | $schedule->command('service_count')->dailyAt('01:00')->withoutOverlapping(1); //服务器使用情况,每天凌晨1点执行一次 |
| 33 | $schedule->command('web_traffic_special')->everyMinute()->withoutOverlapping(1); // 特殊引流 | 33 | $schedule->command('web_traffic_special')->everyMinute()->withoutOverlapping(1); // 特殊引流 |
| 34 | $schedule->command('web_traffic_russia_special')->everyMinute()->withoutOverlapping(1); // 特殊引流 | 34 | $schedule->command('web_traffic_russia_special')->everyMinute()->withoutOverlapping(1); // 特殊引流 |
| @@ -23,8 +23,7 @@ define('HTTP_OPENAI_URL', 'http://openai.waimaoq.com/'); | @@ -23,8 +23,7 @@ define('HTTP_OPENAI_URL', 'http://openai.waimaoq.com/'); | ||
| 23 | if (!function_exists('generateRoute')) { | 23 | if (!function_exists('generateRoute')) { |
| 24 | function generateRoute($string) | 24 | function generateRoute($string) |
| 25 | { | 25 | { |
| 26 | - //TODO::html结尾,htm结尾,只处理.htm前面的内容 | ||
| 27 | - return trim(strtolower(preg_replace('/[^\w.]+/', '-', trim($string))), '-'); | 26 | + return str_replace(".", "", trim(strtolower(preg_replace('/[^\w.]+/', '-', trim($string))), '-')); |
| 28 | } | 27 | } |
| 29 | } | 28 | } |
| 30 | 29 |
| @@ -28,6 +28,7 @@ class ServersController extends BaseController | @@ -28,6 +28,7 @@ class ServersController extends BaseController | ||
| 28 | if(isset($this->map['server_name']) && !empty($this->map['server_name'])){ | 28 | if(isset($this->map['server_name']) && !empty($this->map['server_name'])){ |
| 29 | $this->map['server_name'] = ['like','%'.$this->map['server_name'].'%']; | 29 | $this->map['server_name'] = ['like','%'.$this->map['server_name'].'%']; |
| 30 | } | 30 | } |
| 31 | + $this->map['status'] = 0; | ||
| 31 | $serversModel = new ServersModel(); | 32 | $serversModel = new ServersModel(); |
| 32 | $lists = $serversModel->list($this->map); | 33 | $lists = $serversModel->list($this->map); |
| 33 | $this->response('success',Code::SUCCESS,$lists); | 34 | $this->response('success',Code::SUCCESS,$lists); |
| @@ -101,15 +101,17 @@ class ServersIpController extends BaseController | @@ -101,15 +101,17 @@ class ServersIpController extends BaseController | ||
| 101 | * @time :2024/6/24 16:24 | 101 | * @time :2024/6/24 16:24 |
| 102 | */ | 102 | */ |
| 103 | public function save(ServersIpLogic $serversIpLogic){ | 103 | public function save(ServersIpLogic $serversIpLogic){ |
| 104 | - $this->request->validate([ | ||
| 105 | - 'ip'=>'required', | ||
| 106 | - 'servers_id'=>'required', | ||
| 107 | - 'domain'=>'required' | ||
| 108 | - ],[ | ||
| 109 | - 'ip.required' => 'ip不能为空', | ||
| 110 | - 'servers_id.required' => '服务器servers_id不能为空', | ||
| 111 | - 'domain.required' => 'cname域名不能为空', | ||
| 112 | - ]); | 104 | + if(!isset($this->param['id'])){ |
| 105 | + $this->request->validate([ | ||
| 106 | + 'ip'=>'required', | ||
| 107 | + 'servers_id'=>'required', | ||
| 108 | + 'domain'=>'required' | ||
| 109 | + ],[ | ||
| 110 | + 'ip.required' => 'ip不能为空', | ||
| 111 | + 'servers_id.required' => '服务器servers_id不能为空', | ||
| 112 | + 'domain.required' => 'cname域名不能为空', | ||
| 113 | + ]); | ||
| 114 | + } | ||
| 113 | $data = $serversIpLogic->saveServersIp(); | 115 | $data = $serversIpLogic->saveServersIp(); |
| 114 | $this->response('success',Code::SUCCESS,$data); | 116 | $this->response('success',Code::SUCCESS,$data); |
| 115 | } | 117 | } |
| @@ -121,4 +121,21 @@ class ATemplateModuleController extends BaseController | @@ -121,4 +121,21 @@ class ATemplateModuleController extends BaseController | ||
| 121 | $list = $project->list($this->map,'id',['id','title']); | 121 | $list = $project->list($this->map,'id',['id','title']); |
| 122 | $this->response('success',Code::SUCCESS,$list); | 122 | $this->response('success',Code::SUCCESS,$list); |
| 123 | } | 123 | } |
| 124 | + | ||
| 125 | + /** | ||
| 126 | + * @remark :修改审核状态 | ||
| 127 | + * @name :auditingStatus | ||
| 128 | + * @author :lyh | ||
| 129 | + * @method :post | ||
| 130 | + * @time :2024/5/23 16:42 | ||
| 131 | + */ | ||
| 132 | + public function auditingStatus(ATemplateModuleLogic $ATemplateModuleLogic){ | ||
| 133 | + $this->request->validate([ | ||
| 134 | + 'id'=>'required' | ||
| 135 | + ],[ | ||
| 136 | + 'id.required' => 'ID不能为空' | ||
| 137 | + ]); | ||
| 138 | + $data = $ATemplateModuleLogic->auditingStatus(); | ||
| 139 | + $this->response('success',Code::SUCCESS,$data); | ||
| 140 | + } | ||
| 124 | } | 141 | } |
| @@ -49,9 +49,11 @@ class ServersIpLogic extends BaseLogic | @@ -49,9 +49,11 @@ class ServersIpLogic extends BaseLogic | ||
| 49 | */ | 49 | */ |
| 50 | public function saveServersIp(){ | 50 | public function saveServersIp(){ |
| 51 | //验证域名是否唯一 | 51 | //验证域名是否唯一 |
| 52 | - $info = $this->model->read(['domain'=>$this->param['domain']]); | ||
| 53 | - if($info !== false){ | ||
| 54 | - $this->fail('当前初始域名已存在'); | 52 | + if(!isset($this->param['id'])){ |
| 53 | + $info = $this->model->read(['domain'=>$this->param['domain']]); | ||
| 54 | + if($info !== false){ | ||
| 55 | + $this->fail('当前初始域名已存在'); | ||
| 56 | + } | ||
| 55 | } | 57 | } |
| 56 | if(isset($this->param['id']) && !empty($this->param['id'])){ | 58 | if(isset($this->param['id']) && !empty($this->param['id'])){ |
| 57 | $id = $this->param['id']; | 59 | $id = $this->param['id']; |
| @@ -100,4 +100,19 @@ class ATemplateModuleLogic extends BaseLogic | @@ -100,4 +100,19 @@ class ATemplateModuleLogic extends BaseLogic | ||
| 100 | return $this->success(); | 100 | return $this->success(); |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | + /** | ||
| 104 | + * @remark :修改状态 | ||
| 105 | + * @name :auditingStatus | ||
| 106 | + * @author :lyh | ||
| 107 | + * @method :post | ||
| 108 | + * @time :2024/5/23 16:44 | ||
| 109 | + */ | ||
| 110 | + public function auditingStatus(){ | ||
| 111 | + $rs = $this->model->edit($this->param,['id'=>$this->param['id']]); | ||
| 112 | + if($rs === false){ | ||
| 113 | + $this->fail('修改失败,请联系管理员'); | ||
| 114 | + } | ||
| 115 | + return $this->success(['id'=>$this->param['id']]); | ||
| 116 | + } | ||
| 117 | + | ||
| 103 | } | 118 | } |
| @@ -68,7 +68,7 @@ class UserLogic extends BaseLogic | @@ -68,7 +68,7 @@ class UserLogic extends BaseLogic | ||
| 68 | $this->param = $this->editPassword($this->param); | 68 | $this->param = $this->editPassword($this->param); |
| 69 | $rs = $this->model->edit($this->param, ['id' => $this->param['id']]); | 69 | $rs = $this->model->edit($this->param, ['id' => $this->param['id']]); |
| 70 | } else { | 70 | } else { |
| 71 | - $this->param['password'] = base64_encode(md5($this->param['password'])); | 71 | + $this->param['password'] = base64_encode(md5($this->param['password'] ?? '123456')); |
| 72 | $rs = $this->model->add($this->param); | 72 | $rs = $this->model->add($this->param); |
| 73 | } | 73 | } |
| 74 | if ($rs === false) { | 74 | if ($rs === false) { |
| @@ -203,7 +203,7 @@ class BlogLogic extends BaseLogic | @@ -203,7 +203,7 @@ class BlogLogic extends BaseLogic | ||
| 203 | public function getCategory($category){ | 203 | public function getCategory($category){ |
| 204 | $str = ''; | 204 | $str = ''; |
| 205 | foreach ($category as $v){ | 205 | foreach ($category as $v){ |
| 206 | - $str .= $v.','; | 206 | + $str .= $v.','; |
| 207 | } | 207 | } |
| 208 | return !empty(trim($str,',')) ? ','.$str.',' : ''; | 208 | return !empty(trim($str,',')) ? ','.$str.',' : ''; |
| 209 | } | 209 | } |
| @@ -59,32 +59,23 @@ class NewsLogic extends BaseLogic | @@ -59,32 +59,23 @@ class NewsLogic extends BaseLogic | ||
| 59 | */ | 59 | */ |
| 60 | public function newsSave() | 60 | public function newsSave() |
| 61 | { | 61 | { |
| 62 | - //拼接参数 | ||
| 63 | -// DB::beginTransaction(); | ||
| 64 | -// try { | ||
| 65 | - $this->param = $this->paramProcessing($this->param); | ||
| 66 | - if (isset($this->param['id']) && !empty($this->param['id'])) { | ||
| 67 | - $id = $this->param['id']; | ||
| 68 | - $is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0 | ||
| 69 | - $six_read = $this->param['six_read'] ?? 0;//是否按6.0显示 | ||
| 70 | - if($is_upgrade == 0 || $six_read == 1) { | ||
| 71 | - $this->param['url'] = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']); | ||
| 72 | - } | ||
| 73 | - //是否更新路由 | ||
| 74 | - $route = $this->param['url']; | ||
| 75 | - $this->edit($this->param, ['id' => $id]); | ||
| 76 | - } else { | ||
| 77 | - $this->param['sort'] = $this->setNewsSort(); | ||
| 78 | - $id = $this->model->addReturnId($this->param); | ||
| 79 | - $route = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']); | ||
| 80 | - $this->edit(['url' => $route], ['id' => $id]); | 62 | + $this->param = $this->paramProcessing($this->param); |
| 63 | + if (isset($this->param['id']) && !empty($this->param['id'])) { | ||
| 64 | + $id = $this->param['id']; | ||
| 65 | + $is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0 | ||
| 66 | + $six_read = $this->param['six_read'] ?? 0;//是否按6.0显示 | ||
| 67 | + if($is_upgrade == 0 || $six_read == 1) { | ||
| 68 | + $this->param['url'] = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']); | ||
| 81 | } | 69 | } |
| 82 | -// //更新路由 | ||
| 83 | -// DB::commit(); | ||
| 84 | -// } catch (\Exception $e) { | ||
| 85 | -// DB::rollBack(); | ||
| 86 | -// $this->fail('系统错误,请联系管理员'); | ||
| 87 | -// } | 70 | + //是否更新路由 |
| 71 | + $route = $this->param['url']; | ||
| 72 | + $this->edit($this->param, ['id' => $id]); | ||
| 73 | + } else { | ||
| 74 | + $this->param['sort'] = $this->setNewsSort(); | ||
| 75 | + $id = $this->model->addReturnId($this->param); | ||
| 76 | + $route = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']); | ||
| 77 | + $this->edit(['url' => $route], ['id' => $id]); | ||
| 78 | + } | ||
| 88 | $this->addUpdateNotify(RouteMap::SOURCE_NEWS,$route); | 79 | $this->addUpdateNotify(RouteMap::SOURCE_NEWS,$route); |
| 89 | $this->curlDelRoute(['new_route'=>$route]); | 80 | $this->curlDelRoute(['new_route'=>$route]); |
| 90 | return $this->success(['id'=>$id]); | 81 | return $this->success(['id'=>$id]); |
| @@ -223,10 +214,10 @@ class NewsLogic extends BaseLogic | @@ -223,10 +214,10 @@ class NewsLogic extends BaseLogic | ||
| 223 | */ | 214 | */ |
| 224 | public function getCategory($category){ | 215 | public function getCategory($category){ |
| 225 | $str = ''; | 216 | $str = ''; |
| 226 | - if(is_array($category) && $category){ | ||
| 227 | - $str = ','.implode(',',$category).','; | 217 | + foreach ($category as $v){ |
| 218 | + $str .= $v.','; | ||
| 228 | } | 219 | } |
| 229 | - return $str; | 220 | + return !empty(trim($str,',')) ? ','.$str.',' : ''; |
| 230 | } | 221 | } |
| 231 | 222 | ||
| 232 | /** | 223 | /** |
| @@ -55,10 +55,9 @@ class RouteMap extends Base | @@ -55,10 +55,9 @@ class RouteMap extends Base | ||
| 55 | public static function generateRoute($title, $source, $source_id, $project_id){ | 55 | public static function generateRoute($title, $source, $source_id, $project_id){ |
| 56 | if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){ | 56 | if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){ |
| 57 | $title = Translate::tran($title, 'en'); | 57 | $title = Translate::tran($title, 'en'); |
| 58 | - }else{ | ||
| 59 | - if(contains_russian($title)){ | ||
| 60 | - $title = Translate::tran($title, 'en'); | ||
| 61 | - } | 58 | + } |
| 59 | + if(contains_russian($title)){ | ||
| 60 | + $title = Translate::tran($title, 'en'); | ||
| 62 | } | 61 | } |
| 63 | $i=1; | 62 | $i=1; |
| 64 | $sign = generateRoute($title); | 63 | $sign = generateRoute($title); |
| @@ -373,6 +373,7 @@ Route::middleware(['aloginauth'])->group(function () { | @@ -373,6 +373,7 @@ Route::middleware(['aloginauth'])->group(function () { | ||
| 373 | Route::any('/status', [Aside\Template\ATemplateModuleController::class, 'status'])->name('admin.ATemplateModule_status'); | 373 | Route::any('/status', [Aside\Template\ATemplateModuleController::class, 'status'])->name('admin.ATemplateModule_status'); |
| 374 | Route::any('/del', [Aside\Template\ATemplateModuleController::class, 'del'])->name('admin.ATemplateModule_del'); | 374 | Route::any('/del', [Aside\Template\ATemplateModuleController::class, 'del'])->name('admin.ATemplateModule_del'); |
| 375 | Route::any('/type', [Aside\Template\ATemplateModuleController::class, 'getType'])->name('admin.ATemplateModule_getType'); | 375 | Route::any('/type', [Aside\Template\ATemplateModuleController::class, 'getType'])->name('admin.ATemplateModule_getType'); |
| 376 | + Route::any('/auditingStatus', [Aside\Template\ATemplateModuleController::class, 'auditingStatus'])->name('admin.ATemplateModule_auditingStatus'); | ||
| 376 | Route::any('/getProjectList', [Aside\Template\ATemplateModuleController::class, 'getProjectList'])->name('admin.ATemplateModule_getProjectList'); | 377 | Route::any('/getProjectList', [Aside\Template\ATemplateModuleController::class, 'getProjectList'])->name('admin.ATemplateModule_getProjectList'); |
| 377 | }); | 378 | }); |
| 378 | //设置类型 | 379 | //设置类型 |
-
请 注册 或 登录 后发表评论