作者 张关杰

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into bate

... ... @@ -167,7 +167,7 @@ class VideoTask extends Command
*/
public function getProjectKeyword($number)
{
$keyword_arr_id = Keyword::where('video', null)->where('route', 'not like', '%tag%')->whereNotNull('keyword_content')->pluck('id')->toArray();
$keyword_arr_id = Keyword::where('video', null)->where('route', 'not like', '%-tag')->whereNotNull('keyword_content')->pluck('id')->toArray();
$keyword_id = array_rand($keyword_arr_id, $number);
$keyword = Keyword::whereIn("id", $keyword_id)->get();
return $keyword;
... ...
... ... @@ -7,6 +7,8 @@
*/
namespace App\Http\Controllers\Api;
use App\Enums\Common\Code;
use App\Http\Logic\Bside\User\UserLoginLogic;
use App\Models\Domain\DomainInfo;
use App\Models\Product\Category;
use App\Models\Product\Product;
... ... @@ -16,6 +18,7 @@ use App\Models\RouteMap\RouteMap;
use App\Models\User\User;
use App\Services\ProjectServer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
/**
... ... @@ -142,4 +145,26 @@ class PrivateController extends BaseController
$user = array_unique(array_merge($valid_user, $upgrade_user));
return $this->success($user);
}
}
\ No newline at end of file
/**
* @remark :模拟登录返回token
* @name :getToken
* @author :lyh
* @method :post
* @time :2024/3/29 16:19
*/
public function getAutoToken(){
//获取当前用户的草鸡管理员
$userModel = new User();
$userInfo = $userModel->read(['project_id'=>$this->param['project_id'],'role_id'=>0]);
$userLoginLogicModel = new UserLoginLogic();
$info = $userLoginLogicModel->autoAssembleParam($userInfo);
//生成新token
$token = md5(uniqid().'auto'.$info['id']);
//存储缓存
$info['token'] = $token;
Cache::add($token,$info,3600);
$data = ['token'=>$token,'main_lang_id'=>$info['main_lang_id']];
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Http\Logic\Aside\Domain;
use App\Http\Logic\Aside\BaseLogic;
use App\Jobs\EditAmpDomainBt;
use App\Jobs\EditCustomDomainBt;
use App\Jobs\EditDomainBt;
use App\Models\Devops\ServerConfig;
... ... @@ -303,14 +304,15 @@ class DomainInfoLogic extends BaseLogic
'amp_private_cert' => $this->param['amp_cert'] ?? '',
];
$this->model->edit($data,['id'=>$this->param['id']]);
//生成证书
//主站生成证书
EditDomainBt::dispatch($this->param['id']);
// $this->setDomainSsl($server_info['init_domain'],$info['domain'],$this->param['extend_config'] ?? [],$this->param['other_domain'] ?? [],$this->param['is_https'] ?? 0);
//amp站点生成证书
// if($data['amp_status']){
//amp站生成证书
if($data['amp_status']){
EditAmpDomainBt::dispatch($this->param['id']);
// $this->setAmpDomainSsl($server_info['init_domain'],$info['domain']);
// }
}
return $this->success();
}
... ...
... ... @@ -79,6 +79,13 @@ class WebSettingAmpLogic extends BaseLogic
$this->param['company_image'] = Arr::a2s($this->param['company_image'] ?? []);
//icon处理
$this->param['web_icon'] = str_replace_url($this->param['web_icon'] ?? '');
//其余参数默认值
$this->param['top_backgroundcolor'] = $this->param['top_backgroundcolor'] ?? '';
$this->param['company_email'] = $this->param['company_email'] ?? '';
$this->param['company_address'] = $this->param['company_address'] ?? '';
$this->param['company_tel'] = $this->param['company_tel'] ?? '';
$this->param['company_skype'] = $this->param['company_skype'] ?? '';
$this->param['company_whatsapp'] = $this->param['company_whatsapp'] ?? '';
$info = $this->model->read(['project_id' => $this->user['project_id']]);
if ($info === false) {
... ...
<?php
namespace App\Jobs;
use App\Models\Devops\ServerConfig;
use App\Models\Domain\DomainInfo;
use App\Models\Project\Project;
use App\Utils\HttpUtils;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class EditAmpDomainBt implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 1; // 可配置任务重试次数
protected $domain_id;
/**
* Create a new job instance.
*
* @param $domain_id
*/
public function __construct($domain_id)
{
$this->domain_id = $domain_id;
}
/**
* Execute the job.
*
* @return bool
*/
public function handle()
{
//获取域名数据
$domain_model = new DomainInfo();
$domain_info = $domain_model->read(['id' => $this->domain_id]);
if ($domain_info === false) {
return $this->output($domain_info['domain'] . ':获取域名数据失败');
}
//获取项目数据
$project_model = new Project();
$project_info = $project_model->read(['id' => $domain_info['project_id']], 'serve_id');
if ($project_info === false) {
return $this->output($domain_info['domain'] . ':获取项目数据失败');
}
//获取服务器数据
$server_model = new ServerConfig();
$server_info = $server_model->read(['id' => $project_info['serve_id']], ['init_domain', 'host']);
if ($server_info === false) {
return $this->output($domain_info['domain'] . ':获取服务器数据失败');
}
//编辑amp站
$api_url_amp = 'http://' . $server_info['init_domain'] . '/api/createSiteAmp';
$api_param_amp = [
'domain' => $domain_info['domain'],
];
if ($domain_info['amp_type'] == 2) {
$api_param_amp['private_key'] = $domain_info['amp_private_key'];
$api_param_amp['cert'] = $domain_info['amp_private_cert'];
}
try {
$rs_amp = HttpUtils::get($api_url_amp, $api_param_amp);
$rs_amp = json_decode($rs_amp, true);
if (isset($rs_amp['status']) && $rs_amp['status'] == 200) {
$this->output($domain_info['domain'] . ':amp站编辑成功');
} else {
$this->output($domain_info['domain'] . ':amp站编辑失败,原因:' . ($rs_amp['message'] ?? ''));
}
} catch (\Exception | GuzzleException $e_amp) {
$this->output($domain_info['domain'] . ':amp站编辑失败,原因:' . $e_amp->getMessage());
}
return true;
}
/**
* 输出处理日志
* @param $message
* @return bool
*/
public function output($message)
{
echo date('Y-m-d H:i:s') . ' | ' . $message . PHP_EOL;
return true;
}
public function failed(\Exception $exception)
{
return $this->output($exception->getMessage());
}
}
... ...
... ... @@ -79,6 +79,7 @@ class EditDomainBt implements ShouldQueue
'is_https' => $domain_info['is_https']
];
}
try {
$rs = HttpUtils::get($api_url, $api_param);
$rs = json_decode($rs, true);
... ... @@ -91,30 +92,6 @@ class EditDomainBt implements ShouldQueue
$this->output($domain_info['domain'] . ':主站编辑失败,原因:' . $e->getMessage());
}
//编辑amp站
if ($domain_info['amp_status']) {
$api_url_amp = 'http://' . $server_info['init_domain'] . '/api/createSiteAmp';
$api_param_amp = [
'domain' => $domain_info['domain'],
];
if ($domain_info['amp_type'] == 2) {
$api_param_amp['private_key'] = $domain_info['amp_private_key'];
$api_param_amp['cert'] = $domain_info['amp_private_cert'];
}
try {
$rs_amp = HttpUtils::get($api_url_amp, $api_param_amp);
$rs_amp = json_decode($rs_amp, true);
if (isset($rs_amp['status']) && $rs_amp['status'] == 200) {
$this->output($domain_info['domain'] . ':amp站编辑成功');
} else {
$this->output($domain_info['domain'] . ':amp站编辑失败,原因:' . ($rs_amp['message'] ?? ''));
}
} catch (\Exception | GuzzleException $e_amp) {
$this->output($domain_info['domain'] . ':amp站编辑失败,原因:' . $e_amp->getMessage());
}
}
return true;
}
... ...
... ... @@ -33,3 +33,4 @@ Route::post('video_task_callback', [\App\Http\Controllers\Api\NoticeController::
Route::any('has_user', [\App\Http\Controllers\Api\PrivateController::class, 'hasUser'])->name('api.has_user');
// 6.0有效用户用户
Route::any('valid_user', [\App\Http\Controllers\Api\PrivateController::class, 'validUser'])->name('api.valid_user');
Route::any('getAutoToken', [\App\Http\Controllers\Api\PrivateController::class, 'getAutoToken'])->name('api.getAutoToken');
... ...