im/app/enterprise/controller/Files.php

93 lines
3.7 KiB
PHP
Raw Permalink Normal View History

2023-09-26 18:09:46 +08:00
<?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());
}
}