回收站功能开发
This commit is contained in:
parent
83e3c37707
commit
6e35c11fe3
@ -27,10 +27,7 @@
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
@ -4,16 +4,16 @@ import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableFeignClients
|
||||
@MapperScan("com.qiwenshare.file.mapper")
|
||||
@EnableScheduling
|
||||
@EnableDiscoveryClient
|
||||
@EnableTransactionManagement
|
||||
public class FileApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
@ -0,0 +1,8 @@
|
||||
package com.qiwenshare.file.api;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.qiwenshare.file.domain.RecoveryFile;
|
||||
|
||||
public interface IRecoveryFileService extends IService<RecoveryFile> {
|
||||
|
||||
}
|
@ -7,18 +7,19 @@ import io.swagger.v3.oas.models.info.License;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
|
||||
@Configuration
|
||||
public class OpenAPIConfig {
|
||||
|
||||
@Bean
|
||||
public OpenAPI qiwenFileOpenAPI() {
|
||||
return new OpenAPI()
|
||||
.info(new Info().title("qiwen-file API")
|
||||
.description("基于springboot + vue 框架开发的Web文件系统,旨在为用户提供一个简单、方便的文件存储方案,能够以完善的目录结构体系,对文件进行管理 。")
|
||||
.version("v0.0.1")
|
||||
.license(new License().name("MIT").url("http://springdoc.org")))
|
||||
.info(new Info().title("奇文网盘 API")
|
||||
.description("基于springboot + vue 框架开发的Web文件系统,旨在为用户提供一个简单、方便的文件存储方案,能够以完善的目录结构体系,对文件进行管理 。")
|
||||
.version("v0.0.1")
|
||||
.license(new License().name("MIT").url("http://springdoc.org")))
|
||||
.externalDocs(new ExternalDocumentation()
|
||||
.description("gitee")
|
||||
.url("https://www.gitee.com/qiwen-cloud/qiwen-file"));
|
||||
.description("奇文网盘gitee地址")
|
||||
.url("https://www.gitee.com/qiwen-cloud/qiwen-file"));
|
||||
}
|
||||
}
|
||||
|
@ -11,13 +11,13 @@ import com.qiwenshare.common.oss.AliyunOSSRename;
|
||||
import com.qiwenshare.common.util.FileUtil;
|
||||
import com.qiwenshare.common.util.PathUtil;
|
||||
import com.qiwenshare.file.api.IFileService;
|
||||
import com.qiwenshare.file.api.IRecoveryFileService;
|
||||
import com.qiwenshare.file.api.IUserFileService;
|
||||
import com.qiwenshare.file.api.IUserService;
|
||||
import com.qiwenshare.file.config.QiwenFileConfig;
|
||||
import com.qiwenshare.file.domain.FileBean;
|
||||
import com.qiwenshare.file.domain.TreeNode;
|
||||
import com.qiwenshare.file.domain.UserBean;
|
||||
import com.qiwenshare.file.domain.UserFile;
|
||||
import com.qiwenshare.file.domain.*;
|
||||
import com.qiwenshare.file.dto.*;
|
||||
import com.qiwenshare.file.service.RecoveryFileService;
|
||||
import com.qiwenshare.file.service.UserFileService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -43,7 +43,9 @@ public class FileController {
|
||||
@Resource
|
||||
IUserService userService;
|
||||
@Resource
|
||||
UserFileService userFileService;
|
||||
IUserFileService userFileService;
|
||||
@Resource
|
||||
IRecoveryFileService recoveryFileService;
|
||||
|
||||
@Resource
|
||||
QiwenFileConfig qiwenFileConfig;
|
||||
@ -208,6 +210,11 @@ public class FileController {
|
||||
|
||||
for (UserFile userFile : userFiles) {
|
||||
userFileService.deleteUserFile(userFile,sessionUserBean);
|
||||
|
||||
RecoveryFile recoveryFile = new RecoveryFile();
|
||||
recoveryFile.setUserFileId(userFile.getUserFileId());
|
||||
recoveryFile.setDeleteTime(DateUtil.getCurrentTime());
|
||||
recoveryFileService.save(recoveryFile);
|
||||
}
|
||||
|
||||
result.setData("批量删除文件成功");
|
||||
@ -229,6 +236,10 @@ public class FileController {
|
||||
BeanUtil.copyProperties(deleteFileDto, userFile);
|
||||
userFileService.deleteUserFile(userFile, sessionUserBean);
|
||||
|
||||
RecoveryFile recoveryFile = new RecoveryFile();
|
||||
recoveryFile.setUserFileId(deleteFileDto.getUserFileId());
|
||||
recoveryFile.setDeleteTime(DateUtil.getCurrentTime());
|
||||
recoveryFileService.save(recoveryFile);
|
||||
result.setSuccess(true);
|
||||
String resultJson = JSON.toJSONString(result);
|
||||
return resultJson;
|
||||
|
@ -51,8 +51,9 @@ public class UserController {
|
||||
*/
|
||||
public static final String CURRENT_MODULE = "用户管理";
|
||||
|
||||
|
||||
@Operation(summary = "用户注册", description = "注册账号", tags = {"user"})
|
||||
@PostMapping(value = "/adduser")
|
||||
@PostMapping(value = "/register")
|
||||
@ResponseBody
|
||||
public RestResult<String> addUser(@RequestBody RegisterDTO registerDTO) {
|
||||
RestResult<String> restResult = null;
|
||||
@ -64,10 +65,10 @@ public class UserController {
|
||||
}
|
||||
|
||||
@Operation(summary = "用户登录", description = "用户登录认证后才能进入系统", tags = {"user"})
|
||||
@GetMapping("/userlogin")
|
||||
@GetMapping("/login")
|
||||
@ResponseBody
|
||||
public RestResult<UserLoginVo> userLogin(
|
||||
@Parameter(description = "登录用户名", required = false) String username,
|
||||
@Parameter(description = "登录用户名") String username,
|
||||
@Parameter(description = "登录密码") String password) {
|
||||
RestResult<UserLoginVo> restResult = new RestResult<UserLoginVo>();
|
||||
UserBean saveUserBean = userService.findUserInfoByTelephone(username);
|
||||
@ -123,23 +124,4 @@ public class UserController {
|
||||
return restResult;
|
||||
}
|
||||
|
||||
// @Operation(summary = "得到用户信息通过id", description = "", tags = {"user"})
|
||||
// @GetMapping("/getuserinfobyid")
|
||||
// @ResponseBody
|
||||
// public String getUserInfoById(int userId) {
|
||||
// RestResult<UserBean> restResult = new RestResult<UserBean>();
|
||||
//
|
||||
// UserBean userBean = userService.getById(userId);
|
||||
// if (userBean == null) {
|
||||
// restResult.setSuccess(false);
|
||||
// restResult.setErrorCode("100001");
|
||||
// restResult.setErrorMessage("用户不存在!");
|
||||
// } else {
|
||||
// restResult.setSuccess(true);
|
||||
// restResult.setData(userBean);
|
||||
// }
|
||||
// String resultJson = JSON.toJSONString(restResult);
|
||||
// return resultJson;
|
||||
// }
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
package com.qiwenshare.file.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Data
|
||||
@Table(name = "recoveryfile")
|
||||
@Entity
|
||||
@TableName("recoveryfile")
|
||||
public class RecoveryFile {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@TableId(type = IdType.AUTO)
|
||||
@Column(columnDefinition="bigint(20) comment '回收文件id'")
|
||||
private Long recoveryFileId;
|
||||
@Column(columnDefinition = "bigint(20) comment '用户文件id'")
|
||||
private Long userFileId;
|
||||
@Column(columnDefinition="varchar(25) comment '删除时间'")
|
||||
private String deleteTime;
|
||||
@Column(columnDefinition = "varchar(50) comment '删除批次号'")
|
||||
private String deleteBatchNum;
|
||||
}
|
@ -46,4 +46,7 @@ public class UserFile {
|
||||
@Column(columnDefinition="varchar(25) comment '删除时间'")
|
||||
private String deleteTime;
|
||||
|
||||
@Column(columnDefinition = "varchar(50) comment '删除批次号'")
|
||||
private String deleteBatchNum;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,6 @@
|
||||
package com.qiwenshare.file.dto.user;
|
||||
|
||||
|
||||
public class RegisterDTO {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.qiwenshare.file.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.qiwenshare.file.domain.RecoveryFile;
|
||||
|
||||
|
||||
public interface RecoveryFileMapper extends BaseMapper<RecoveryFile> {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.qiwenshare.file.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.qiwenshare.file.api.IRecoveryFileService;
|
||||
import com.qiwenshare.file.domain.FileBean;
|
||||
import com.qiwenshare.file.domain.RecoveryFile;
|
||||
import com.qiwenshare.file.mapper.FileMapper;
|
||||
import com.qiwenshare.file.mapper.RecoveryFileMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class RecoveryFileService extends ServiceImpl<RecoveryFileMapper, RecoveryFile> implements IRecoveryFileService {
|
||||
}
|
@ -18,6 +18,7 @@ import com.qiwenshare.file.mapper.FileMapper;
|
||||
import com.qiwenshare.file.mapper.UserFileMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
@ -85,18 +86,11 @@ public class UserFileService extends ServiceImpl<UserFileMapper, UserFile> impl
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> selectFileByExtendName(List<String> fileNameList, long userId) {
|
||||
// LambdaQueryWrapper<FileBean> wrapper = new LambdaQueryWrapper<>();
|
||||
// wrapper.in(FileBean::getExtendName, fileNameList).eq(FileBean::getUserId, userId);
|
||||
// List<FileBean> fileBeans = fileMapper.selectList(wrapper);
|
||||
// return fileBeans;
|
||||
return userFileMapper.selectFileByExtendName(fileNameList, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> selectFileNotInExtendNames(List<String> fileNameList, long userId) {
|
||||
// LambdaQueryWrapper<FileBean> wrapper = new LambdaQueryWrapper<>();
|
||||
// wrapper.notIn(FileBean::getExtendName, fileNameList).eq(FileBean::getUserId, userId);
|
||||
// List<FileBean> fileBeans = fileMapper.selectList(wrapper);
|
||||
return userFileMapper.selectFileNotInExtendNames(fileNameList, userId);
|
||||
}
|
||||
|
||||
@ -122,19 +116,21 @@ public class UserFileService extends ServiceImpl<UserFileMapper, UserFile> impl
|
||||
public List<UserFile> selectFilePathTreeByUserId(Long userId) {
|
||||
LambdaQueryWrapper<UserFile> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(UserFile::getUserId, userId)
|
||||
.eq(UserFile::getIsDir, 1);
|
||||
.eq(UserFile::getIsDir, 1)
|
||||
.eq(UserFile::getDeleteFlag, 0);
|
||||
return userFileMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void deleteUserFile(UserFile userFile, UserBean sessionUserBean) {
|
||||
|
||||
StorageBean storageBean = filetransferService.selectStorageBean(new StorageBean(sessionUserBean.getUserId()));
|
||||
|
||||
if (userFile.getIsDir() == 1) {
|
||||
|
||||
LambdaUpdateWrapper<UserFile> userFileLambdaUpdateWrapper = new LambdaUpdateWrapper<UserFile>();
|
||||
userFileLambdaUpdateWrapper.set(UserFile::getDeleteFlag, 1).set(UserFile::getDeleteTime, DateUtil.getCurrentTime())
|
||||
|
||||
.eq(UserFile::getUserFileId, userFile.getUserFileId());
|
||||
userFileMapper.update(null, userFileLambdaUpdateWrapper);
|
||||
|
||||
@ -142,14 +138,10 @@ public class UserFileService extends ServiceImpl<UserFileMapper, UserFile> impl
|
||||
updateFileDeleteStateByFilePath(filePath);
|
||||
|
||||
}else{
|
||||
//userFileMapper.deleteById(userFile.getUserFileId());
|
||||
|
||||
UserFile userFileTemp = userFileMapper.selectById(userFile.getUserFileId());
|
||||
FileBean fileBean = fileMapper.selectById(userFileTemp.getFileId());
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
LambdaUpdateWrapper<UserFile> userFileLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
userFileLambdaUpdateWrapper.set(UserFile::getDeleteFlag, 1)
|
||||
.set(UserFile::getDeleteTime, DateUtil.getCurrentTime())
|
||||
@ -161,6 +153,7 @@ public class UserFileService extends ServiceImpl<UserFileMapper, UserFile> impl
|
||||
.eq(FileBean::getFileId, fileBean.getFileId());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void updateFileDeleteStateByFilePath(String filePath) {
|
||||
@ -196,5 +189,4 @@ public class UserFileService extends ServiceImpl<UserFileMapper, UserFile> impl
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
2
pom.xml
2
pom.xml
@ -29,11 +29,13 @@
|
||||
<artifactId>springdoc-openapi-ui</artifactId>
|
||||
<version>1.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-springdoc-ui</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<!--Swagger End-->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
|
Loading…
Reference in New Issue
Block a user