初始化

This commit is contained in:
liut
2021-10-12 11:06:24 +08:00
commit ff0b4d5b12
1270 changed files with 405680 additions and 0 deletions
+152
View File
@@ -0,0 +1,152 @@
<?php
namespace app\admin\controller;
use app\common\controller\Admin;
use app\common\model\driver\AliyunOss;
use app\common\model\driver\Local;
use app\common\model\driver\TxyunOss;
use app\common\model\Policys;
use app\common\model\Stores;
use app\common\model\Users;
use think\response\Download;
class File extends Admin
{
public function index(){
if($this->request->isAjax()){
$page = input('get.page',1);
$limit = input('get.limit',10);
$map = [];
// 获取筛选条件
$start_time = input('get.start_time','');
$end_time = input('get.end_time','');
$policy_id = input('get.policy','');
$ext = input('get.ext','');
$uid = input('get.uid','');
$origin_name = input('get.origin_name','');
if(!empty($start_time) && !empty($end_time)){
$map[] = ['create_time','between time',[$start_time,$end_time]];
}
if(!empty($policy_id)){
$map[] = ['policy_id','=',$policy_id];
}
if(!empty($ext)){
$map[] = ['ext','=',$ext];
}
if(!empty($uid)){
$map[] = ['uid','=',$uid];
}
if(!empty($origin_name)){
$map[] = ['origin_name','like','%'.$origin_name.'%'];
}
//获取排序条件
$sort_key = input('get.sort_key','create_time');
$sort = input('get.sort',0);
$order_type = empty($sort) ? 'desc' : 'asc';
$list = Stores::where($map)->page($page,$limit)->order($sort_key,$order_type)->select()->each(function($item){
$item['icon'] = getFileIcon($item['ext'],'admin');
$item['size'] = countSize($item['size']);
$item['uid'] = Users::where('id',$item['uid'])->value('nickname');
$item['policy_id'] = Policys::where('id',$item['policy_id'])->value('name');
return $item;
});
$count = Stores::where($map)->count();
return json([
'code' => 0,
'msg' => '加载成功',
'count' => $count,
'data' => $list->toArray()
]);
}else{
$policy = Policys::field('id,name')->select();
$this->assign('policy',$policy);
return $this->fetch();
}
}
public function delete(){
$ids = input('get.ids');
$store = Stores::withTrashed()->where('id','in',$ids)->select();
if(empty($store)){
$this->returnError('数据不存在');
}
$succ = 0;
foreach ($store as $item){
$item->delete();
$succ++;
}
$this->returnSuccess('成功删除'.$succ.'个文件');
}
public function download(){
$id = input('get.id',0);
$info = Stores::get($id);
if(empty($info)){
$this->error('数据不存在');
}
$policy = Policys::get($info['policy_id']);
if(empty($policy)){
$this->error('存储策略不存在');
}
// 远程文件下载
if($policy['type'] == 'remote'){
$down_url = getDownloadRemote($info['file_name'],$info['origin_name'],$policy->config['server_uri'],"",$policy->config['access_token']);
$this->redirect($down_url);
}
// 存储驱动下载
switch ($policy['type']){
case 'aliyunoss':
$driver = new AliyunOss(0,0,0);
break;
case 'txyunoss':
$driver = new TxyunOss(0,0,0);
break;
default:
$driver = new Local(0,0,0);
break;
}
// 下载
return $driver->download($info,"",$policy);
}
public function info(){
$id = input('get.id',0);
$info = Stores::get($id);
if(empty($info)){
$this->error('数据不存在');
}
$username = Users::where('id',$info['uid'])->value('username');
$policy_name = Policys::where('id',$info['policy_id'])->value('name');
$file_path = $info['file_name'];
$this->assign('username',$username);
$this->assign('policy_name',$policy_name);
$this->assign('file_path',$file_path);
$this->assign('info',$info);
return $this->fetch();
}
}