diff options
Diffstat (limited to 'src/main/java/com/mesasoft/cn/service/IFileService.java')
| -rw-r--r-- | src/main/java/com/mesasoft/cn/service/IFileService.java | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/src/main/java/com/mesasoft/cn/service/IFileService.java b/src/main/java/com/mesasoft/cn/service/IFileService.java new file mode 100644 index 0000000..3024830 --- /dev/null +++ b/src/main/java/com/mesasoft/cn/service/IFileService.java @@ -0,0 +1,228 @@ +package com.mesasoft.cn.service; + +import com.mesasoft.cn.entity.User; +import com.mesasoft.cn.model.BaseAuthRecord; +import com.mesasoft.cn.model.FileBasicRecord; +import com.mesasoft.cn.model.FileRecord; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.util.List; + +/** + * @author pantao + * @since 2018/1/29 + */ +public interface IFileService { + + /** + * 更新文件权限 + * + * @param id 文件编号 + * @param auth 权限集 + * + * @return 是否更新成功 + */ + boolean updateAuth(long id, String auth); + + /** + * 获取文件权限 + * + * @param id 文件编号 + * + * @return {@link BaseAuthRecord} + */ + BaseAuthRecord getAuth(long id); + + /** + * 批量删除文件 + * + * @param ids 所有文件编号 + * + * @return 是否删除成功 + */ + boolean deleteFiles(String ids); + + /** + * 更新文件路径 + * + * @param id 文件编号 + * @param oldLocalUrl 原本地路径 + * @param localUrl 本地路径 + * @param visitUrl 访问路径 + * + * @return 是否更新成功 + */ + boolean[] updateUrl(int id, String oldLocalUrl, String localUrl, String visitUrl); + + /** + * 更新文件信息 + * + * @param id 文件编号 + * @param user 用户对象 + * @param name 文件名 + * @param category 文件分类 + * @param tag 标签 + * @param description 文件描述 + * + * @return 是否更新成功 + */ + boolean updateFileInfo(long id, User user, String name, String category, String tag, String description); + + /** + * 删除文件,验证权限 + * + * @param user 用户对象 + * @param fileId 文件编号 + * + * @return {@link Boolean} + */ + boolean removeFile(User user, long fileId); + + /** + * 获取用户的下载资源 + * + * @param userId 用户编号 + * @param offset 偏移 + * @param search 搜索 + * + * @return {@link List} + */ + List<FileRecord> listUserDownloaded(int userId, int offset, String search); + + /** + * 获取用户的上传资源 + * + * @param userId 用户编号 + * @param offset 偏移 + * @param search 搜索 + * + * @return {@link List} + */ + List<FileRecord> listUserUploaded(int userId, int offset, String search); + + /** + * 通过编号删除,不验证权限 + * + * @param id 编号 + * + * @return 是否删除成功 + */ + boolean removeById(long id); + + /** + * 通过访问路径删除 + * + * @param visitUrl 访问路径 + * + * @return 是否删除成功 + */ + boolean removeByVisitUrl(String visitUrl); + + /** + * 通过本地路径删除 + * + * @param localUrl 访问路径 + * + * @return 是否删除成功 + */ + boolean removeByLocalUrl(String localUrl); + + /** + * 获取资源 + * + * @param visitUrl 访问路径 + * @param request {@link HttpServletRequest} + * + * @return {@link File} + */ + String getResource(String visitUrl, HttpServletRequest request); + + /** + * 通过访问路径获取本地文件路径 + * + * @param visitUrl 访问路径 + * + * @return {@link String} + */ + String getLocalUrlByVisitUrl(String visitUrl); + + /** + * 获取所有文件 + * + * @param userId 用户编号 + * @param offset 偏移 + * @param categoryId 分类编号 + * @param orderBy 排序方式 + * @param search 搜索 + * + * @return {@link List} + */ + List<FileRecord> listAll(int userId, int offset, int categoryId, String orderBy, String search); + + /** + * 上传文件 + * + * @param categoryId 分类ID + * @param tag 标签 + * @param description 描述 + * @param prefix 自定义前缀 + * @param multipartFile 文件 + * @param user {@link User} + * + * @return 是否上传成功 + */ + boolean upload(int categoryId, String tag, String description, String prefix, MultipartFile multipartFile, User + user); + + /** + * 分享服务器本地文件 + * + * @param prefix 链接前缀 + * @param files 文件 + * @param user 用户对象 + * + * @return 是否添加成功 + */ + boolean shareFiles(String prefix, String files, User user); + + /** + * 本地路径是否存在 + * + * @param localUrl 本地路径 + * + * @return {@link Boolean} + */ + boolean localUrlExists(String localUrl); + + /** + * 访问路径是否存在 + * + * @param visitUrl 访问路径 + * + * @return {@link Boolean} + */ + boolean visitUrlExists(String visitUrl); + + /** + * 通过本地路径获取文件编号 + * + * @param localUrl 本地路径 + * + * @return 文件编号 + */ + long getFileId(String localUrl); + + /** + * 获取所有文件基本信息 + * + * @param user 用户名或邮箱 + * @param category 分类名称 + * @param file 文件名 + * @param offset 偏移 + * + * @return {@link List} + */ + List<FileBasicRecord> listBasicAll(String user, String file, String category, int offset); +} |
