From 31b8982bfe61c94379834ff20afe2baa846f6e70 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 23 Jul 2024 11:51:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/OssController.php | 54 ++-- app/controller/ProcessController.php | 54 ++-- app/controller/ProcessReasonController.php | 76 ++++++ app/controller/ResourceController.php | 304 +++++++++++----------- app/controller/ResourceDirController.php | 221 ++++++++-------- app/controller/ShareController.php | 14 +- app/model/ProcessReason.php | 9 + app/service/FileService.php | 76 +++--- app/service/ResourceDirService.php | 391 +++++++++++++++-------------- app/service/ResourceService.php | 329 ++++++++++++------------ app/service/Service.php | 94 +++---- app/service/ShareItemService.php | 28 +-- app/service/ShareService.php | 139 +++++----- route/app.php | 9 + 14 files changed, 949 insertions(+), 849 deletions(-) create mode 100644 app/controller/ProcessReasonController.php create mode 100644 app/model/ProcessReason.php diff --git a/app/controller/OssController.php b/app/controller/OssController.php index 192502c..c5fe8c8 100644 --- a/app/controller/OssController.php +++ b/app/controller/OssController.php @@ -8,34 +8,34 @@ use OSS\Core\OssException; class OssController { - public function upload() - { - $file = request()->file('file'); //接口文件的参数名,取决前端传送的参数 - $filePath = $_FILES['file']['tmp_name']; //要上传文件的临时路径 - $type = $file->extension(); - //读取config目录下aliyun.php的aliyun_oss数据信息 - $Filesystem = \think\facade\Config::get('aliyun.aliyun_oss'); - dd($_FILES); - try { - $accessKeyId = $Filesystem['accessId']; - $accessKeySecret = $Filesystem['accessSecret']; //阿里云后台获取秘钥 - $endpoint = $Filesystem['endpoint']; - $bucket = $Filesystem['bucket']; + public function upload() + { + $file = request()->file('file'); //接口文件的参数名,取决前端传送的参数 + $filePath = $_FILES['file']['tmp_name']; //要上传文件的临时路径 + $type = $file->extension(); + //读取config目录下aliyun.php的aliyun_oss数据信息 + $Filesystem = \think\facade\Config::get('aliyun.aliyun_oss'); + dd($_FILES); + try { + $accessKeyId = $Filesystem['accessId']; + $accessKeySecret = $Filesystem['accessSecret']; //阿里云后台获取秘钥 + $endpoint = $Filesystem['endpoint']; + $bucket = $Filesystem['bucket']; - //实例化对象 将配置传入 - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); + //实例化对象 将配置传入 + $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); - //这里是有sha1加密 生成文件名 之后连接上后缀 - $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $type; - //上传至阿里云的目录 为年+月/日的格式 - $pathName = date('Y-m/d') . '/' . $fileName; - $pathName = '1.jpg'; - //执行阿里云上传 bucket名称,上传的目录,文件 - $result = $ossClient->uploadFile($bucket, $pathName, $filePath); - } catch (OssException $e) { - return json(['code' => 0, 'message' => '上传失败', 'error' => $e->getMessage()]); + //这里是有sha1加密 生成文件名 之后连接上后缀 + $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $type; + //上传至阿里云的目录 为年+月/日的格式 + $pathName = date('Y-m/d') . '/' . $fileName; + $pathName = '1.jpg'; + //执行阿里云上传 bucket名称,上传的目录,文件 + $result = $ossClient->uploadFile($bucket, $pathName, $filePath); + } catch (OssException $e) { + return json(['code' => 0, 'message' => '上传失败', 'error' => $e->getMessage()]); + } + //将结果输出 + return json(['code' => 200, 'message' => '上传成功', 'data' => $result['info']['url']]); } - //将结果输出 - return json(['code' => 200, 'message' => '上传成功', 'data' => $result['info']['url']]); - } } diff --git a/app/controller/ProcessController.php b/app/controller/ProcessController.php index 536a7fa..7fd8dc1 100644 --- a/app/controller/ProcessController.php +++ b/app/controller/ProcessController.php @@ -3,39 +3,43 @@ namespace app\controller; use app\model\Process; +use app\model\ProcessReason; use think\facade\Lang; use think\Request; use think\facade\Db; class ProcessController { - /** - * 后台-流程控制-首页 - */ - public function index(Request $request) - { + /** + * 后台-流程控制-首页 + */ + public function index(Request $request) + { - $list = Process::select(); - return jsonReturn(0, Lang::get('成功'), $list); - } + $list = Process::select(); + return jsonReturn(0, Lang::get('成功'), $list); + } - public function edit(Request $request) - { - //保存到数据库 - Db::startTrans(); - try { - // 移动资源 - $progress = Process::find($request->param('id')); - $progress->auto_propose = $request->param('auto_propose') ?: 0; - $progress->stop_using = $request->param('stop_using') ?: 0; - $progress->save(); + /** + * 后台-流程控制-编辑 + */ + public function edit(Request $request) + { + //保存到数据库 + Db::startTrans(); + try { + // 移动资源 + $progress = Process::find($request->param('id')); + $progress->auto_propose = $request->param('auto_propose') ?: 0; + $progress->stop_using = $request->param('stop_using') ?: 0; + $progress->save(); - Db::commit(); - } catch (\Exception $e) { - Db::rollback(); - return jsonReturn(-5, $e->getMessage()); - } + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + return jsonReturn(-5, $e->getMessage()); + } - return jsonReturn(0, Lang::get('修改成功')); - } + return jsonReturn(0, Lang::get('修改成功')); + } } diff --git a/app/controller/ProcessReasonController.php b/app/controller/ProcessReasonController.php new file mode 100644 index 0000000..ab8527f --- /dev/null +++ b/app/controller/ProcessReasonController.php @@ -0,0 +1,76 @@ +param('process_id'))->select(); + } catch (\Exception $e) { + return jsonReturn(-5, $e->getMessage()); + } + return jsonReturn(0, Lang::get('成功'), $list); + } + + /** + * 流程处置原因 新增 + * @param Request $request + * @return Json + */ + public function save(Request $request) + { + try { + if (ProcessReason::where('process_id', $request->param('process_id'))->where('name', $request->param('name'))->count() > 0) { + return jsonReturn(-5, '处置原因已经存在'); + } + ProcessReason::create($request->param()); + } catch (\Exception $e) { + return jsonReturn(-5, $e->getMessage()); + } + return jsonReturn(0, Lang::get('成功')); + } + + /** + * 流程处置原因修改 + * @param Request $request + * @return json + */ + public function edit(Request $request) + { + try { + ProcessReason::where('id', $request->param('id'))->update(['name' => $request->param('name')]); + } catch (\Exception $e) { + return jsonReturn(-5, $e->getMessage()); + } + return jsonReturn(0, Lang::get('成功')); + } + + /** + * 流程处置原因删除 + * @param Request $request + * @return json + */ + public function delete(Request $request) + { + try { + ProcessReason::where('id', $request->param('id'))->delete(); + } catch (\Exception $e) { + return jsonReturn(-5, $e->getMessage()); + } + return jsonReturn(0, Lang::get('成功')); + } +} diff --git a/app/controller/ResourceController.php b/app/controller/ResourceController.php index f6d0f5b..5b6e616 100644 --- a/app/controller/ResourceController.php +++ b/app/controller/ResourceController.php @@ -13,168 +13,168 @@ use think\Request; class ResourceController { - /** - * 全部资源 列表 - */ - public function index(Request $request) - { - $param = $request->param(); - $resource_list = Resource::field('id, name,user_id, resource_type, audit_status, del_audit_status, copyright_type, copyright_status, effective_start_time, effective_end_time,create_time') - ->when(isset($param['resource_type']), function ($query) use ($param) { - $query->where('resource_type', $param['resource_type']); - }) - ->when(isset($param['copyright_type']), function ($query) use ($param) { - $query->where('copyright_type', $param['copyright_type']); - }) - ->when(isset($param['copyright_status']), function ($query) use ($param) { - $query->where('copyright_status', $param['copyright_status']); - }) - ->when(isset($param['create_time']), function ($query) use ($param) { - $query->where('create_time', '>', $param['create_time']); - }) - ->when(isset($param['audit_status']), function ($query) use ($param) { - $query->where('audit_status', $param['audit_status']); - }) - ->when(isset($param['del_audit_status']), function ($query) use ($param) { - $query->where('del_audit_status', $param['del_audit_status']); - }) - ->when(isset($param['order_field']) && isset($param['order_sort']), function ($query) use ($param) { - $query->order($param['order_field'], $param['order_sort']); - }) - ->with('user') - ->where('type', 1) - ->select(); - - // $userService = app('userService'); - // return $userService->doSomething(); - return jsonReturn(0, Lang::get('成功'), $resource_list); - } - - - /** - * 全部资源 新增 - */ - public function save(Request $request) - { - // 数据验证 - try { - switch ($request->param('copyright_type')) { - case 1: - validate(ResourceValidate::class)->scene('save_selfown')->check($request->param()); - break; - case 2: - validate(ResourceValidate::class)->scene('save_purchase')->check($request->param()); - break; - } - } catch (ValidateException $e) { - return jsonReturn(-1, $e->getError()); + /** + * 全部资源 列表 + */ + public function index(Request $request) + { + $param = $request->param(); + $resource_list = Resource::field('id, name,user_id, resource_type, audit_status, del_audit_status, copyright_type, copyright_status, effective_start_time, effective_end_time,create_time') + ->when(isset($param['resource_type']), function ($query) use ($param) { + $query->where('resource_type', $param['resource_type']); + }) + ->when(isset($param['copyright_type']), function ($query) use ($param) { + $query->where('copyright_type', $param['copyright_type']); + }) + ->when(isset($param['copyright_status']), function ($query) use ($param) { + $query->where('copyright_status', $param['copyright_status']); + }) + ->when(isset($param['create_time']), function ($query) use ($param) { + $query->where('create_time', '>', $param['create_time']); + }) + ->when(isset($param['audit_status']), function ($query) use ($param) { + $query->where('audit_status', $param['audit_status']); + }) + ->when(isset($param['del_audit_status']), function ($query) use ($param) { + $query->where('del_audit_status', $param['del_audit_status']); + }) + ->when(isset($param['order_field']) && isset($param['order_sort']), function ($query) use ($param) { + $query->order($param['order_field'], $param['order_sort']); + }) + ->with('user') + ->where('type', 1) + ->select(); + + // $userService = app('userService'); + // return $userService->doSomething(); + return jsonReturn(0, Lang::get('成功'), $resource_list); } - //保存到数据库 - Db::startTrans(); - try { - // 1. 保存站点到数据库 - $res = (new ResourceService())->addResource($request->param()); - Db::commit(); - } catch (\Exception $e) { - Db::rollback(); - return jsonReturn(-5, $e->getMessage()); + /** + * 全部资源 新增 + */ + public function save(Request $request) + { + // 数据验证 + try { + switch ($request->param('copyright_type')) { + case 1: + validate(ResourceValidate::class)->scene('save_selfown')->check($request->param()); + break; + case 2: + validate(ResourceValidate::class)->scene('save_purchase')->check($request->param()); + break; + } + } catch (ValidateException $e) { + return jsonReturn(-1, $e->getError()); + } + + //保存到数据库 + Db::startTrans(); + try { + // 1. 保存站点到数据库 + $res = (new ResourceService())->addResource($request->param()); + + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + return jsonReturn(-5, $e->getMessage()); + } + + return json($res); } - return json($res); - } - - /** - * 资源 详情 - */ - public function detail(Resource $resource, $id) - { - $resource_detail = $resource::with(['user', 'accredit_files', 'files']) - ->find($id); - return jsonReturn(0, Lang::get('成功'), $resource_detail); - } - - /** - * 资源 分享 - */ - public function share(Request $request) - { - try { - validate(ResourceValidate::class)->scene('share')->check($request->param()); - } catch (ValidateException $e) { - return jsonReturn(-1, $e->getError()); + /** + * 资源 详情 + */ + public function detail(Resource $resource, $id) + { + $resource_detail = $resource::with(['user', 'accredit_files', 'files']) + ->find($id); + return jsonReturn(0, Lang::get('成功'), $resource_detail); } - Db::startTrans(); - try { - $res = (new ShareService())->addResourceShare($request->param(), $request->user_id); - 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')->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 share(Request $request) + { + try { + validate(ResourceValidate::class)->scene('share')->check($request->param()); + } catch (ValidateException $e) { + return jsonReturn(-1, $e->getError()); + } + Db::startTrans(); + try { + $res = (new ShareService())->addResourceShare($request->param(), $request->user_id); + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + return jsonReturn(-5, $e->getMessage()); + } + return json($res); } - } - - /** - * 资源 移动到 - */ - public function moveTo(Request $request) - { - //保存到数据库 - Db::startTrans(); - try { - // 移动资源 - $res = (new ResourceService())->moveTo($request->param('ids'), $request->param('to_id')); - Db::commit(); - } catch (\Exception $e) { - Db::rollback(); - return jsonReturn(-5, $e->getMessage()); + + /** + * 资源 重命名 + */ + public function rename(Resource $resource, Request $request) + { + try { + validate(ResourceValidate::class)->scene('rename')->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()); + } } - return json($res); - } - - /** - * 资源 复制到 - */ - public function copyTo(Request $request) - { - Db::startTrans(); - try { - // 复制资源 - $res = (new ResourceService())->copyTo($request->param('ids'), $request->param('to_id')); - Db::commit(); - } catch (\Exception $e) { - Db::rollback(); - return jsonReturn(-5, $e->getMessage()); + /** + * 资源 移动到 + */ + public function moveTo(Request $request) + { + //保存到数据库 + Db::startTrans(); + try { + // 移动资源 + $res = (new ResourceService())->moveTo($request->param('ids'), $request->param('to_id')); + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + return jsonReturn(-5, $e->getMessage()); + } + + return json($res); } - return json($res); - } + /** + * 资源 复制到 + */ + public function copyTo(Request $request) + { + Db::startTrans(); + try { + // 复制资源 + $res = (new ResourceService())->copyTo($request->param('ids'), $request->param('to_id')); + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); + return jsonReturn(-5, $e->getMessage()); + } + + return json($res); + } - /** - * 删除 - */ - public function delete() - { - } + /** + * 删除 + */ + public function delete() + { + } } diff --git a/app/controller/ResourceDirController.php b/app/controller/ResourceDirController.php index 4d1b9ee..3ebe3e2 100644 --- a/app/controller/ResourceDirController.php +++ b/app/controller/ResourceDirController.php @@ -16,125 +16,124 @@ use think\Request; */ class ResourceDirController { - /** - * 文件夹 列表页 - */ - public function index(ResourceDir $resource_dir, Request $request, $id = 0) - { - //左侧顶级文件夹列表 - $top_resource_dir = $resource_dir::where('type', 2)->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); - } - - public function detail($id) - { - dd($id); - $param = input('get.'); - dd($param); - } - - /** - * 创建文件夹 - */ - public function save(Request $request) - { - if ($request->param('type') != 2) { - return jsonReturn(-1, '仅支持创建文件夹'); + /** + * 文件夹 列表页 + */ + public function index(ResourceDir $resource_dir, Request $request, $id = 0) + { + //左侧顶级文件夹列表 + $top_resource_dir = $resource_dir::where('type', 2)->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); } - // 数据验证 - 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()); + public function detail($id) + { + dd($id); + $param = input('get.'); + dd($param); } - return json($res); - } + /** + * 创建文件夹 + */ + 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()); + /** + * 文件夹 重命名 + */ + 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()); + } } - return json($res); - } - - - /** - * 资源 移动到 - */ - public function copyTo(Request $request) - { - Db::startTrans(); - try { - // 复制资源 - // $resource = Resource::find(1); - // dd($resource); - // die; - $res = (new ResourceDirService())->copyTo($request->param('ids'), $request->param('to_id')); - Db::commit(); - } catch (\Exception $e) { - Db::rollback(); - 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); } - return json($res); - } + + /** + * 资源 移动到 + */ + public function copyTo(Request $request) + { + Db::startTrans(); + try { + // 复制资源 + // $resource = Resource::find(1); + // dd($resource); + // die; + $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/controller/ShareController.php b/app/controller/ShareController.php index 5c8d7e8..12082b9 100644 --- a/app/controller/ShareController.php +++ b/app/controller/ShareController.php @@ -14,12 +14,12 @@ use think\Request; class ShareController { - public function index(Request $request) - { - $code = $request->param('code'); + public function index(Request $request) + { + $code = $request->param('code'); - $share = Share::with(['share_item', 'share_item.target']) - ->where('code', $code)->find(); - return jsonReturn(0, Lang::get('成功'), $share); - } + $share = Share::with(['share_item', 'share_item.target']) + ->where('code', $code)->find(); + return jsonReturn(0, Lang::get('成功'), $share); + } } diff --git a/app/model/ProcessReason.php b/app/model/ProcessReason.php new file mode 100644 index 0000000..18363fa --- /dev/null +++ b/app/model/ProcessReason.php @@ -0,0 +1,9 @@ +accreditFiles()->saveAll($accredit_file_array); } - // 资源素材关联 系统会自动插入 - $resource->accreditFiles()->saveAll($accredit_file_array); - } - /** - * @param $resource 资源对象 - * @param $files 素材 - * 添加 素材 - */ - public function addFile($resource, $files, $file_input_mode) - { - foreach ($files as $file) { - $file['type'] = 1; - $file['file_input_mode'] = $file_input_mode; - $file_array[] = $file; + /** + * @param $resource 资源对象 + * @param $files 素材 + * 添加 素材 + */ + public function addFile($resource, $files, $file_input_mode) + { + foreach ($files as $file) { + $file['type'] = 1; + $file['file_input_mode'] = $file_input_mode; + $file_array[] = $file; + } + // 资源素材关联 系统会自动插入 + $resource->files()->saveAll($file_array); } - // 资源素材关联 系统会自动插入 - $resource->files()->saveAll($file_array); - } - /** - * @param $files 素材数组 - * 获得一组素材的大小 - */ - public function getFileSize($files) - { - $size = 0; - foreach ($files as $file) { - $size += $file['size']; + /** + * @param $files 素材数组 + * 获得一组素材的大小 + */ + public function getFileSize($files) + { + $size = 0; + foreach ($files as $file) { + $size += $file['size']; + } + return $size; } - return $size; - } } diff --git a/app/service/ResourceDirService.php b/app/service/ResourceDirService.php index 5af0173..202c431 100644 --- a/app/service/ResourceDirService.php +++ b/app/service/ResourceDirService.php @@ -8,209 +8,210 @@ use app\model\ResourceDir; class ResourceDirService extends Service { - /** - * @param $param 前端提交的参数 - * @return array - * 添加文件夹 - */ - public function addResourceDir($param): array - { - try { - $resource_dir = ResourceDir::create($param); - //更新id_path - $resource_dir->id_path = $this->getResourceDirIdPath($resource_dir->id); - $resource_dir->save(); - } catch (\Exception $e) { - throw new ModelException($e->getMessage()); + /** + * @param $param 前端提交的参数 + * @return array + * 添加文件夹 + */ + public function addResourceDir($param): array + { + try { + $resource_dir = ResourceDir::create($param); + //更新id_path + $resource_dir->id_path = $this->getResourceDirIdPath($resource_dir->id); + $resource_dir->save(); + } catch (\Exception $e) { + throw new ModelException($e->getMessage()); + } + return dataReturn($this->sucCode, $this->addMsg, $resource_dir->id); } - return dataReturn($this->sucCode, $this->addMsg, $resource_dir->id); - } - - /** - * @param $resource_dir_id 文件夹id - * @return array - * 获取一个文件夹下的所有文件夹 和资源 - */ - public function getResourceDirAndResource($resource_dir_id) - { - $resource_list = ResourceDir::where('parent_id', $resource_dir_id) - ->order('type', 'desc') //文件夹放在上面 - ->order('create_time', 'desc') - ->select(); - return $resource_list; - } - - /** - * @param $resource 资源对象 - * @param $resource_dir_id 移入/移出的资源文件夹id - * @param $resource_dir_id method + 移入 - 移除 - * @return array - * 将一资源(普通或者文件夹资源均可)移入或者移出文件夹 文件夹修改资源数量 和 资源大小 - */ - public function changeDirSizeAndCount($resource, $target_resource_dir_id, $method = '+') - { - //资源还不属于文件夹 - if ($target_resource_dir_id == 0) { - return true; + + /** + * @param $resource_dir_id 文件夹id + * @return array + * 获取一个文件夹下的所有文件夹 和资源 + */ + public function getResourceDirAndResource($resource_dir_id) + { + $resource_list = ResourceDir::where('parent_id', $resource_dir_id) + ->order('type', 'desc') //文件夹放在上面 + ->order('create_time', 'desc') + ->select(); + return $resource_list; } - //获取资源的大小 - $resource_info = (new ResourceService())->getResourceSizeAndCount($resource, true); - - //目标文件夹 - $target_resource_dir = ResourceDir::find($target_resource_dir_id); - - if ($method === '+') { - ResourceDir::whereIn('id', $target_resource_dir['id_path'])->inc('resource_size', $resource_info['size']) - ->inc('resource_count', $resource_info['count']) - ->update(); - } elseif ($method === '-') { - ResourceDir::whereIn('id', $target_resource_dir['id_path'])->dec('resource_size', $resource_info['size']) - ->dec('resource_count', $resource_info['count']) - ->update(); + + /** + * @param $resource 资源对象 + * @param $resource_dir_id 移入/移出的资源文件夹id + * @param $resource_dir_id method + 移入 - 移除 + * @return array + * 将一资源(普通或者文件夹资源均可)移入或者移出文件夹 文件夹修改资源数量 和 资源大小 + */ + public function changeDirSizeAndCount($resource, $target_resource_dir_id, $method = '+') + { + //资源还不属于文件夹 + if ($target_resource_dir_id == 0) { + return true; + } + //获取资源的大小 + $resource_info = (new ResourceService())->getResourceSizeAndCount($resource, true); + + //目标文件夹 + $target_resource_dir = ResourceDir::find($target_resource_dir_id); + + if ($method === '+') { + ResourceDir::whereIn('id', $target_resource_dir['id_path'])->inc('resource_size', $resource_info['size']) + ->inc('resource_count', $resource_info['count']) + ->update(); + } elseif ($method === '-') { + ResourceDir::whereIn('id', $target_resource_dir['id_path'])->dec('resource_size', $resource_info['size']) + ->dec('resource_count', $resource_info['count']) + ->update(); + } + return dataReturn($this->sucCode, $this->addMsg); } - return dataReturn($this->sucCode, $this->addMsg); - } - - /** - * @param $resource_dir_id 文件夹id - * 获取文件夹 id_path(从顶级文件夹到自己的路径) - */ - public function getResourceDirIdPath($resource_dir_id) - { - $path = []; - // 调用递归函数 - findParent(new ResourceDir(), $resource_dir_id, $path); - // 反转路径数组,使顶级文件夹在前 - return implode(',', array_reverse($path)); - } - - - /** - * @param $ids 需要移动的文件夹资源ids - * @param $to_id 文件夹资源id - * @return array - * 移动操作 - */ - public function moveTo($ids, $to_id) - { - - foreach ($ids as $resource_id) { - $resource = Resource::find($resource_id); - - if ($resource->parent_id == $to_id) { - //移动到同文件夹 无需操作 - continue; - } - - //1 更新原文件夹 以及所有父文件夹 大小和数量 - (new ResourceDirService())->changeDirSizeAndCount($resource, $resource->parent_id, '-'); - - //2 更新 新的文件夹 以及所有父文件夹 大小和数量 - (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); - - //3 更新当前文件夹 parent_id - $resource->parent_id = $to_id; - $resource->save(); - - //4 递归修改当前文件夹 子文件夹id_path - $this->updateChildParentIds($resource_id); + + /** + * @param $resource_dir_id 文件夹id + * 获取文件夹 id_path(从顶级文件夹到自己的路径) + */ + public function getResourceDirIdPath($resource_dir_id) + { + $path = []; + // 调用递归函数 + findParent(new ResourceDir(), $resource_dir_id, $path); + // 反转路径数组,使顶级文件夹在前 + return implode(',', array_reverse($path)); } - return dataReturn($this->sucCode, $this->moveMsg); - } - - - /** - * @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, '+'); + + + /** + * @param $ids 需要移动的文件夹资源ids + * @param $to_id 文件夹资源id + * @return array + * 移动操作 + */ + public function moveTo($ids, $to_id) + { + + foreach ($ids as $resource_id) { + $resource = Resource::find($resource_id); + + if ($resource->parent_id == $to_id) { + //移动到同文件夹 无需操作 + continue; + } + + //1 更新原文件夹 以及所有父文件夹 大小和数量 + (new ResourceDirService())->changeDirSizeAndCount($resource, $resource->parent_id, '-'); + + //2 更新 新的文件夹 以及所有父文件夹 大小和数量 + (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); + + //3 更新当前文件夹 parent_id + $resource->parent_id = $to_id; + $resource->save(); + + //4 递归修改当前文件夹 子文件夹id_path + $this->updateChildParentIds($resource_id); + } + return dataReturn($this->sucCode, $this->moveMsg); } - //递归复制 - $this->copyFolderRecursively($ids, $to_id); - return dataReturn($this->sucCode, $this->copyMsg); - } - /** - * @param $ids 需要复制的普通资源ids - * @param $to_id 文件夹资源id - * @return array - * 递归复制资源文件夹及其内容 - */ - public function copyFolderRecursively($ids, $to_id) - { - - foreach ($ids as $resource_id) { - //获取源文件 和子文件 - $resource = Resource::find($resource_id); - $children = Resource::with(['files', 'accredit_files'])->where('parent_id', $resource->id)->select(); - - // 复制源文件夹 - $new_resource_dir = $this->copyResourceDir($resource->toArray(), $to_id); - $new_resource_dir_id = $new_resource_dir['data']; - // 复制子文件和子文件夹 - - if ($children) { - foreach ($children as $child) { - if ($child['type'] == '2') { - // 递归复制子文件夹 - $this->copyFolderRecursively([$child['id']], $new_resource_dir_id); - } else { - // 复制文件 - (new ResourceService())->copyResource($child->toArray(), $new_resource_dir_id); - } + /** + * @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 + * 递归复制资源文件夹及其内容 + */ + public function copyFolderRecursively($ids, $to_id) + { + + foreach ($ids as $resource_id) { + //获取源文件 和子文件 + $resource = Resource::find($resource_id); + $children = Resource::with(['files', 'accredit_files'])->where('parent_id', $resource->id)->select(); + + // 复制源文件夹 + $new_resource_dir = $this->copyResourceDir($resource->toArray(), $to_id); + $new_resource_dir_id = $new_resource_dir['data']; + // 复制子文件和子文件夹 + + if ($children) { + foreach ($children as $child) { + if ($child['type'] == '2') { + // 递归复制子文件夹 + $this->copyFolderRecursively([$child['id']], $new_resource_dir_id); + } else { + // 复制文件 + (new ResourceService())->copyResource($child->toArray(), $new_resource_dir_id); + } + } + } } - } } - } - - - /** - * @param $resource 资源数组(因为前台创建是数组 保持一致) - * @param $to_id 复制到的文件夹id - * @return array - * 复制一个文件夹资源数据 - */ - public function copyResourceDir($resource, $to_id) - { - unset($resource['id']); - $resource['create_time'] = date('Y-m-d H:i:s'); - $resource['update_time'] = date('Y-m-d H:i:s'); - $resource['parent_id'] = $to_id; - - //重新创建资源 - return $this->addResourceDir($resource); - } - - /** - * 递归更新文件夹的 id_path - * - * @param int $folderId 要更新的文件夹 ID - * @param int $newParentId 新的父文件夹 ID - * @return void - */ - protected function updateChildParentIds($resource_id) - { - // 更新当前文件夹的 parent_id id_path - $id_path = $this->getResourceDirIdPath($resource_id); - - ResourceDir::where('id', $resource_id)->update(['id_path' => $id_path]); - // 获取所有子文件和子文件夹 - $children = ResourceDir::where('parent_id', $resource_id)->select(); - - foreach ($children as $child) { - // 递归更新子文件夹的 parent_id - if ($child['type'] == '2') { - $this->updateChildParentIds($child['id']); - } + + + /** + * @param $resource 资源数组(因为前台创建是数组 保持一致) + * @param $to_id 复制到的文件夹id + * @return array + * 复制一个文件夹资源数据 + */ + public function copyResourceDir($resource, $to_id) + { + unset($resource['id']); + $resource['create_time'] = date('Y-m-d H:i:s'); + $resource['update_time'] = date('Y-m-d H:i:s'); + $resource['parent_id'] = $to_id; + + //重新创建资源 + return $this->addResourceDir($resource); + } + + /** + * 递归更新文件夹的 id_path + * + * @param int $folderId 要更新的文件夹 ID + * @param int $newParentId 新的父文件夹 ID + * @return void + */ + protected function updateChildParentIds($resource_id) + { + // 更新当前文件夹的 parent_id id_path + $id_path = $this->getResourceDirIdPath($resource_id); + + ResourceDir::where('id', $resource_id)->update(['id_path' => $id_path]); + // 获取所有子文件和子文件夹 + $children = ResourceDir::where('parent_id', $resource_id)->select(); + + foreach ($children as $child) { + // 递归更新子文件夹的 parent_id + if ($child['type'] == '2') { + $this->updateChildParentIds($child['id']); + } + } } - } } diff --git a/app/service/ResourceService.php b/app/service/ResourceService.php index cbf1755..00b6cbc 100644 --- a/app/service/ResourceService.php +++ b/app/service/ResourceService.php @@ -10,178 +10,179 @@ use app\model\Share; class ResourceService extends Service { - /** - * @param $param 前端提交的参数 - * @return array - * 添加普通资源 - */ - public function addResource($param): array - { - try { - // event(new ResourceEvent($this::find(1), 'add')); - //插入资源表 - $resource = Resource::create($param); - - //存在授权文件 插入授权文件表 - if ($param['copyright_type'] == 2 && isset($param['accredit_files'])) { - (new FileService())->addAccreditFile($resource, $param['accredit_files']); - } - //插入素材表 - (new FileService())->addFile($resource, $param['files'], $param['file_input_mode']); - //添加资源的后置操作 - $this->afterAddResource($resource); - } catch (\Exception $e) { - throw new ModelException($e->getMessage()); + /** + * @param $param 前端提交的参数 + * @return array + * 添加普通资源 + */ + public function addResource($param): array + { + try { + // event(new ResourceEvent($this::find(1), 'add')); + //插入资源表 + $resource = Resource::create($param); + + //存在授权文件 插入授权文件表 + if ($param['copyright_type'] == 2 && isset($param['accredit_files'])) { + (new FileService())->addAccreditFile($resource, $param['accredit_files']); + } + //插入素材表 + (new FileService())->addFile($resource, $param['files'], $param['file_input_mode']); + //添加资源的后置操作 + $this->afterAddResource($resource); + } catch (\Exception $e) { + throw new ModelException($e->getMessage()); + } + + return dataReturn($this->sucCode, $this->addMsg, $resource->id); } - return dataReturn($this->sucCode, $this->addMsg, $resource->id); - } - - /** - * @param $resource 资源对象 - * @return array - * 添加普通资源后的的操作 - */ - public function afterAddResource($resource) - { - //根据素材 更新资源大小 数量 - $file_size_and_count = $this->getFileSizeAndCount($resource); - $resource->file_size = $file_size_and_count['file_size']; - $resource->file_count = $file_size_and_count['file_count']; - //todo 还有状态的啥的 - $resource->save(); - } - - /** - * @param $ids 需要移动的资源ids - * @param $to_id 文件夹id - * @return array - * 移动操作 - */ - public function moveTo($ids, $to_id) - { - foreach ($ids as $resource_id) { - $resource = Resource::find($resource_id); - if ($resource->parent_id == $to_id) { - //移动到同文件夹 无需操作 - continue; - } - - //1 更新原文件夹 以及所有父文件夹 大小和数量 - (new ResourceDirService())->changeDirSizeAndCount($resource, $resource->parent_id, '-'); - - //2 更新 新的文件夹 以及所有父文件夹 大小和数量 - (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); - - //3 更新parent_id - $resource->parent_id = $to_id; - $resource->save(); + /** + * @param $resource 资源对象 + * @return array + * 添加普通资源后的的操作 + */ + public function afterAddResource($resource) + { + //根据素材 更新资源大小 数量 + $file_size_and_count = $this->getFileSizeAndCount($resource); + $resource->file_size = $file_size_and_count['file_size']; + $resource->file_count = $file_size_and_count['file_count']; + //todo 还有状态的啥的 + $resource->save(); } - return dataReturn($this->sucCode, $this->moveMsg); - } - - - /** - * @param $ids 需要复制的普通资源ids - * @param $to_id 文件夹资源id - * @return array - * 复制操作 - */ - public function copyTo($ids, $to_id) - { - foreach ($ids as $resource_id) { - //复制需要 需要复制里面所有的素材 - $resource = Resource::with(['files', 'accredit_files'])->find($resource_id); - - //1.创建一个新普通资源 - $this->copyResource($resource->toArray(), $to_id); - - //2 更新 新的文件夹资源 以及所有父文件夹资源 大小和数量 - (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); + + /** + * @param $ids 需要移动的资源ids + * @param $to_id 文件夹id + * @return array + * 移动操作 + */ + public function moveTo($ids, $to_id) + { + foreach ($ids as $resource_id) { + $resource = Resource::find($resource_id); + if ($resource->parent_id == $to_id) { + //移动到同文件夹 无需操作 + continue; + } + + //1 更新原文件夹 以及所有父文件夹 大小和数量 + (new ResourceDirService())->changeDirSizeAndCount($resource, $resource->parent_id, '-'); + + //2 更新 新的文件夹 以及所有父文件夹 大小和数量 + (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); + + //3 更新parent_id + $resource->parent_id = $to_id; + $resource->save(); + } + return dataReturn($this->sucCode, $this->moveMsg); } - return dataReturn($this->sucCode, $this->copyMsg); - } - - - /** - * @param $resource 资源数组(因为前台创建是数组 保持一致) - * @param $to_id 复制到的文件夹id - * @return array - * 复制一个普通资源数据 - */ - public function copyResource($resource, $to_id) - { - //资源表字段更新 - unset($resource['id']); - $resource['create_time'] = date('Y-m-d H:i:s'); - $resource['update_time'] = date('Y-m-d H:i:s'); - $resource['parent_id'] = $to_id; - - //关联表去掉关联字段 - if (isset($resource['files'])) { - foreach ($resource['files'] as $key => $file) { - unset($resource['files'][$key]['id']); - unset($resource['files'][$key]['resource_id']); //去掉原来的关联关系 - $resource['files'][$key]['create_time'] = date('Y-m-d H:i:s'); - $resource['files'][$key]['update_time'] = date('Y-m-d H:i:s'); - } + + + /** + * @param $ids 需要复制的普通资源ids + * @param $to_id 文件夹资源id + * @return array + * 复制操作 + */ + public function copyTo($ids, $to_id) + { + foreach ($ids as $resource_id) { + //复制需要 需要复制里面所有的素材 + $resource = Resource::with(['files', 'accredit_files'])->find($resource_id); + + //1.创建一个新普通资源 + $this->copyResource($resource->toArray(), $to_id); + + //2 更新 新的文件夹资源 以及所有父文件夹资源 大小和数量 + (new ResourceDirService())->changeDirSizeAndCount($resource, $to_id, '+'); + } + return dataReturn($this->sucCode, $this->copyMsg); } - if (isset($resource['accredit_files'])) { - foreach ($resource['accredit_files'] as $key => $file) { - unset($resource['accredit_files'][$key]['id']); - unset($resource['accredit_files'][$key]['resource_id']); //去掉原来的关联关系 - $resource['files'][$key]['create_time'] = date('Y-m-d H:i:s'); - $resource['files'][$key]['update_time'] = date('Y-m-d H:i:s'); - } + + /** + * @param $resource 资源数组(因为前台创建是数组 保持一致) + * @param $to_id 复制到的文件夹id + * @return array + * 复制一个普通资源数据 + */ + public function copyResource($resource, $to_id) + { + //资源表字段更新 + unset($resource['id']); + $resource['create_time'] = date('Y-m-d H:i:s'); + $resource['update_time'] = date('Y-m-d H:i:s'); + $resource['parent_id'] = $to_id; + + //关联表去掉关联字段 + if (isset($resource['files'])) { + foreach ($resource['files'] as $key => $file) { + unset($resource['files'][$key]['id']); + unset($resource['files'][$key]['resource_id']); //去掉原来的关联关系 + $resource['files'][$key]['create_time'] = date('Y-m-d H:i:s'); + $resource['files'][$key]['update_time'] = date('Y-m-d H:i:s'); + } + } + + if (isset($resource['accredit_files'])) { + foreach ($resource['accredit_files'] as $key => $file) { + unset($resource['accredit_files'][$key]['id']); + unset($resource['accredit_files'][$key]['resource_id']); //去掉原来的关联关系 + $resource['files'][$key]['create_time'] = date('Y-m-d H:i:s'); + $resource['files'][$key]['update_time'] = date('Y-m-d H:i:s'); + } + } + + //重新创建资源 + return $this->addResource($resource); } - //重新创建资源 - return $this->addResource($resource); - } - /** - * @param $resource 资源对象 - * @return array - * 通过素材 获取一个普通资源的大小(所有素材大小的总和) 和包含的素材数量 - */ - public function getFileSizeAndCount($resource) - { - $size = 0; - $count = 0; - foreach ($resource->files as $file) { - if (isset($file['size'])) { - $size += $file['size']; - } - $count++; + /** + * @param $resource 资源对象 + * @return array + * 通过素材 获取一个普通资源的大小(所有素材大小的总和) 和包含的素材数量 + */ + public function getFileSizeAndCount($resource) + { + $size = 0; + $count = 0; + foreach ($resource->files as $file) { + if (isset($file['size'])) { + $size += $file['size']; + } + $count++; + } + return [ + 'file_size' => $size, + 'file_count' => $count, + ]; } - return [ - 'file_size' => $size, - 'file_count' => $count, - ]; - } - - /** - * @param $resource 资源对象 - * @param $need_resource true 表示普通资源直接返回size是1 计算是资源数量 - *通过字段 获得一个资源大小文件数量 - */ - public function getResourceSizeAndCount($resource, $need_resource = false) - { - switch ($resource->type) { - case 1: - //普通资源 (素材的大小和数量) - $count = $need_resource ? 1 : $resource->file_count; - $size = $resource->file_size; - break; - case 2; - //文件夹资源 (资源的大小和数量) - $count = $resource->resource_count; - $size = $resource->resource_size; - break; + + /** + * @param $resource 资源对象 + * @param $need_resource true 表示普通资源直接返回size是1 计算是资源数量 + *通过字段 获得一个资源大小文件数量 + */ + public function getResourceSizeAndCount($resource, $need_resource = false) + { + switch ($resource->type) { + case 1: + //普通资源 (素材的大小和数量) + $count = $need_resource ? 1 : $resource->file_count; + $size = $resource->file_size; + break; + case 2; + //文件夹资源 (资源的大小和数量) + $count = $resource->resource_count; + $size = $resource->resource_size; + break; + } + return [ + 'count' => $count, + 'size' => $size, + ]; } - return [ - 'count' => $count, - 'size' => $size, - ]; - } } diff --git a/app/service/Service.php b/app/service/Service.php index a89b75e..f77c333 100644 --- a/app/service/Service.php +++ b/app/service/Service.php @@ -4,52 +4,52 @@ namespace app\service; class Service { - // msg - public $moveMsg; - public $copyMsg; - public $getMsg; - public $addMsg; - public $updateMsg; - public $delMsg; - - // 成功编码 - public $sucCode = 0; - // 软删除数据 - public $delData; - // 错误编码 - public $errorCode = '50011'; - - public $listCacheKey; - public $detailCacheKey; - public $className; - - - protected $hidden = [ - 'password', 'seller_id' - ]; - - public function __construct($data = []) - { - $this->delData = [ - 'is_del' => 2, - 'delete_time' => time(), - 'update_time' => time(), + // msg + public $moveMsg; + public $copyMsg; + public $getMsg; + public $addMsg; + public $updateMsg; + public $delMsg; + + // 成功编码 + public $sucCode = 0; + // 软删除数据 + public $delData; + // 错误编码 + public $errorCode = '50011'; + + public $listCacheKey; + public $detailCacheKey; + public $className; + + + protected $hidden = [ + 'password', 'seller_id' ]; - $this->className = $this->getClassName(); - $this->listCacheKey = $this->className . '_cache_list'; - $this->detailCacheKey = $this->className . '_cache_detail'; - $this->moveMsg = lang('移动成功'); - $this->copyMsg = lang('复制成功'); - $this->getMsg = lang('获取成功'); - $this->addMsg = lang('添加成功'); - $this->updateMsg = lang('修改成功'); - $this->delMsg = lang('删除成功'); - // parent::__construct($data); - } - - public function getClassName(): string - { - $reflection = new \ReflectionClass($this); - return $reflection->getShortName(); - } + + public function __construct($data = []) + { + $this->delData = [ + 'is_del' => 2, + 'delete_time' => time(), + 'update_time' => time(), + ]; + $this->className = $this->getClassName(); + $this->listCacheKey = $this->className . '_cache_list'; + $this->detailCacheKey = $this->className . '_cache_detail'; + $this->moveMsg = lang('移动成功'); + $this->copyMsg = lang('复制成功'); + $this->getMsg = lang('获取成功'); + $this->addMsg = lang('添加成功'); + $this->updateMsg = lang('修改成功'); + $this->delMsg = lang('删除成功'); + // parent::__construct($data); + } + + public function getClassName(): string + { + $reflection = new \ReflectionClass($this); + return $reflection->getShortName(); + } } diff --git a/app/service/ShareItemService.php b/app/service/ShareItemService.php index 402151e..378985f 100644 --- a/app/service/ShareItemService.php +++ b/app/service/ShareItemService.php @@ -4,19 +4,19 @@ namespace app\service; class ShareItemService extends Service { - /** - * @param $share 分享对象 - * @param $ids 分享id数组 - * @param $type 分享类型 1 资源 2 内容 - * 添加 授权素材 - */ - public function addShareItem($share, $ids, $type) - { - foreach ($ids as $id) { - $share_item['type'] = $type; - $share_item['target_id'] = $id; - $share_item_array[] = $share_item; + /** + * @param $share 分享对象 + * @param $ids 分享id数组 + * @param $type 分享类型 1 资源 2 内容 + * 添加 授权素材 + */ + public function addShareItem($share, $ids, $type) + { + foreach ($ids as $id) { + $share_item['type'] = $type; + $share_item['target_id'] = $id; + $share_item_array[] = $share_item; + } + $share->shareItem()->saveAll($share_item_array); } - $share->shareItem()->saveAll($share_item_array); - } } diff --git a/app/service/ShareService.php b/app/service/ShareService.php index 5a40247..ea492e4 100644 --- a/app/service/ShareService.php +++ b/app/service/ShareService.php @@ -10,83 +10,84 @@ use app\model\Share; class ShareService extends Service { - /** - * @param $param 提交参数 - * @param $user_id 用户id - * - * @return array - */ - public function addResourceShare($param, $user_id) - { - try { - $resource_share_info = (getResourceShareInfo()); - $param['code'] = $resource_share_info['code']; - $param['password'] = $resource_share_info['password']; - $param['share_link'] = $resource_share_info['share_link']; + /** + * @param $param 提交参数 + * @param $user_id 用户id + * + * @return array + */ + public function addResourceShare($param, $user_id) + { + try { + $resource_share_info = (getResourceShareInfo()); + $param['code'] = $resource_share_info['code']; + $param['password'] = $resource_share_info['password']; + $param['share_link'] = $resource_share_info['share_link']; - $expire_time_info = $this->getExpireTimeInfoByExpireType($param['expire_type']); - $param['expire_time'] = $expire_time_info['milliseconds']; - $param['share_start_time'] = date('Y-m-d H:i:s'); - $param['share_end_time'] = $this->getShareEndTime($param['share_start_time'], $expire_time_info['seconds']); - $param['user_id'] = $user_id; - $param['size'] = $this->getShareSize($param['ids'], $param['type']); + $expire_time_info = $this->getExpireTimeInfoByExpireType($param['expire_type']); + $param['expire_time'] = $expire_time_info['milliseconds']; + $param['share_start_time'] = date('Y-m-d H:i:s'); + $param['share_end_time'] = $this->getShareEndTime($param['share_start_time'], $expire_time_info['seconds']); + $param['user_id'] = $user_id; + $param['size'] = $this->getShareSize($param['ids'], $param['type']); - $share = Share::create($param); + $share = Share::create($param); - //插入分享详情表 - (new ShareItemService())->addShareItem($share, $param['ids'], $param['type']); + //插入分享详情表 + (new ShareItemService())->addShareItem($share, $param['ids'], $param['type']); - //这里关联关系无法预加载 这样写可以实现 但是感觉怪怪的。。 - $share->user = $share->user; - } catch (\Exception $e) { - throw new ModelException($e->getMessage()); + //这里关联关系无法预加载 这样写可以实现 但是感觉怪怪的。。 + $share->user = $share->user; + } catch (\Exception $e) { + throw new ModelException($e->getMessage()); + } + return dataReturn($this->sucCode, $this->addMsg, $share); + } + + /** + * @param $expire_type 过期时间类型 + * 通过过期时间类型 获取过期时间 + */ + public function getExpireTimeInfoByExpireType($expire_type) + { + $expire_type_map = Share::EXPIRE_TYPE_MAP; + return [ + 'milliseconds' => daysToMilliseconds($expire_type_map[$expire_type]), + 'seconds' => daysToSeconds($expire_type_map[$expire_type]), + ]; } - return dataReturn($this->sucCode, $this->addMsg, $share); - } - /** - * @param $expire_type 过期时间类型 - * 通过过期时间类型 获取过期时间 - */ - public function getExpireTimeInfoByExpireType($expire_type) - { - $expire_type_map = Share::EXPIRE_TYPE_MAP; - return [ - 'milliseconds' => daysToMilliseconds($expire_type_map[$expire_type]), - 'seconds' => daysToSeconds($expire_type_map[$expire_type]), - ]; - } - /** - * @param $share_start_time 分享开始时间 - * @param $expire_time_seconds 分享过起秒数 - * 计算分享结束时间 - */ - public function getShareEndTime($share_start_time, $expire_time_seconds) - { + /** + * @param $share_start_time 分享开始时间 + * @param $expire_time_seconds 分享过起秒数 + * 计算分享结束时间 + */ + public function getShareEndTime($share_start_time, $expire_time_seconds) + { - return date('Y-m-d H:i:s', strtotime($share_start_time) + $expire_time_seconds); - } + return date('Y-m-d H:i:s', strtotime($share_start_time) + $expire_time_seconds); + } - /** - * @param $ids 分享ids - * @param $type 分享类型1 资源 2 内容 - * - * 获取分享的大小 - */ - public function getShareSize($ids, $type) - { - switch ($type) { - case 1: - //分享的是资源 - $resources = Resource::whereIn('id', $ids)->select(); - $size = 0; - foreach ($resources as $resource) { - $size += (new ResourceService())->getResourceSizeAndCount($resource)['size']; + /** + * @param $ids 分享ids + * @param $type 分享类型1 资源 2 内容 + * + * 获取分享的大小 + */ + public function getShareSize($ids, $type) + { + switch ($type) { + case 1: + //分享的是资源 + $resources = Resource::whereIn('id', $ids)->select(); + $size = 0; + foreach ($resources as $resource) { + $size += (new ResourceService())->getResourceSizeAndCount($resource)['size']; + } + break; + case 2: + //分享的是内容 } - break; - case 2: - //分享的是内容 + return $size; } - return $size; - } } diff --git a/route/app.php b/route/app.php index 0ccef08..e000cb3 100644 --- a/route/app.php +++ b/route/app.php @@ -50,6 +50,15 @@ Route::group('process', function () { Route::post('/edit', 'edit'); })->prefix('process/'); +//后台-流程管理-处置原因 +Route::group('process_reason', function () { + Route::get('/index', 'index'); + Route::post('/save', 'save'); //新增处置原因 + Route::post('/edit', 'edit'); + Route::post('/delete', 'delete'); + +})->prefix('processReason/'); + //阿里云 Route::group('oss', function () { Route::post('/upload', 'oss/upload');