作者 赵彬吉

update

... ... @@ -9,6 +9,7 @@
namespace App\Console\Commands\Domain;
use App\Models\Project\CountryCustom;
use Illuminate\Console\Command;
use App\Models\Domain\DomainInfo as DomainInfoModel;
... ... @@ -37,7 +38,7 @@ class DomainInfo extends Command
*/
public function handle()
{
//更新域名到期时间
//更新主站域名有效时间
$this->startUpdateDomain();
//主站证书到期更新
... ... @@ -46,6 +47,9 @@ class DomainInfo extends Command
//AMP站证书到期更新
$this->startUpdateAmpCert();
//创建的自定义小语种域名证书到期更新
$this->startUpdateCustomCert();
return true;
}
... ... @@ -138,7 +142,35 @@ class DomainInfo extends Command
}
/**
* @remark :更新正式
* 自定义小语种站证书到期更新
* @author Akun
* @date 2024/03/23 10:08
*/
public function startUpdateCustomCert()
{
$customModel = new CountryCustom();
$end_day = date('Y-m-d H:i:s', time() + 2 * 24 * 3600);//2天后到期
$list = $customModel->where('status', 1)->where('is_create', 1)->where(function ($query) use ($end_day) {
$query->whereNull('certificate_end_time')->orWhere('certificate_end_time', '<', $end_day);
})->get()->toArray();
foreach ($list as $v) {
//更新证书到期时间
$data = [];
$ssl = $this->updateDomainSsl($v['custom_domain']);
$ssl['from'] && $data['certificate_start_time'] = $ssl['from'];
$ssl['to'] && $data['certificate_end_time'] = $ssl['to'];
$customModel->edit($data, ['id' => $v['id']]);
if ($v['type'] == 1 && ($data['certificate_end_time'] ?? '') < $end_day) {
//申请免费证书
$this->updateCustomPrivate($v['custom_domain']);
}
}
}
/**
* @remark :更新主站证书
* @name :updatePrivate
* @author :lyh
* @method :post
... ... @@ -168,7 +200,7 @@ class DomainInfo extends Command
}
/**
* 更新证书
* 更新amp站证书
* @param $domain
* @return array
* @author Akun
... ... @@ -185,6 +217,26 @@ class DomainInfo extends Command
return $this->curlRequest($url, $param);
}
/**
* 更新小语种自定义站证书
* @param $domain
* @return array
* @author Akun
* @date 2024/03/23 10:07
*/
public function updateCustomPrivate($domain)
{
$url = 'http://' . $domain . '/api/applySsl';
$param = [
'domain' => $domain,
'rewrite' => [],
'other_domain' => [],
'is_https' => 1
];
return $this->curlRequest($url, $param);
}
public static function getTopDomain($url)
{
$url = strtolower($url); //首先转成小写
... ... @@ -237,7 +289,7 @@ class DomainInfo extends Command
}
/**
* @remark :更新域名证书
* @remark :获取域名证书有效时间
* @name :updateDomainSsl
* @author :lyh
* @method :post
... ... @@ -273,7 +325,7 @@ class DomainInfo extends Command
}
/**
* @remark :更新域名有时间
* @remark :更新域名有时间
* @name :updateDomain
* @author :lyh
* @method :post
... ...
... ... @@ -55,7 +55,7 @@ class UpdateRoute extends Command
*/
public function handle(){
$projectModel = new Project();
$list = $projectModel->list(['id'=>1091]);
$list = $projectModel->list(['id'=>23]);
$data = [];
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
... ...
... ... @@ -63,7 +63,7 @@ class InquiryController extends BaseController
* @name :editInquiryStatus
* @author :lyh
* @method :post
* @time :2024/3/22 15:31
* @time :2024/3/22 15:41
*/
public function editInquiryStatus(){
$this->request->validate([
... ...
... ... @@ -30,7 +30,6 @@ class ATemplateModuleLogic extends BaseLogic
*/
public function aTemplateModuleLists($map,$page,$row,$order = 'created_at',$filed = ['*']){
$map['deleted_status'] = 0;
$map['status'] = 0;
$lists = $this->model->lists($map,$page,$row,$order,$filed);
return $this->success($lists);
}
... ...
... ... @@ -4,8 +4,6 @@ namespace App\Models\Project;
use App\Helper\Arr;
use App\Models\Base;
use App\Models\Devops\ServerConfig;
use Illuminate\Support\Facades\Cache;
class DomainInfo extends Base
{
... ...
... ... @@ -5,12 +5,16 @@ namespace App\Services\Html;
use App\Models\Blog\Blog;
use App\Models\Blog\BlogCategory;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleExtentContent;
use App\Models\Module\Module;
use App\Models\Module\ModuleCategory;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Models\Product\Category;
use App\Models\Product\Keyword;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BCustomTemplate;
use App\Models\WebSetting\WebCustom;
use App\Models\WebSetting\WebSetting;
use App\Models\WebSetting\WebSettingSeo;
... ... @@ -32,43 +36,43 @@ class TdkService{
$phpQueryDom=phpQuery::newDocument($html);
//首页TDK设置
if ($type == WebTemplateCommon::$indexName){
if ($type == RouteMap::SOURCE_INDEX){
$tdkInfo = $this->indexTDK($project);
}
//单页面TDK设置
if ($type == WebTemplateCommon::$pageName){
if ($type == RouteMap::SOURCE_PAGE){
$tdkInfo = $this->pageTDK($project,$routerMap);
}
//自定义模块列表页TDK设置
if ($type == WebTemplateCommon::$extendCategoryName){
if ($type == RouteMap::SOURCE_MODULE_CATE){
$tdkInfo = $this->moduleCategoryTDK($project,$routerMap);
}
//自定义模块详情页TDK设置
if ($type == WebTemplateCommon::$extendName){
if ($type == RouteMap::SOURCE_MODULE){
$tdkInfo = $this->moduleDetailsTDK($project,$routerMap);
}
//新闻详情TDK设置
if ($type == WebTemplateCommon::$newsName){
if ($type == RouteMap::SOURCE_NEWS){
$tdkInfo = $this->newsDetailsTDK($project,$routerMap);
}
//博客详情TDK设置
if ($type == WebTemplateCommon::$blogName){
if ($type == RouteMap::SOURCE_BLOG){
$tdkInfo = $this->blogDetailsTDK($project,$routerMap);
}
//聚合页TDK设置
if ($type == WebTemplateCommon::$productKeywordName){
if ($type == RouteMap::SOURCE_PRODUCT_KEYWORD){
$tdkInfo = $this->productKeywordsTDK($project,$routerMap);
}
//新闻列表页TDK设置
if ($type == WebTemplateCommon::$newsCategoryName){
if ($type == RouteMap::SOURCE_NEWS_CATE){
$tdkInfo = $this->newsCategoryTDK($project,$routerMap);
}
//博客列表页TDK设置
if ($type == WebTemplateCommon::$blogCategoryName){
if ($type == RouteMap::SOURCE_BLOG_CATE){
$tdkInfo = $this->blogCategoryTDK($project,$routerMap);
}
//产品列表页TDK设置
if ($type == WebTemplateCommon::$productCategoryName){
if ($type == RouteMap::SOURCE_PRODUCT_CATE){
$tdkInfo = $this->productCategoryTDK($project,$routerMap);
}
... ... @@ -304,7 +308,7 @@ class TdkService{
public function moduleDetailsTDK($project,$routerMap): array
{
$tdkInfo = [];
$moduleInfo = Module::where("project_id",$project->id)->where("status",0)->where("id",$routerMap->source_id)->first();
$moduleInfo = CustomModuleExtentContent::where("project_id",$project->id)->where("status",0)->where("id",$routerMap->source_id)->first();
$webSetting = WebSetting::getWebSetting($project);
if (!empty($moduleInfo)){
//title
... ... @@ -331,7 +335,7 @@ class TdkService{
public function moduleCategoryTDK($project,$routerMap): array
{
$tdkInfo = [];
$moduleCategoryInfo = ModuleCategory::getModuleCategoryAndExtendByRoute($project->id,$routerMap->route);
$moduleCategoryInfo = CustomModuleCategory::getModuleCategoryAndExtendByRoute($project->id,$routerMap->route);
$webSetting = WebSetting::getWebSetting($project);
if (!empty($moduleCategoryInfo)){
//title
... ... @@ -359,7 +363,7 @@ class TdkService{
{
$tdkInfo = [];
if (!empty($routerMap)){
$webCustom = WebCustom::where("id",$routerMap->source_id)->where("status",1)->first();
$webCustom = BCustomTemplate::where("id",$routerMap->source_id)->where("status",1)->first();
//seo拼接
$webSeo = WebSettingSeo::where("project_id",$project->id)->first();
//网站设置
... ...
... ... @@ -3,8 +3,8 @@
namespace App\Services\Html;
use App\Models\Project\UpdateLog;
use App\Models\Project\UpdateOldInfo;
use App\Models\Com\UpdateLog;
use App\Models\Com\UpdateOldInfo;
class UpdateService
{
... ...
... ... @@ -6,15 +6,16 @@ namespace App\Services\Html;
use App\Console\Commands\ProjectService;
use App\Helper\Str;
use App\Helper\Translate;
use App\Models\Com\UpdateProgress;
use App\Models\Devops\ServerConfig;
use App\Models\Domain\DomainInfo;
use App\Models\Project\DeployOptimize;
use App\Models\Project\DomainInfo;
use App\Models\Project\Project;
use App\Models\Project\UpdateMasterWebsiteModel;
use App\Models\Project\UpdateMinorLanguagesModel;
use App\Models\Project\UpdateProgressModel;
use App\Models\RouteMap;
use App\Models\WebSetting\WebSetting;
use App\Utils\EncryptUtils;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
... ... @@ -241,22 +242,22 @@ class WebInfoService{
$this->connectMysql($item);
//主站
$updateProgressModel = UpdateProgressModel::where("project_id",$item["project_id"])->where("type",1)->orderBy("id","desc")->first();
$updateProgressModel = UpdateProgress::where("project_id",$item["project_id"])->where("type",1)->orderBy("id","desc")->first();
if (!empty($updateProgressModel)){
$totalNum = $updateProgressModel->total_num;
$currentNum = $updateProgressModel->current_num;
if ((int)$currentNum < (int)$totalNum){
UpdateProgressModel::where('id', $updateProgressModel->id)->update(['current_num' => $totalNum]);
UpdateProgress::where('id', $updateProgressModel->id)->update(['current_num' => $totalNum]);
}
}
//小语种
$updateProgressModel = UpdateProgressModel::where("project_id",$item["project_id"])->where("type",2)->orderBy("id","desc")->first();
$updateProgressModel = UpdateProgress::where("project_id",$item["project_id"])->where("type",2)->orderBy("id","desc")->first();
if (!empty($updateProgressModel)){
$totalNum = $updateProgressModel->total_num;
$currentNum = $updateProgressModel->current_num;
if ((int)$currentNum < (int)$totalNum){
UpdateProgressModel::where('id', $updateProgressModel->id)->update(['current_num' => $totalNum]);
UpdateProgress::where('id', $updateProgressModel->id)->update(['current_num' => $totalNum]);
}
}
... ... @@ -278,7 +279,6 @@ class WebInfoService{
//获取项目
$projectByDomain = Project::getProjectByDomain($domain);
if (!empty($projectByDomain)){
$projectService = new ProjectService();
$projectInfo["domain"] = $domain;
$projectInfo["project_id"] = $projectByDomain->project_id;
$project = Project::where("id",$projectByDomain->project_id)->first();
... ... @@ -287,11 +287,12 @@ class WebInfoService{
$projectInfo["main_lang_id"] = $project->main_lang_id;
$serverConfig = ServerConfig::where("id",$project->mysql_id)->first();
if (!empty($serverConfig)){
$encrypt = new EncryptUtils();
$projectInfo["host"] = $serverConfig->host;
$projectInfo["port"] = (int)$projectService::unlock_url($serverConfig->port);
$projectInfo["port"] = (int)$encrypt->unlock_url($serverConfig->port);
$projectInfo["database"] = "gl_data_".$projectByDomain->project_id;
$projectInfo["username"] = $projectService::unlock_url($serverConfig->user);
$projectInfo["password"] = $projectService::unlock_url($serverConfig->password);
$projectInfo["username"] = $encrypt->unlock_url($serverConfig->user);
$projectInfo["password"] = $encrypt->unlock_url($serverConfig->password);
}
}
}
... ...