作者 刘锟

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

... ... @@ -76,6 +76,8 @@ class RemainDay extends Command
$item->remain_day = $remain_day > 0 ? $remain_day : 0;
if($item->remain_day == 0){
$item->extend_type = Project::TYPE_FIVE;
$item->site_status = Project::TYPE_ONE;//关闭站点
//TODO::未续费网站禁止登录及通知C端禁止网站
}
$item->save();
}
... ...
... ... @@ -169,12 +169,15 @@ class ServersIpController extends BaseController
$info = $serverModel->read(['id'=>$this->map['servers_id']]);
$data = [];
$serversIpModel = new ServersIpModel();
$this->map['status'] = 0;
$list = $serversIpModel->list($this->map);
if(!empty($list)){
foreach ($list as $v){
$position = strpos($v['domain'], '.');
$result = substr($v['domain'], 0, $position);
$data[] = ['记录类型'=>'A','主机记录'=>$result,'解析线路'=>'默认','记录值'=>$v['ip'],'MAX优先级'=>'','TTL值'=>600,'状态(暂停/启用)'=>'启用','备注'=>$info['server_name']];
}
}
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -92,6 +92,7 @@ class ProjectController extends BaseController
'gl_project.is_upgrade AS is_upgrade',
'gl_project.created_at AS created_at',
'gl_project.cooperate_date AS cooperate_date',
'gl_project.site_status AS site_status',
'gl_project_online_check.id AS online_check_id',
'gl_project_online_check.question AS question',
'gl_project_online_check.optimist_status AS optimist_status',
... ... @@ -273,6 +274,12 @@ class ProjectController extends BaseController
if(isset($this->map['optimize_optimist_mid'])){
$query = $query->where('gl_project_deploy_optimize.optimist_mid',$this->map['optimize_optimist_mid']);
}
if(isset($this->map['plan'])){
$query = $query->where('gl_project_deploy_build.plan',$this->map['plan']);
}
if(isset($this->map['site_status'])){
$query = $query->where('gl_project.site_status',$this->map['site_status']);
}
return $query;
}
... ... @@ -1047,4 +1054,26 @@ class ProjectController extends BaseController
$deployBuildModel->edit(['is_participle'=>$this->param['is_participle']],['project_id'=>$this->param['project_id']]);
$this->response('success');
}
/**
* @remark :(on/off)站点
* @param : site_status(站点状态0/1:开启/关闭),id(项目id)
* @name :saveSiteStatus
* @author :lyh
* @method :post
* @time :2024/7/29 17:12
*/
public function saveSiteStatus(){
$projectModel = new Project();
$this->request->validate([
'project_id'=>'required',
'site_status'=>'required'
],[
'project_id.required' => '项目id不能为空',
'site_status.required' => '状态不能为空',
]);
$projectModel->edit(['site_status'=>$this->map['site_status']],['id'=>$this->param['id']]);
//TODO::通知C端
$this->response('success');
}
}
... ...
... ... @@ -108,7 +108,9 @@ class RenewProjectController extends BaseController
*/
public function notHaveRenewItems(Project $project){
$this->map['extend_type'] = $project::TYPE_FIVE;//未续费网站 if(!empty($param['search']) && !empty($param['search_type'])){
$this->map['title'] = ['like', '%'.$this->map['title'].'title'];
if(!empty($this->map['title'])){
$this->map['title'] = ['like', '%'.$this->map['title'].'%'];
}
$lists = $project->where($this->map)->with('payment')->with('deploy_build')
->with('deploy_optimize')->with('online_check')
->with('project_after')->paginate($this->row, ['*'], 'page', $this->page);
... ... @@ -165,6 +167,7 @@ class RenewProjectController extends BaseController
'optimist_status'=>$item['online_check']['optimist_status'] ?? 0,
'qa_status'=>$item['online_check']['qa_status'] ?? 0,
'service_day'=>$item['remain_day'] ?? 0,
'site_status'=>$item['site_status'],
];
return $item;
}
... ...
... ... @@ -159,6 +159,7 @@ class ProductController extends BaseController
$query = $query->whereIn('id',$product_id_arr);
}
if(isset($this->map['title']) && !empty($this->map['title'])){
$this->map['title'] = str_replace('+',' ',$this->map['title']);
$query = $query->where('title','like','%'.$this->map['title'].'%');
}
if(isset($this->map['status'])){
... ...
... ... @@ -220,7 +220,7 @@ class RankDataController extends BaseController
$res = HttpUtils::get('http://rank.waimaoq.com/luminati_rank', $param);
if ($res) {
$res = Arr::s2a($res);
$data['position'] = $res['position'];
$data['position'] = $res['position'] ?? '';
}
}
... ...
... ... @@ -82,6 +82,13 @@ class ServersIpLogic extends BaseLogic
if(empty($v)){
continue;
}
$ipInfo = $this->model->read(['ip'=>$v]);
if($ipInfo !== false){
if($ipInfo['status'] == 1){
$this->model->edit(['status'=>0],['id'=>$ipInfo['id']]);
}
continue;
}
$param = [
'ip'=>$v,
'domain'=>ip_to_unique_string($v).'.'.$info['domain'],
... ...
... ... @@ -156,6 +156,9 @@ class UserLoginLogic
*/
public function autoAssembleParam($info){
$project = $this->getProjectInfo($info['project_id']);
if($project['site_status'] != 0){//关闭站点
$this->fail('当前网站已过期,请联系管理员及时续费。');
}
$info['title'] = $project['title'] ?? '';
$info['company'] = $project['company'] ?? '';
$info['from_order_id'] = $project['from_order_id'] ?? '';
... ... @@ -257,6 +260,9 @@ class UserLoginLogic
$info = $this->model->read(['mobile'=>$mobile,'project_id'=>$project_id],['id','mobile','status','role_id','token','name','wechat','project_id']);
//获取项目详情
$project = $this->getProjectInfo($project_id);
if($project['site_status'] != 0){//关闭站点
$this->fail('当前网站已过期,请联系管理员及时续费。');
}
$info['title'] = $project['title'] ?? '';
$info['company'] = $project['company'] ?? '';
$info['from_order_id'] = $project['from_order_id'] ?? '';
... ...
... ... @@ -190,7 +190,7 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/saveWebTrafficConfig', [Aside\Project\ProjectController::class, 'saveWebTrafficConfig'])->name('admin.project_web_traffic_config_save');//保存引流配置
Route::any('/updateProjectManager', [Aside\Project\ProjectController::class, 'updateProjectManager'])->name('admin.project_updateProjectManager');//更改项目人员配置
Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词
Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus');
//获取关键词前缀和后缀
Route::prefix('keyword')->group(function () {
Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix');
... ...