作者 张关杰

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

... ... @@ -12,7 +12,9 @@ use App\Models\Blog\Blog;
use App\Models\Devops\ServerConfig;
use App\Models\Domain\DomainInfo;
use App\Models\File\File;
use App\Models\File\File as FileModel;
use App\Models\File\Image;
use App\Models\File\Image as ImageModel;
use App\Models\Manage\BelongingGroup;
use App\Models\Manage\Dept;
use App\Models\Manage\EntryPosition;
... ... @@ -27,6 +29,7 @@ use App\Models\Project\Project;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BCustomTemplate;
use App\Models\WebSetting\WebSettingService;
use App\Services\AmazonS3Service;
use App\Services\ProjectServer;
use App\Services\SyncService;
use GuzzleHttp\Client;
... ... @@ -50,9 +53,9 @@ class Demo extends Command
*/
protected $description = 'demo';
public function handle(){
public function s(){
$projectModel = new Project();
$list = $projectModel->list(['is_upgrade'=>0]);
$list = $projectModel->list(['id'=>181]);
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
... ... @@ -97,4 +100,36 @@ class Demo extends Command
}
return true;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$this->param['project_id'] = 181;
$imageModel = new ImageModel();
//获取当前项目的所有图片
$imageList = $imageModel->list(['project_id'=>$this->param['project_id'],'is_cos'=>1],'id',['id','path','is_cos','size']);
if(!empty($imageList)){
$amazonS3Service = new AmazonS3Service();
foreach ($imageList as $k => $v){
$amazonS3Service->syncImageFiles(getImageUrl($v['path']));
$imageModel->edit(['is_cos'=>0],['id'=>$v['id']]);
}
}
$fileModel = new FileModel();
$fileList = $fileModel->list(['project_id'=>$this->param['project_id'],'is_cos'=>1],'id',['id','path','is_cos']);
if(!empty($fileList)){
$amazonS3Service = new AmazonS3Service();
foreach ($fileList as $k => $v){
echo date('Y-m-d H:i:s') . '执行的数据id:' . $v['id'] . '名称:'.$v['name'] . PHP_EOL;
$amazonS3Service->syncImageFiles(getFileUrl($v['path']));
$fileModel->edit(['is_cos'=>0],['id'=>$v['id']]);
}
}
return true;
}
}
... ...
... ... @@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside\FileManage;
use App\Enums\Common\Code;
use App\Helper\Translate;
use App\Http\Controllers\Bside\BaseController;
use App\Models\File\File;
use App\Models\FileManage\FileManage;
use App\Models\Project\Project;
use App\Services\CosService;
... ... @@ -79,18 +81,14 @@ class FileManageController extends BaseController
'file.required'=>'请上传文件',
]);
$file = $request->file('file');
$data = $this->checkFile($file);
$path = '/file_manage/' . $this->user['project_id'] . '/' . date('Ymd');
$fileName = uniqid().rand(10000,99999).'.'.$file->getClientOriginalExtension();
$name = $file->getClientOriginalName();
$fileName = $this->getOnlyFilename($name,$this->user['project_id']);
$cosService = new CosService();
$cosService->uploadFile($file,$path,$fileName);
$data['project_id'] = $this->user['project_id'];
$data['path'] = $path.'/'.$fileName;
$rs = $fileManage->add($data);
if ($rs === false) {
$this->fail('上传失败');
... ... @@ -98,6 +96,41 @@ class FileManageController extends BaseController
$this->response('success');
}
/**
* @remark :获取唯一名称
* @name :getOnlyFilename
* @author :lyh
* @method :post
* @time :2024/4/26 16:10
*/
public function getOnlyFilename($name,$project_id = 0){
$nameArr = explode('.',$name);
$enName = generateRoute(Translate::tran($nameArr[0], 'en'));
$i=1;
while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
$enName = $enName .'-'.$i;
$i++;
}
return $enName.'.'.$nameArr[1];
}
/**
* @remark :唯一名称
* @name :onlyName
* @author :lyh
* @method :post
* @time :2024/4/26 16:21
*/
public function onlyName($enName,$project_id){
$fileModel = new FileManage();
$info = $fileModel->read(['project_id' => $project_id, 'en_name' => $enName]);
if($info !== false){
return true;
}
return false;
}
protected function checkFile($file){
$count = FileManage::where('project_id', $this->user['project_id'])->count();
if($count >= $this->upload_config['upload_max_num']){
... ...
... ... @@ -3,8 +3,10 @@
namespace App\Http\Controllers\File;
use App\Enums\Common\Code;
use App\Helper\Translate;
use App\Models\File\ErrorFile;
use App\Models\File\File;
use App\Models\File\Image as ImageModel;
use App\Models\Project\Project;
use App\Services\AmazonS3Service;
use App\Services\CosService;
... ... @@ -120,7 +122,7 @@ class FileController
if($file_hash !== false){
return $this->response('资源',Code::SUCCESS,$this->responseData($file_hash['path'], $name));
}
$fileName = uniqid().rand(10000,99999).'.'.$files->getClientOriginalExtension();
$fileName = $this->getOnlyFilename($name,$param['project_id'] ?? 0);
//同步数据到cos
if($this->upload_location == 0){
$cosService = new CosService();
... ... @@ -155,6 +157,40 @@ class FileController
}
/**
* @remark :获取唯一名称
* @name :getOnlyFilename
* @author :lyh
* @method :post
* @time :2024/4/26 16:10
*/
public function getOnlyFilename($name,$project_id = 0){
$nameArr = explode('.',$name);
$enName = generateRoute(Translate::tran($nameArr[0], 'en'));
$i=1;
while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
$enName = $enName .'-'.$i;
$i++;
}
return $enName.'.'.$nameArr[1];
}
/**
* @remark :唯一名称
* @name :onlyName
* @author :lyh
* @method :post
* @time :2024/4/26 16:21
*/
public function onlyName($enName,$project_id){
$fileModel = new File();
$info = $fileModel->read(['project_id' => $project_id, 'en_name' => $enName]);
if($info !== false){
return true;
}
return false;
}
/**
* 接口上传单文件
* @param $files
* @return array
... ... @@ -254,7 +290,7 @@ class FileController
}
$url = $this->config['root'].'/'.$this->path;
$file_type = $file->getClientOriginalExtension();
$fileName = uniqid().rand(10000,99999).'.'.$file_type;
$fileName = $this->getOnlyFilename($name,$param['project_id'] ?? 0);
//同步数据到cos
if($this->upload_location == 0){
$cosService = new CosService();
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Controllers\File;
use App\Enums\Common\Code;
use App\Helper\Translate;
use App\Http\Controllers\Controller;
use App\Http\Controllers\type;
use App\Models\File\ErrorFile;
... ... @@ -200,7 +201,7 @@ class ImageController extends Controller
if(strlen($image_type) > 7){
$this->response('不支持当前格式',Code::SYSTEM_ERROR);
}
$fileName = uniqid().rand(10000,99999).'.'.$image_type;
$fileName = $this->getOnlyFilename($name,$param['project_id'] ?? 0);
//上传到cos
if($this->upload_location == 0){
$cosService = new CosService();
... ... @@ -216,6 +217,41 @@ class ImageController extends Controller
}
/**
* @remark :获取唯一名称
* @name :getOnlyFilename
* @author :lyh
* @method :post
* @time :2024/4/26 16:10
*/
public function getOnlyFilename($name,$project_id = 0){
$nameArr = explode('.',$name);
$enName = generateRoute(Translate::tran($nameArr[0], 'en'));
$i=1;
while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
$enName = $enName .'-'.$i;
$i++;
}
return $enName.'.'.$nameArr[1];
}
/**
* @remark :唯一名称
* @name :onlyName
* @author :lyh
* @method :post
* @time :2024/4/26 16:21
*/
public function onlyName($enName,$project_id){
$imageModel = new ImageModel();
$info = $imageModel->read(['project_id' => $project_id, 'en_name' => $enName]);
if($info !== false){
return true;
}
return false;
}
/**
* @remark :指定同步文件到獨立177服務器
* @name :synchronizationFile
* @author :lyh
... ... @@ -299,7 +335,7 @@ class ImageController extends Controller
continue;
}
$image_type = $file->getClientOriginalExtension();
$fileName = uniqid().rand(10000,99999).'.'.$image_type;
$fileName = $this->getOnlyFilename($name,$param['project_id'] ?? 0);
//同步数据到cos
if($this->upload_location == 0){
$cosService = new CosService();
... ...
... ... @@ -53,7 +53,7 @@ class CopyImageFileJob implements ShouldQueue
if(!empty($fileList)){
$amazonS3Service = new AmazonS3Service();
foreach ($fileList as $k => $v){
$amazonS3Service->syncImageFiles(getImageUrl($v['path']));
$amazonS3Service->syncImageFiles(getFileUrl($v['path']));
$fileModel->edit(['is_cos'=>0],['id'=>$v['id']]);
}
}
... ...