作者 刘锟

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

... ... @@ -40,6 +40,12 @@ class DomainInfo extends Command
$map = ['status'=>['!=',2]];
$list = $domainModel->list($map);
foreach ($list as $v){
if(empty($v['private_key']) || empty($v['private_cert'])){
//域名结束时间<2天时,重新生成
if(!empty($v['certificate_end_time']) && ($v['certificate_end_time'] > date('Y-m-d H:i:s',time() + 24*3600))){
$this->updatePrivate($v);
}
}
$ssl = $this->updateDomainSsl($v['domain']);
$time = $this->updateDomain($v['domain']);
$data = [
... ... @@ -48,12 +54,94 @@ class DomainInfo extends Command
'domain_start_time'=>$time['start'],
'domain_end_time'=>$time['end']
];
$domainModel->edit($data,['id'=>$v['id']]);
}
return 1;
}
/**
* @remark :更新正式
* @name :updatePrivate
* @author :lyh
* @method :post
* @time :2023/12/8 16:16
*/
public function updatePrivate($param)
{
$url = 'https://' . $param['domain']. '/api/applySsl/';
$extend_config = json_decode($param['extend_config'], true);
$top_domain = $this->getTopDomain($param['domain']);
if ((empty($extend_config) || empty($extend_config[0]['origin'])) && $param['id'] != 3) {
$extend_config = [
['origin' => $top_domain, 'target' => $param['domain']]
];
}
$param = [
'project_id' => $param['project_id'],
'type' => 1,
'route' => 1,
"domain" =>$param['domain'],
"rewrite"=> $extend_config,
'other_domain' => [$top_domain, '*.' . $top_domain],
'private_key' => '',
'cert' => ''
];
$result = $this->curlRequest($url, $param);
Log::info('domain id: ' . $param['id'] . ', domain: ' . $param['domain'] . ', result: ' . var_export($result, true));
}
public static function getTopDomain ($url) {
$url = strtolower($url); //首先转成小写
$url = mb_ereg_replace('^( | )+', '', trim($url));
$url = mb_ereg_replace('( | )+$', '', $url);
if (!preg_match('/^(http:\/\/|https)/', $url)) {
$url = "https://".$url;
}
$hosts = parse_url($url);
$host = $hosts['host'] ?? '';
//查看是几级域名
$data = explode('.', $host);
$n = count($data);
if ($n < 2) {
return $host;
}
//判断是否是双后缀
$preg = '/[\w].+\.(com|net|org|gov|edu|co|ne)\.[\w]/';
if (($n > 2) && preg_match($preg, $host)) {
//双后缀取后3位
$host = $data[$n - 3].'.'.$data[$n - 2].'.'.$data[$n - 1];
} else {
//非双后缀取后两位
$host = $data[$n - 2].'.'.$data[$n - 1];
}
return $host;
}
public function curlRequest($url, $data, $method = 'POST', $header = [], $time_out = 60)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
if ($data)
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge([
'Expect:',
'Content-type: application/json',
'Accept: application/json',
], $header)
);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return [$code, $response];
}
/**
* @remark :更新域名证书
* @name :updateDomainSsl
* @author :lyh
... ...
... ... @@ -31,10 +31,30 @@ class CustomModuleContentController extends BaseController
]);
$this->map['project_id'] = $this->user['project_id'];
$lists = $customModuleContent->lists($this->map,$this->page,$this->row,$this->order);
foreach ($lists as $v){
//获取分类名称
}
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @remark :获取所有分类名称
* @name :getAllCategoryName
* @author :lyh
* @method :post
* @time :2023/12/8 15:47
*/
public function getAllCategoryName(){
$categoryModel = new CustomModuleCategory();
$list = $categoryModel->list(['status'=>0],'id',['id','name']);
$data = [];
foreach ($list as $v){
$data[$v['id']] = $v['name'];
}
return $this->success($data);
}
/**
* @remark :添加/编辑内容时获取分类
* @name :getCategoryList
* @author :lyh
... ...
... ... @@ -353,7 +353,7 @@ class BTemplateLogic extends BaseLogic
public function homeOrProduct($source,$source_id = ''){
if($source == BTemplate::SOURCE_HOME){
$type = 'index';
$route = '';
$route = 'index';
//路由映射
RouteMap::setRoute('index', RouteMap::SOURCE_PAGE, 0, $this->user['project_id']);
}else{
... ...
... ... @@ -299,9 +299,9 @@ class CustomModuleCategoryLogic extends BaseLogic
*/
public function delRoute($id)
{
RouteMap::delRoute(RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'], $id, $this->user['project_id']);
$info = $this->model->read(['id' => $id], ['id', 'route','module_id']);
RouteMap::delRoute(RouteMap::SOURCE_MODULE_CATE.$info['module_id'], $id, $this->user['project_id']);
//通知
$info = $this->model->read(['id' => $id], ['id', 'route']);
$this->curlDelRoute(['route'=>$info['route']]);
return $this->success();
}
... ...