作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

... ... @@ -50,11 +50,11 @@ class Count extends Command
try {
if(!empty($list)){
$list = $list->toArray();
$data = [];
$yesterday = Carbon::yesterday()->toDateString();
$domainInfo = new DomainInfo();
foreach ($list as $v){
$v = (array)$v;
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
if($v['type'] == Project::TYPE_ZERO){
continue;
}
... ... @@ -76,7 +76,7 @@ class Count extends Command
//服务达标天数
$arr['compliance_day'] = $v['finish_remain_day'];
//剩余服务时常
$arr['service_day'] = $v['remain_day'] - 1;
$arr['service_day'] = ($v['remain_day'] - 1) < 0 ? 0: $v['remain_day'] - 1;
//项目id
$arr['project_id'] = $v['project_id'];
$arr['created_at'] = date('Y-m-d H:i:s');
... ... @@ -84,9 +84,16 @@ class Count extends Command
//询盘统计
$arr = $this->inquiry($arr,$v['test_domain'], $v['id']);
if($arr === false){
$data[] = $v['test_domain'];
continue;
}
//查询当天数据是否存在 存在则更新
$countModel = new \App\Models\HomeCount\Count();
$info = $countModel->read(['date'=>$arr['date'],'project_id'=>$v['id']]);
if($info === false){
DB::table('gl_count')->insert($arr);
}else{
$countModel->edit($arr,['id'=>$info['id']]);
}
DB::table('gl_count')->insert($arr);
Log::channel('day_count')->error('日期:'.$arr['created_at'].'success: ' .$v['test_domain']);
}
}
... ...
... ... @@ -59,8 +59,8 @@ class UpdateRoute extends Command
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
$this->getProduct();
// $this->setProductKeyword();
// $this->getProduct();
$this->setProductKeyword();
DB::disconnect('custom_mysql');
}
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
... ...
... ... @@ -21,14 +21,14 @@ class Kernel extends ConsoleKernel
// $schedule->command('inspire')->hourly();
$schedule->command('remain_day')->dailyAt('09:00')->withoutOverlapping(1); // 项目剩余服务时长
$schedule->command('rank_data_task')->everyMinute()->withoutOverlapping(1); // 排名数据更新任务
$schedule->command('rank_data')->dailyAt('07:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次
$schedule->command('rank_data')->dailyAt('08:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次
$schedule->command('rank_data_speed')->dailyAt('01:10')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次
$schedule->command('rank_data_external_links')->dailyAt('08:30')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次
$schedule->command('rank_data_external_links')->dailyAt('18:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次
$schedule->command('rank_data_indexed_pages')->dailyAt('07:30')->withoutOverlapping(1); // 排名数据-页面收录,每周一凌晨执行一次
$schedule->command('rank_data_recomm_domain')->dailyAt('07:40')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次
$schedule->command('rank_data_week')->weeklyOn([1,2], '08:30')->withoutOverlapping(1); // 排名数据,每周一、二早上执行一次
// $schedule->command('rank_data')->dailyAt('07:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次
// $schedule->command('rank_data')->dailyAt('08:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次
// $schedule->command('rank_data_speed')->dailyAt('01:10')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次
// $schedule->command('rank_data_external_links')->dailyAt('08:30')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次
// $schedule->command('rank_data_external_links')->dailyAt('18:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次
// $schedule->command('rank_data_indexed_pages')->dailyAt('07:30')->withoutOverlapping(1); // 排名数据-页面收录,每周一凌晨执行一次
// $schedule->command('rank_data_recomm_domain')->dailyAt('07:40')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次
// $schedule->command('rank_data_week')->weeklyOn([1,2], '08:30')->withoutOverlapping(1); // 排名数据,每周一、二早上执行一次
$schedule->command('service_count')->dailyAt('01:00')->withoutOverlapping(1); //服务器使用情况,每天凌晨1点执行一次
$schedule->command('web_traffic_special')->everyMinute()->withoutOverlapping(1); // 特殊引流
$schedule->command('web_traffic_russia_special')->everyMinute()->withoutOverlapping(1); // 特殊引流
... ...
... ... @@ -23,8 +23,7 @@ define('HTTP_OPENAI_URL', 'http://openai.waimaoq.com/');
if (!function_exists('generateRoute')) {
function generateRoute($string)
{
//TODO::html结尾,htm结尾,只处理.htm前面的内容
return trim(strtolower(preg_replace('/[^\w.]+/', '-', trim($string))), '-');
return str_replace(".", "", trim(strtolower(preg_replace('/[^\w.]+/', '-', trim($string))), '-'));
}
}
... ...
... ... @@ -28,6 +28,7 @@ class ServersController extends BaseController
if(isset($this->map['server_name']) && !empty($this->map['server_name'])){
$this->map['server_name'] = ['like','%'.$this->map['server_name'].'%'];
}
$this->map['status'] = 0;
$serversModel = new ServersModel();
$lists = $serversModel->list($this->map);
$this->response('success',Code::SUCCESS,$lists);
... ...
... ... @@ -101,15 +101,17 @@ class ServersIpController extends BaseController
* @time :2024/6/24 16:24
*/
public function save(ServersIpLogic $serversIpLogic){
$this->request->validate([
'ip'=>'required',
'servers_id'=>'required',
'domain'=>'required'
],[
'ip.required' => 'ip不能为空',
'servers_id.required' => '服务器servers_id不能为空',
'domain.required' => 'cname域名不能为空',
]);
if(!isset($this->param['id'])){
$this->request->validate([
'ip'=>'required',
'servers_id'=>'required',
'domain'=>'required'
],[
'ip.required' => 'ip不能为空',
'servers_id.required' => '服务器servers_id不能为空',
'domain.required' => 'cname域名不能为空',
]);
}
$data = $serversIpLogic->saveServersIp();
$this->response('success',Code::SUCCESS,$data);
}
... ...
... ... @@ -121,4 +121,21 @@ class ATemplateModuleController extends BaseController
$list = $project->list($this->map,'id',['id','title']);
$this->response('success',Code::SUCCESS,$list);
}
/**
* @remark :修改审核状态
* @name :auditingStatus
* @author :lyh
* @method :post
* @time :2024/5/23 16:42
*/
public function auditingStatus(ATemplateModuleLogic $ATemplateModuleLogic){
$this->request->validate([
'id'=>'required'
],[
'id.required' => 'ID不能为空'
]);
$data = $ATemplateModuleLogic->auditingStatus();
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -49,9 +49,11 @@ class ServersIpLogic extends BaseLogic
*/
public function saveServersIp(){
//验证域名是否唯一
$info = $this->model->read(['domain'=>$this->param['domain']]);
if($info !== false){
$this->fail('当前初始域名已存在');
if(!isset($this->param['id'])){
$info = $this->model->read(['domain'=>$this->param['domain']]);
if($info !== false){
$this->fail('当前初始域名已存在');
}
}
if(isset($this->param['id']) && !empty($this->param['id'])){
$id = $this->param['id'];
... ...
... ... @@ -100,4 +100,19 @@ class ATemplateModuleLogic extends BaseLogic
return $this->success();
}
/**
* @remark :修改状态
* @name :auditingStatus
* @author :lyh
* @method :post
* @time :2024/5/23 16:44
*/
public function auditingStatus(){
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('修改失败,请联系管理员');
}
return $this->success(['id'=>$this->param['id']]);
}
}
... ...
... ... @@ -68,7 +68,7 @@ class UserLogic extends BaseLogic
$this->param = $this->editPassword($this->param);
$rs = $this->model->edit($this->param, ['id' => $this->param['id']]);
} else {
$this->param['password'] = base64_encode(md5($this->param['password']));
$this->param['password'] = base64_encode(md5($this->param['password'] ?? '123456'));
$rs = $this->model->add($this->param);
}
if ($rs === false) {
... ...
... ... @@ -203,7 +203,7 @@ class BlogLogic extends BaseLogic
public function getCategory($category){
$str = '';
foreach ($category as $v){
$str .= $v.',';
$str .= $v.',';
}
return !empty(trim($str,',')) ? ','.$str.',' : '';
}
... ...
... ... @@ -59,32 +59,23 @@ class NewsLogic extends BaseLogic
*/
public function newsSave()
{
//拼接参数
// DB::beginTransaction();
// try {
$this->param = $this->paramProcessing($this->param);
if (isset($this->param['id']) && !empty($this->param['id'])) {
$id = $this->param['id'];
$is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0
$six_read = $this->param['six_read'] ?? 0;//是否按6.0显示
if($is_upgrade == 0 || $six_read == 1) {
$this->param['url'] = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']);
}
//是否更新路由
$route = $this->param['url'];
$this->edit($this->param, ['id' => $id]);
} else {
$this->param['sort'] = $this->setNewsSort();
$id = $this->model->addReturnId($this->param);
$route = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']);
$this->edit(['url' => $route], ['id' => $id]);
$this->param = $this->paramProcessing($this->param);
if (isset($this->param['id']) && !empty($this->param['id'])) {
$id = $this->param['id'];
$is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0
$six_read = $this->param['six_read'] ?? 0;//是否按6.0显示
if($is_upgrade == 0 || $six_read == 1) {
$this->param['url'] = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']);
}
// //更新路由
// DB::commit();
// } catch (\Exception $e) {
// DB::rollBack();
// $this->fail('系统错误,请联系管理员');
// }
//是否更新路由
$route = $this->param['url'];
$this->edit($this->param, ['id' => $id]);
} else {
$this->param['sort'] = $this->setNewsSort();
$id = $this->model->addReturnId($this->param);
$route = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $id, $this->user['project_id']);
$this->edit(['url' => $route], ['id' => $id]);
}
$this->addUpdateNotify(RouteMap::SOURCE_NEWS,$route);
$this->curlDelRoute(['new_route'=>$route]);
return $this->success(['id'=>$id]);
... ... @@ -223,10 +214,10 @@ class NewsLogic extends BaseLogic
*/
public function getCategory($category){
$str = '';
if(is_array($category) && $category){
$str = ','.implode(',',$category).',';
foreach ($category as $v){
$str .= $v.',';
}
return $str;
return !empty(trim($str,',')) ? ','.$str.',' : '';
}
/**
... ...
... ... @@ -55,10 +55,9 @@ class RouteMap extends Base
public static function generateRoute($title, $source, $source_id, $project_id){
if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){
$title = Translate::tran($title, 'en');
}else{
if(contains_russian($title)){
$title = Translate::tran($title, 'en');
}
}
if(contains_russian($title)){
$title = Translate::tran($title, 'en');
}
$i=1;
$sign = generateRoute($title);
... ...
... ... @@ -373,6 +373,7 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/status', [Aside\Template\ATemplateModuleController::class, 'status'])->name('admin.ATemplateModule_status');
Route::any('/del', [Aside\Template\ATemplateModuleController::class, 'del'])->name('admin.ATemplateModule_del');
Route::any('/type', [Aside\Template\ATemplateModuleController::class, 'getType'])->name('admin.ATemplateModule_getType');
Route::any('/auditingStatus', [Aside\Template\ATemplateModuleController::class, 'auditingStatus'])->name('admin.ATemplateModule_auditingStatus');
Route::any('/getProjectList', [Aside\Template\ATemplateModuleController::class, 'getProjectList'])->name('admin.ATemplateModule_getProjectList');
});
//设置类型
... ...