package com.senmesh.sfile.service; import com.senmesh.sfile.dto.ExpandUserFileCreateDTO; import com.senmesh.sfile.dto.UserFileCreateDTO; import com.senmesh.sfile.dto.UserFileDTO; import com.senmesh.sfile.dto.UserFileModifyDTO; import com.senmesh.sfile.dto.UserFileModifyStatusDTO; import com.senmesh.sfile.dto.UserFileQueryDTO; import java.util.List; /** * 用户文件Service */ public interface UserFileService { /** * 创建用户文件 * * @param createDTO 创建DTO * @return 主键ID */ Long create(UserFileCreateDTO createDTO); /** * 根据普通文件创建新的文件(复制) * 创建一个文件夹,文件名为原文件名+时间戳,然后复制原文件下所有文件类型的子文件 * * @param expandCreateDTO 扩展创建DTO * @return 新创建的文件夹ID */ Long create(ExpandUserFileCreateDTO expandCreateDTO); /** * 修改用户文件 * * @param modifyDTO 修改DTO */ void modify(UserFileModifyDTO modifyDTO); /** * 修改用户文件状态 * * @param modifyStatusDTO 修改状态DTO */ void modifyStatus(UserFileModifyStatusDTO modifyStatusDTO); /** * 修改用户文件状态(校验用户权限) * * @param modifyStatusDTO 修改状态DTO * @param userId 用户ID */ void modifyStatus(UserFileModifyStatusDTO modifyStatusDTO, Long userId); /** * 删除用户文件 * * @param id 主键ID */ void remove(Long id); /** * 删除用户文件(校验用户权限) * * @param id 主键ID * @param userId 用户ID */ void remove(Long id, Long userId); /** * 列表查询 * * @param queryDTO 查询DTO * @return List */ List list(UserFileQueryDTO queryDTO); /** * 分页查询 * * @param queryDTO 查询DTO */ void page(UserFileQueryDTO queryDTO); /** * 单个查询 * * @param queryDTO 查询DTO * @return UserFileDTO */ UserFileDTO find(UserFileQueryDTO queryDTO); /** * 单个查询(不存在抛异常) * * @param queryDTO 查询DTO * @return UserFileDTO */ UserFileDTO findOne(UserFileQueryDTO queryDTO); }