1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace app\enterprise\controller;
- use app\BaseController;
- use app\enterprise\model\{File,User,Message};
- use think\facade\View;
- class Files extends BaseController
- {
- // 文件列表
- public function index()
- {
- $param = $this->request->param();
- $is_all = $param['is_all'] ?? 0;
- $map = [];
- $data=[];
- // 如果是查询全部,就查询file表,否则查询message表
- if ($is_all) {
- if ($param['cate'] ?? 0) {
- $map[] = ['cate', '=', $param['cate']];
- }
- $model = new File();
- if ($param['keywords'] ?? '') {
- $model = $model->where('name', 'like', '%' . $param['keywords'] . '%');
- }
- $list = $this->paginate($model->where($map)->order('file_id desc'));
-
- if ($list) {
- $data = $list->toArray()['data'];
- $userList = User::matchUser($data, true, 'user_id', 120);
- foreach ($data as $k => $v) {
- $url=getFileUrl($v['src']);
- $data[$k]['src'] =$url;
- $data[$k]['preview'] = previewUrl($url);
- $data[$k]['extUrl'] = getExtUrl($v['src']);
- $data[$k]['name'] = $v['name'].'.'.$v['ext'];
- $data[$k]['msg_type'] = getFileType($v['ext'],true);
- $data[$k]['user_id_info'] = $userList[$v['user_id']] ?? [];
- $data[$k]['download'] = request()->domain().'/filedown/'.encryptIds($v['file_id']);
- }
-
- }
- } else {
- $map = [
- ['file_id', '>', 0],
- ['type', '<>', 'voice'],
- ['is_group', '=', 0],
- ['is_undo', '=', 0],
- ];
- if ($param['cate'] ?? 0) {
- $map[] = ['file_cate', '=', $param['cate']];
- }
- $user_id = $this->uid;
- $model = new Message();
- if ($param['keywords'] ?? '') {
- $map[] = ['file_name', 'like', '%' . $param['keywords'] . '%'];
- }
- $role = $param['role'] ?? 0;
- $where=[];
- if($role==1){
- $map[] = ['from_user', '=', $user_id];
- }elseif($role==2){
- $map[] = ['to_user', '=', $user_id];
- }else{
- $where='(from_user='.$user_id.' or to_user='.$user_id.')';
- }
- $list = $this->paginate($model->where($map)->where($where)->order('create_time desc'));
- if ($list) {
- $data = $list->toArray()['data'];
- $userList = User::matchUser($data, true, 'from_user', 120);
- foreach ($data as $k => $v) {
- $content=str_encipher($v['content'],false);
- $url=getFileUrl($content);
- $data[$k]['src'] = $url;
- $data[$k]['preview'] = previewUrl($url);
- $data[$k]['extUrl'] = getExtUrl($content);
- $data[$k]['cate'] = $v['file_cate'];
- $data[$k]['name'] = $v['file_name'];
- $data[$k]['size'] = $v['file_size'];
- $data[$k]['msg_type'] = $v['type'];
- $ext=explode('.',$content);
- $data[$k]['ext'] = end($ext);
- $data[$k]['user_id_info'] = $userList[$v['from_user']] ?? [];
- $data[$k]['download'] = request()->domain().'/filedown/'.encryptIds($v['file_id']);
- }
- }
- }
- return success('', $data, $list->total(), $list->currentPage());
- }
- }
|