作者 Your Name
... ... @@ -9,7 +9,9 @@ namespace App\Http\Controllers\Api;
use App\Enums\Common\Code;
use App\Http\Logic\Bside\User\UserLoginLogic;
use App\Models\Blog\Blog;
use App\Models\Domain\DomainInfo;
use App\Models\News\News;
use App\Models\Product\Category;
use App\Models\Product\CategoryRelated;
use App\Models\Product\Keyword;
... ... @@ -283,4 +285,54 @@ class PrivateController extends BaseController
}
return $this->success($projects);
}
/**
* 获取有效时间内 新增有效URL
* 用于自动提交Google收录
* @param Request $request
* @return false|string
*/
public function projectNewUrl(Request $request)
{
$domain = trim($request->input('domain'));
$domain_parse = parse_url($domain);
$domain = $domain_parse['host'] ?? $domain;
$date = trim($request->input('date'));
if (empty($domain) || empty($date)) {
return $this->error('非法参数!');
}
$project = Project::getProjectByDomain($domain);
if (empty($project)) {
return $this->error('未找到当前域名对应的项目!');
}
ProjectServer::useProject($project->id);
$result = [];
// 查询有效时间后 有效的产品、新闻、博客、聚合页 链接
$product = Product::where(['status' => Product::STATUS_ON])->where('created_at', '>=', $date)->pluck('route');
$news = News::where(['status' => News::STATUS_ONE])->where('release_at', '>', $date)->pluck('url');
$blog = Blog::where(['status' => Blog::STATUS_ONE])->where('release_at', '>', $date)->pluck('url');
$keyword = Keyword::where('created_at', '>', $date)->pluck('route');
// 组装链接
foreach ($product as $item) {
$url = 'https://' . $domain . '/' . $item;
array_push($result, $url);
}
foreach ($keyword as $item) {
$url = 'https://' . $domain . '/' . $item;
array_push($result, $url);
}
foreach ($news as $item) {
$url = 'https://' . $domain . '/news/' . $item;
array_push($result, $url);
}
foreach ($blog as $item) {
$url = 'https://' . $domain . '/blogs/' . $item;
array_push($result, $url);
}
return $this->success($result);
}
}
... ...
... ... @@ -80,18 +80,6 @@ class DetailController extends BaseController
'data.required' => 'data不能为空',
]);
foreach ($this->param['data'] as $k => $data){
$i = 1;
foreach ($data as $key => $v){
$data = [
'sort'=>$i,
'column_id'=>$v['column_id'],
'product_id'=>$this->param['product_id'],
'title'=>$v['title'],
'content'=>json_encode($v['content'])
];
$i++;
}
}
}
}
... ...
... ... @@ -160,6 +160,9 @@ class FileController
$suffix = array_pop($nameArr) ?? 'jpg';
$nameStr = implode('-', $nameArr);
$enName = generateRoute(Translate::tran($nameStr, 'en'));
if(substr($enName, 0, 1) === '-'){
$enName = md5(uniqid().$project_id.rand(1,1000));
}
$fileName = $enName;
$i=1;
while($this->onlyName($enName.'.'.$suffix,$project_id)){
... ...
... ... @@ -229,9 +229,13 @@ class ImageController extends Controller
$nameArr = explode('.',$name);
$suffix = array_pop($nameArr) ?? 'jpg';
$nameStr = implode('-', $nameArr);
$enName = generateRoute(Translate::tran($nameStr, 'en'));
$tran_name = Translate::tran($nameStr, 'en');
if(is_array($tran_name)){
$tran_name = $tran_name[0];
}
$enName = generateRoute($tran_name);
if(substr($enName, 0, 1) === '-'){
$enName = $nameStr;
$enName = md5(uniqid().$project_id.rand(1,1000));;
}
$fileName = $enName;
$i=1;
... ...
... ... @@ -42,4 +42,25 @@ class DetailLogic extends BaseLogic
}
return $this->success(['id'=>$id]);
}
public function saveDetail(){
foreach ($this->param['data'] as $k => $data){
$i = 1;
$save_data = [];
foreach ($data as $key => $v){
$save_data[] = [
'sort'=>$i,
'column_id'=>$v['column_id'],
'product_id'=>$this->param['product_id'],
'title'=>$v['title'] ?? '',
'content'=>json_encode($v['content'] ?? []),
'css'=>json_encode($v['css'] ?? []),
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
$i++;
}
$this->model->insert($save_data);
}
}
}
... ...
... ... @@ -39,6 +39,9 @@ Route::any('valid_user', [\App\Http\Controllers\Api\PrivateController::class, 'v
Route::any('getAutoToken', [\App\Http\Controllers\Api\PrivateController::class, 'getAutoToken'])->name('api.getAutoToken');
// 特殊项目 有效产品路由
Route::any('valid_product_route', [\App\Http\Controllers\Api\PrivateController::class, 'getProductRoute'])->name('api.valid_product_route');
// 6.0项目新增有效链接 - 提交Google
Route::any('project_new_url', [\App\Http\Controllers\Api\PrivateController::class, 'projectNewUrl'])->name('api.project_new_url');
// --------------------- 站群服务 ------------------------------------------
// 获取项目信息
... ...