Browse Source

流程 文件格式

master
unknown 1 year ago
parent
commit
31b8982bfe
  1. 54
      app/controller/OssController.php
  2. 54
      app/controller/ProcessController.php
  3. 76
      app/controller/ProcessReasonController.php
  4. 304
      app/controller/ResourceController.php
  5. 221
      app/controller/ResourceDirController.php
  6. 14
      app/controller/ShareController.php
  7. 9
      app/model/ProcessReason.php
  8. 76
      app/service/FileService.php
  9. 391
      app/service/ResourceDirService.php
  10. 329
      app/service/ResourceService.php
  11. 94
      app/service/Service.php
  12. 28
      app/service/ShareItemService.php
  13. 139
      app/service/ShareService.php
  14. 9
      route/app.php

54
app/controller/OssController.php

@ -8,34 +8,34 @@ use OSS\Core\OssException;
class OssController 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']]);
}
} }

54
app/controller/ProcessController.php

@ -3,39 +3,43 @@
namespace app\controller; namespace app\controller;
use app\model\Process; use app\model\Process;
use app\model\ProcessReason;
use think\facade\Lang; use think\facade\Lang;
use think\Request; use think\Request;
use think\facade\Db; use think\facade\Db;
class ProcessController 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('修改成功'));
}
} }

76
app/controller/ProcessReasonController.php

@ -0,0 +1,76 @@
<?php
namespace app\controller;
use app\model\Process;
use app\model\ProcessReason;
use app\model\User;
use think\facade\Lang;
use think\Request;
use think\facade\Db;
use think\response\Json;
class ProcessReasonController
{
/**
* 流程处置原因设置页
*/
public function index(Request $request)
{
try {
$list = ProcessReason::where('process_id', $request->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('成功'));
}
}

304
app/controller/ResourceController.php

@ -13,168 +13,168 @@ use think\Request;
class ResourceController 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()
{
}
} }

221
app/controller/ResourceDirController.php

@ -16,125 +16,124 @@ use think\Request;
*/ */
class ResourceDirController 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);
}
} }

14
app/controller/ShareController.php

@ -14,12 +14,12 @@ use think\Request;
class ShareController 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);
}
} }

9
app/model/ProcessReason.php

@ -0,0 +1,9 @@
<?php
namespace app\model;
use app\exception\ModelException;
class ProcessReason extends Model
{
}

76
app/service/FileService.php

@ -4,47 +4,47 @@ namespace app\service;
class FileService class FileService
{ {
/**
* @param $resource 资源对象
* @param $accredit_files 授权素材数组
* 添加 授权素材
*/
public function addAccreditFile($resource, $accredit_files)
{
foreach ($accredit_files as $accredit_file) {
$accredit_file['type'] = 2;
$accredit_file_array[] = $accredit_file;
/**
* @param $resource 资源对象
* @param $accredit_files 授权素材数组
* 添加 授权素材
*/
public function addAccreditFile($resource, $accredit_files)
{
foreach ($accredit_files as $accredit_file) {
$accredit_file['type'] = 2;
$accredit_file_array[] = $accredit_file;
}
// 资源素材关联 系统会自动插入
$resource->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;
}
} }

391
app/service/ResourceDirService.php

@ -8,209 +8,210 @@ use app\model\ResourceDir;
class ResourceDirService extends Service 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']);
}
}
} }
}
} }

329
app/service/ResourceService.php

@ -10,178 +10,179 @@ use app\model\Share;
class ResourceService extends Service 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,
];
}
} }

94
app/service/Service.php

@ -4,52 +4,52 @@ namespace app\service;
class 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();
}
} }

28
app/service/ShareItemService.php

@ -4,19 +4,19 @@ namespace app\service;
class ShareItemService extends 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);
}
} }

139
app/service/ShareService.php

@ -10,83 +10,84 @@ use app\model\Share;
class ShareService extends Service 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;
}
} }

9
route/app.php

@ -50,6 +50,15 @@ Route::group('process', function () {
Route::post('/edit', 'edit'); Route::post('/edit', 'edit');
})->prefix('process/'); })->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::group('oss', function () {
Route::post('/upload', 'oss/upload'); Route::post('/upload', 'oss/upload');

Loading…
Cancel
Save