From 85a2c178149326157038b71ee06f75b9f37cb98f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 26 Jul 2024 15:42:47 +0800 Subject: [PATCH] =?UTF-8?q?resourcedir=E7=9B=B8=E5=85=B3=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=88=B0resource?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/substance/ResourceController.php | 39 ++++++ app/controller/substance/ResourceDirController.php | 148 --------------------- app/service/ResourceDirService.php | 73 ---------- app/service/ResourceService.php | 26 +++- route/substance.php | 8 +- 5 files changed, 70 insertions(+), 224 deletions(-) delete mode 100644 app/controller/substance/ResourceDirController.php delete mode 100644 app/service/ResourceDirService.php diff --git a/app/controller/substance/ResourceController.php b/app/controller/substance/ResourceController.php index c416035..03043b9 100644 --- a/app/controller/substance/ResourceController.php +++ b/app/controller/substance/ResourceController.php @@ -5,6 +5,7 @@ namespace app\controller\substance; use app\listener\ResourceEvent; use app\model\Resource; use app\service\AuditResourceService; +use app\service\ResourceDirService; use app\service\ResourceService; use app\service\ShareItemResourceService; use app\service\ShareService; @@ -53,6 +54,44 @@ class ResourceController return jsonReturn(0, Lang::get('成功'), $resource_list); } + public function index_dir(Resource $resource, Request $request) + { + //左侧顶级文件夹列表 + $top_resource_dir = $resource::where('type', 2)->where('parent_id', 0)->field('id, name')->select()->toArray(); + //选中的文件夹 默认顶级第一个 + $select_dir_id = $request->param('id') ?: $top_resource_dir[0]['id']; + //选中的文件夹基础信息 + $resource_dir_info = $resource::find($select_dir_id); + //选中文件夹下所有内容 + $resource_list = (new ResourceService())->getResourceDirAndResource($select_dir_id); + + $ret = [ + 'top_resource_dir' => $top_resource_dir, + 'resource_dir_info' => $resource_dir_info, + 'resource_list' => $resource_list + ]; + + return jsonReturn(0, Lang::get('成功'), $ret); + } + + /** + * 文件夹 详情 + * @param Request $request + * @return \think\response\Json + */ + public function read_dir(Request $request) + { + + $resource_list = (new ResourceService())->getResourceDirAndResource($request->param('id')); + if ($request->param('in_share')) { + //说明这是分享点击进来的 需要给列表加上url 点击链接 + $resource_service = new ResourceService(); + foreach ($resource_list as $resource) { + $resource->share_read_url = $resource_service->getShareReadUrl($resource, $request->param('share_id'), $request->param('share_item_id')); + } + } + return jsonReturn(0, Lang::get('成功'), $resource_list); + } /** * 全部资源 新增 diff --git a/app/controller/substance/ResourceDirController.php b/app/controller/substance/ResourceDirController.php deleted file mode 100644 index e5a125f..0000000 --- a/app/controller/substance/ResourceDirController.php +++ /dev/null @@ -1,148 +0,0 @@ -where('parent_id', 0)->field('id, name')->select()->toArray(); - //选中的文件夹 默认顶级第一个 - $select_dir_id = $id ?: $top_resource_dir[0]['id']; - //选中的文件夹基础信息 - $resource_dir_info = $resource_dir::find($select_dir_id); - //选中文件夹下所有内容 - $resource_list = (new ResourceDirService())->getResourceDirAndResource($select_dir_id); - - $ret = [ - 'top_resource_dir' => $top_resource_dir, - 'resource_dir_info' => $resource_dir_info, - 'resource_list' => $resource_list - ]; - - return jsonReturn(0, Lang::get('成功'), $ret); - } - - /** - * 文件夹 详情 - * @param Request $request - * @return \think\response\Json - */ - public function read(Request $request) - { - $resource_list = (new ResourceDirService())->getResourceDirAndResource($request->param('id')); - if ($request->param('in_share')) { - //说明这是分享点击进来的 需要给列表加上url 点击链接 - $resource_service = new ResourceService(); - foreach ($resource_list as $resource) { - $resource->share_read_url = $resource_service->getShareReadUrl($resource, $request->param('share_id'), $request->param('share_item_id')); - } - } - return jsonReturn(0, Lang::get('成功'), $resource_list); - } - - /** - * 创建文件夹 - */ - public function save(Request $request) - { - if ($request->param('type') != 2) { - return jsonReturn(-1, '仅支持创建文件夹'); - } - // 数据验证 - try { - validate(ResourceValidate::class)->scene('save_dir')->check($request->param()); - } catch (ValidateException $e) { - return jsonReturn(-1, $e->getError()); - } - - //保存到数据库 - Db::startTrans(); - try { - // 新增文件夹 - $res = (new ResourceDirService())->addResourceDir($request->param()); - - Db::commit(); - } catch (\Exception $e) { - Db::rollback(); - return jsonReturn(-5, $e->getMessage()); - } - - return json($res); - } - - - /** - * 文件夹 重命名 - */ - public function rename(Resource $resource, Request $request) - { - try { - validate(ResourceValidate::class)->scene('rename_dir')->check($request->param()); - } catch (ValidateException $e) { - return jsonReturn(-1, $e->getError()); - } - try { - $resource::whereIn('id', $request->param('ids'))->update(['name' => $request->param('name')]); - return jsonReturn(0, Lang::get('成功')); - } catch (\Exception $e) { - return jsonReturn(-5, $e->getMessage()); - } - } - - - /** - * 资源 移动到 - */ -// public function moveTo(Request $request) -// { -// //保存到数据库 -// Db::startTrans(); -// try { -// // 移动资源 -// $res = (new ResourceDirService())->moveTo($request->param('ids'), $request->param('to_id')); -// Db::commit(); -// } catch (\Exception $e) { -// Db::rollback(); -// return jsonReturn(-5, $e->getMessage()); -// } -// -// return json($res); -// } -// -// -// /** -// * 资源 移动到 -// */ -// public function copyTo(Request $request) -// { -// Db::startTrans(); -// try { -// // 复制资源 -// $res = (new ResourceDirService())->copyTo($request->param('ids'), $request->param('to_id')); -// Db::commit(); -// } catch (\Exception $e) { -// Db::rollback(); -// return jsonReturn(-5, $e->getMessage()); -// } -// -// return json($res); -// } -} diff --git a/app/service/ResourceDirService.php b/app/service/ResourceDirService.php deleted file mode 100644 index 0bcdb02..0000000 --- a/app/service/ResourceDirService.php +++ /dev/null @@ -1,73 +0,0 @@ -order('type', 'desc') //文件夹放在上面 - ->order('create_time', 'desc') - ->select(); - return $resource_list; - } - - - /** - * @param $ids 需要复制的文件夹资源ids - * @param $to_id 文件夹资源id - * @return array - * 复制操作 - */ - public function copyTo($ids, $to_id) - { - - // 更新 新的文件夹资源 以及所有父文件夹资源 大小和数量 - foreach ($ids as $resource_id) { - $resource = Resource::find($resource_id); - (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); - } - - - //递归复制 - $this->copyFolderRecursively($ids, $to_id); - return dataReturn($this->sucCode, $this->copyMsg); - } - - /** - * @param $ids 需要复制的普通资源ids - * @param $to_id 文件夹资源id - * @return array - * 递归复制资源文件夹及其内容 - */ - - - /** - * @param $resource - * @return string - * 获取一个资源的 所属文件夹路径名称 - */ - public function getResourceDirNamePath($resource) - { - //没有所属目录 - if (!$resource->resource_dir) { - return ''; - } - //根据所属目录的idpath找到所有目录路径 - $all_resource_dir_name = ResourceDir::whereIn('id', $resource->resource_dir->id_path)->column('name'); - - return implode('-', $all_resource_dir_name); - } -} diff --git a/app/service/ResourceService.php b/app/service/ResourceService.php index 21ffa07..6b77920 100644 --- a/app/service/ResourceService.php +++ b/app/service/ResourceService.php @@ -353,7 +353,6 @@ class ResourceService extends Service } //获取资源的大小 $resource_info = $this->getResourceSizeAndCount($resource, true); - //目标文件夹 $target_resource_dir = Resource::find($target_resource_dir_id); @@ -368,4 +367,29 @@ class ResourceService extends Service } return dataReturn($this->sucCode, $this->addMsg); } + + /** + * @param $resource + * @return string + * 获取一个资源的 所属文件夹路径名称 + */ + public function getResourceDirNamePath($resource) + { + //没有所属目录 + if (!$resource->resource_dir) { + return ''; + } + //根据所属目录的idpath找到所有目录路径 + $all_resource_dir_name = Resource::whereIn('id', $resource->resource_dir->id_path)->column('name'); + + return implode('-', $all_resource_dir_name); + } + + public function getResourceDirAndResource($resource_id) + { + return Resource::where('parent_id', $resource_id) + ->order('type', 'desc') //文件夹放在上面 + ->order('create_time', 'desc') + ->select(); + } } diff --git a/route/substance.php b/route/substance.php index db8d638..edb4017 100644 --- a/route/substance.php +++ b/route/substance.php @@ -13,8 +13,12 @@ use think\facade\Route; //资源 Route::group('resource', function () { Route::get('/index', 'index'); + Route::get('/index_dir', 'index_dir'); + Route::post('/save', 'save'); Route::get('/read', 'read'); + Route::get('/read_dir', 'read_dir'); + Route::post('/download_file', 'downloadFile'); Route::post('/share', 'share'); @@ -34,8 +38,8 @@ Route::group('share', function () { //文件夹 Route::group('resource_dir', function () { - Route::get('/index/[:id]', 'index'); - Route::get('/read', 'read'); +// Route::get('/index/[:id]', 'index'); +// Route::get('/read', 'read'); // Route::post('/save', 'save'); //新建文件夹 子文件夹 // Route::post('/rename', 'rename');