初始化代码
This commit is contained in:
355
app/admin/controller/File.php
Normal file
355
app/admin/controller/File.php
Normal file
@@ -0,0 +1,355 @@
|
||||
<?php
|
||||
namespace app\admin\controller;
|
||||
use app\AdminRest;
|
||||
use think\App;
|
||||
use think\Request;
|
||||
use app\admin\model\AttachmentGroup;
|
||||
use app\admin\model\CoreAttachment;
|
||||
use app\Common\Upload;
|
||||
class File extends AdminRest
|
||||
{
|
||||
public $uid = 0;
|
||||
|
||||
public function __construct(App $app) {
|
||||
parent::__construct($app);
|
||||
//测试数据
|
||||
// $this->_uniacid = 2;
|
||||
$this->uid = 0;
|
||||
}
|
||||
|
||||
//创建分组
|
||||
public function createGroup()
|
||||
{
|
||||
//获取参数
|
||||
$input = $this->_input;
|
||||
//兼容写法-- lichuanming 2020/5/13
|
||||
if(!isset($input['group']['name']) && !isset($input['name'])) return $this->error('not group name ,please check .');
|
||||
$group['name'] = isset($input['group']['name'])?$input['group']['name']:$input['name'];
|
||||
//获取uid
|
||||
// if(!empty($this->uid)) $group['uid'] = $this->uid;
|
||||
$group['uniacid'] = $this->_uniacid;
|
||||
//生成分组模型
|
||||
$group_model = new AttachmentGroup();
|
||||
$group_count = $group_model->where('uniacid','=',$this->_uniacid)->count('id');
|
||||
if($group_count >= 20){ //分组不超过20个
|
||||
return $this->error('分组最多限制为20个!');
|
||||
}
|
||||
|
||||
$repeat = $group_model->where(['uniacid'=>$this->_uniacid,'name'=>$group['name']])->count();
|
||||
if($repeat){
|
||||
return $this->error('已存在同名分组');
|
||||
}
|
||||
|
||||
$result = $group_model->createGroup($group);
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
//获取分组列表
|
||||
public function listGroup()
|
||||
{
|
||||
//获取参数
|
||||
$param = $this->_param;
|
||||
if(isset($param['name'])) $filter[] = $param['name'];
|
||||
$filter['uniacid'] = $this->_uniacid;
|
||||
//获取uid
|
||||
// if(!empty($this->uid)) $filter['uid'] = $this->uid;
|
||||
//生成分组模型
|
||||
$group_model = new AttachmentGroup();
|
||||
//获取数据
|
||||
$result = $group_model->listGroup($filter);
|
||||
return $this->success(['groups' => $result]);
|
||||
}
|
||||
|
||||
//更新分组列表
|
||||
public function updateGroup()
|
||||
{
|
||||
//获取参数
|
||||
$group_id = $this->_param['group_id'];
|
||||
//获取更新数据
|
||||
$data = $this->_input['group'];
|
||||
//生成分组模型
|
||||
$group_model = new AttachmentGroup();
|
||||
|
||||
$repeat = $group_model->where(['uniacid'=>$this->_uniacid,'name'=>$data['name']])->where('id','<>',$group_id)->count();
|
||||
if($repeat){
|
||||
return $this->error('已存在同名分组');
|
||||
}
|
||||
|
||||
//更新数据
|
||||
$result = $group_model->updateGroup(['id' => $group_id,'uniacid'=>$this->_uniacid] ,$data);
|
||||
//返回数据
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
//删除分组信息
|
||||
public function delGroup()
|
||||
{
|
||||
//获取参数
|
||||
if(!isset($this->_param['group_id'])) return $this->error('not group id');
|
||||
$group_id = $this->_param['group_id'];
|
||||
|
||||
$where = array(
|
||||
['group_id','=',$group_id],
|
||||
['uniacid','=',$this->_uniacid]
|
||||
);
|
||||
//生成分组模型
|
||||
$attachment_model = new CoreAttachment();
|
||||
$file_count = $attachment_model->where($where)->count('id');
|
||||
if($file_count > 0){
|
||||
return $this->error('目前分组中有文件数据,不可删除,如要删除,请先清除文件数据');
|
||||
}
|
||||
$group_model = new AttachmentGroup();
|
||||
//删除数据
|
||||
$result = $group_model->delGroup(['id' => $group_id]);
|
||||
//返回数据
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
/**
|
||||
**@author lichuanming
|
||||
* @DataTime: 2020/5/15 14:35
|
||||
* @功能说明:批量删除分组
|
||||
*/
|
||||
public function delAllGroup(){
|
||||
if(!isset($this->_param['group_id'])) return $this->error('not group id');
|
||||
$group_id = $this->_param['group_id'];
|
||||
|
||||
$attachment_model = new CoreAttachment();
|
||||
if(is_array($group_id)){
|
||||
foreach ($group_id as $id){
|
||||
$where = array(
|
||||
['group_id','=',$id],
|
||||
['uniacid','=',$this->_uniacid]
|
||||
);
|
||||
$file_count = $attachment_model->where($where)->count('id');
|
||||
if($file_count > 0){
|
||||
return $this->error('目前分组中有文件数据,不可删除,如要删除,请先清除文件数据');
|
||||
}
|
||||
}
|
||||
$group_model = new AttachmentGroup();
|
||||
//删除数据
|
||||
$result = $group_model->delGroup(['id' => $group_id]);
|
||||
//返回数据
|
||||
return $this->success($result);
|
||||
}else{
|
||||
return $this->delGroup();
|
||||
}
|
||||
}
|
||||
|
||||
//上传文件
|
||||
public function uploadFile()
|
||||
{
|
||||
$input = $this->_param;
|
||||
$file = $this->request->file('file');
|
||||
if(empty($file)) return $this->error('not file ,please check file.');
|
||||
$uploda_model = new Upload($this->_uniacid);
|
||||
$type = 'picture';
|
||||
if(isset($input['type'])) $type = $input['type'];
|
||||
$info = $uploda_model->upload($type ,$file);
|
||||
$result = false;
|
||||
if(!empty($info))
|
||||
{
|
||||
$info['uid'] = $this->uid;
|
||||
$info['longbing_attachment_path'] = longbingGetFilePath($info['attachment'] , $this->_host,$this->_uniacid);
|
||||
$info['longbing_from'] = 'web';
|
||||
$attachment_model = new CoreAttachment();
|
||||
$result = $attachment_model->createAttach($info);
|
||||
if(!empty($result)) $result = $info;
|
||||
}
|
||||
//数据处理
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
|
||||
public function uploadFiles()
|
||||
{
|
||||
//获取参数
|
||||
$input = $this->_param;
|
||||
//获取文件列表
|
||||
$files = $this->request->file('file');
|
||||
//检查文件是否存在
|
||||
if(empty($files)) return $this->error('not file ,please check file.');
|
||||
//设置类型
|
||||
$type = 'picture';
|
||||
if(isset($input['type'])) $type = $input['type'];
|
||||
|
||||
//上传文件分组 --lichuanming 2020/5/13
|
||||
$group_id = -1;
|
||||
if(isset($input['group_id'])) $group_id = $input['group_id'];
|
||||
|
||||
$result = [];
|
||||
//生成上传模型
|
||||
$uploda_model = new Upload($this->_uniacid);
|
||||
foreach($files as $file)
|
||||
{
|
||||
//上传文件
|
||||
$info = $uploda_model->upload($type ,$file);
|
||||
|
||||
if(!empty($info))
|
||||
{
|
||||
//获取上传者id
|
||||
$info['uid'] = $this->uid;
|
||||
$info['attachment_path'] = longbingGetFilePath($info['attachment'] , $this->_host,$this->_uniacid ,$info['longbing_driver']);
|
||||
//文件分组界定 --lichuanming 2020/5/13
|
||||
$info['group_id'] = $group_id;
|
||||
$info['uniacid'] = $this->_uniacid;
|
||||
//写入数据库
|
||||
$attachment_model = new CoreAttachment();
|
||||
$data = $attachment_model->createAttach($info);
|
||||
//判断写入数据库是否成功
|
||||
if(!empty($data)) $result[] = $info;
|
||||
}
|
||||
}
|
||||
//数据处理
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//获取文件列表
|
||||
public function listFile()
|
||||
{
|
||||
$param = $this->_param;
|
||||
$filter['uniacid'] = $this->_uniacid;
|
||||
$filter['type'] = 1;
|
||||
|
||||
$filter['uid'] = 0;
|
||||
|
||||
|
||||
//判断分组是否存在
|
||||
if(isset($param['group_id'])) $filter['group_id'] = $param['group_id']?$param['group_id']:['0','-1'];
|
||||
//判断文件类型是否存在
|
||||
if(isset($param['type']) && in_array($param['type'], [1,2,3,'1','2','3'])) $filter['type'] = $param['type'];
|
||||
//判断用户id是否存在
|
||||
// if(isset($this->uid)) return $this->error('not login,please login');
|
||||
// $filter['uid'] = $this->uid;
|
||||
//获取和生成分页信息
|
||||
$page_config = array(
|
||||
'page' => 1,
|
||||
'page_count' => 10
|
||||
);
|
||||
if(isset($param['page']) && $param['page'] > 0) $page_config['page'] = $param['page'];
|
||||
if(isset($param['page_count']) && $param['page_count'] > 0) $page_config['page_count'] = $param['page_count'];
|
||||
//生成模型类
|
||||
$file_model = new CoreAttachment();
|
||||
//查询总数
|
||||
$count = $file_model->listAttachCount($filter);
|
||||
$files = $file_model->listAttach($filter ,$page_config);
|
||||
$files = transImagesOne($files ,['attachment'] ,$this->_uniacid);
|
||||
// foreach($files as $key => $val)
|
||||
// {
|
||||
// $files[$key]['attachment_path'] = longbingGetFilePath($val['attachment'] ,$this->_host ,$this->_uniacid);
|
||||
// }
|
||||
//生成返回数据
|
||||
$page_config['total'] = $count;
|
||||
$page_config['total_page'] = (int)($page_config['total'] / $page_config['page_count']);
|
||||
if(($page_config['total'] % $page_config['page_count']) > 0) $page_config['total_page'] = $page_config['total_page'] + 1;
|
||||
$result = $page_config;
|
||||
$result['files'] = $files;
|
||||
//返回数据
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
//获取文件
|
||||
public function getFile()
|
||||
{
|
||||
$param = $this->_param;
|
||||
$filter['uniacid'] = $this->_uniacid;
|
||||
$filter['id'] = $param['id'];
|
||||
// $filter['uid'] = $this->uid;
|
||||
//生成模型
|
||||
$file_model = new CoreAttachment();
|
||||
//查询数据
|
||||
$file = $file_model->getFile($filter);
|
||||
// if(isset($file['attachment']))
|
||||
// {
|
||||
// $file['attachment_path'] = longbingGetFilePath($file['attachment'] ,$this->_host ,$this->_uniacid);
|
||||
// }
|
||||
//返回数据
|
||||
return $this->success($file);
|
||||
}
|
||||
|
||||
//删除文件
|
||||
public function delFile()
|
||||
{
|
||||
//获取参数
|
||||
$input = $this->_input;
|
||||
//获取参数
|
||||
if(!isset($input['ids'])) return $this->error('not file id,please check.');
|
||||
$filter['ids'] = $input['ids'];
|
||||
// $filter['uid'] = $this->uid;
|
||||
$filter['uniacid'] = $this->_uniacid;
|
||||
//生成模型
|
||||
$file_model = new CoreAttachment();
|
||||
//删除
|
||||
$result = $file_model->delAttach($filter);
|
||||
return $this->success($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @author chenniang
|
||||
* @DataTime: 2021-04-08 14:16
|
||||
* @功能说明:获取上传配置
|
||||
*/
|
||||
public function uploadConfig(){
|
||||
|
||||
$data = longbingGetOssConfig($this->_uniacid);
|
||||
|
||||
$data['uniacid'] = $this->_uniacid;
|
||||
|
||||
return $this->success($data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @author chenniang
|
||||
* @DataTime: 2021-04-08 14:17
|
||||
* @功能说明:上传文件到数据库
|
||||
*/
|
||||
public function addFile(){
|
||||
|
||||
$info = $this->_input;
|
||||
|
||||
$group_id = -1;
|
||||
|
||||
if(isset($info['group_id'])) {
|
||||
|
||||
$group_id = $info['group_id'];
|
||||
}
|
||||
//获取上传者id
|
||||
$info['uid'] = $this->uid;
|
||||
//$info['attachment_path'] = longbingGetFilePath($info['attachment'] , $this->_host,$this->_uniacid ,$info['longbing_driver']);
|
||||
//文件分组界定 --lichuanming 2020/5/13
|
||||
$info['group_id'] = $group_id;
|
||||
|
||||
$info['uniacid'] = $this->_uniacid;
|
||||
|
||||
$info['createtime'] = time();
|
||||
|
||||
$attachment_model = new CoreAttachment();
|
||||
|
||||
$data = $attachment_model->addAttach($info);
|
||||
|
||||
return $this->success($data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @author chenniang
|
||||
* @DataTime: 2021-08-13 15:26
|
||||
* @功能说明:图片移动分组
|
||||
*/
|
||||
public function moveGroup(){
|
||||
|
||||
$input = $this->_input;
|
||||
|
||||
$attachment_model = new CoreAttachment();
|
||||
|
||||
$res = $attachment_model->where('id','in',$input['file_id'])->update(['group_id'=>$input['group_id']]);
|
||||
|
||||
return $this->success($res);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user