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(); } }