From 6e35c11fe30355b6364fef78f0487e387c115569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com> Date: Sat, 26 Dec 2020 00:22:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E6=94=B6=E7=AB=99=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- file-web/pom.xml | 5 +--- .../com/qiwenshare/file/FileApplication.java | 4 +-- .../file/api/IRecoveryFileService.java | 8 ++++++ .../file/config/openapi/OpenAPIConfig.java | 13 ++++----- .../file/controller/FileController.java | 21 +++++++++++---- .../file/controller/UserController.java | 26 +++--------------- .../qiwenshare/file/domain/RecoveryFile.java | 27 +++++++++++++++++++ .../com/qiwenshare/file/domain/UserFile.java | 3 +++ .../qiwenshare/file/dto/user/RegisterDTO.java | 6 +++++ .../file/mapper/RecoveryFileMapper.java | 9 +++++++ .../file/service/RecoveryFileService.java | 13 +++++++++ .../file/service/UserFileService.java | 22 +++++---------- pom.xml | 2 ++ 13 files changed, 105 insertions(+), 54 deletions(-) create mode 100644 file-web/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java create mode 100644 file-web/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java create mode 100644 file-web/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java create mode 100644 file-web/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java create mode 100644 file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java diff --git a/file-web/pom.xml b/file-web/pom.xml index 6efc6d6..018d83c 100644 --- a/file-web/pom.xml +++ b/file-web/pom.xml @@ -27,10 +27,7 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-server - - org.springframework.cloud - spring-cloud-starter-openfeign - + org.springframework.boot diff --git a/file-web/src/main/java/com/qiwenshare/file/FileApplication.java b/file-web/src/main/java/com/qiwenshare/file/FileApplication.java index 89f8dc4..380968a 100644 --- a/file-web/src/main/java/com/qiwenshare/file/FileApplication.java +++ b/file-web/src/main/java/com/qiwenshare/file/FileApplication.java @@ -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) { diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java b/file-web/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java new file mode 100644 index 0000000..5b73a5b --- /dev/null +++ b/file-web/src/main/java/com/qiwenshare/file/api/IRecoveryFileService.java @@ -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 { + +} diff --git a/file-web/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java b/file-web/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java index 0f0115d..f4119cb 100644 --- a/file-web/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java +++ b/file-web/src/main/java/com/qiwenshare/file/config/openapi/OpenAPIConfig.java @@ -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")); } } diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java b/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java index 6d6ed7e..78f601f 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java +++ b/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java @@ -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; diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/UserController.java b/file-web/src/main/java/com/qiwenshare/file/controller/UserController.java index d1abe37..45ea12b 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/UserController.java +++ b/file-web/src/main/java/com/qiwenshare/file/controller/UserController.java @@ -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 addUser(@RequestBody RegisterDTO registerDTO) { RestResult restResult = null; @@ -64,10 +65,10 @@ public class UserController { } @Operation(summary = "用户登录", description = "用户登录认证后才能进入系统", tags = {"user"}) - @GetMapping("/userlogin") + @GetMapping("/login") @ResponseBody public RestResult userLogin( - @Parameter(description = "登录用户名", required = false) String username, + @Parameter(description = "登录用户名") String username, @Parameter(description = "登录密码") String password) { RestResult restResult = new RestResult(); 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 restResult = new RestResult(); -// -// 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; -// } - } diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java b/file-web/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java new file mode 100644 index 0000000..26f5abd --- /dev/null +++ b/file-web/src/main/java/com/qiwenshare/file/domain/RecoveryFile.java @@ -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; +} diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java b/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java index 428c422..681c6c0 100644 --- a/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java +++ b/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java @@ -46,4 +46,7 @@ public class UserFile { @Column(columnDefinition="varchar(25) comment '删除时间'") private String deleteTime; + @Column(columnDefinition = "varchar(50) comment '删除批次号'") + private String deleteBatchNum; + } diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java b/file-web/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java new file mode 100644 index 0000000..f8fc045 --- /dev/null +++ b/file-web/src/main/java/com/qiwenshare/file/dto/user/RegisterDTO.java @@ -0,0 +1,6 @@ +package com.qiwenshare.file.dto.user; + + +public class RegisterDTO { + +} diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java b/file-web/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java new file mode 100644 index 0000000..eee00e6 --- /dev/null +++ b/file-web/src/main/java/com/qiwenshare/file/mapper/RecoveryFileMapper.java @@ -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 { + +} diff --git a/file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java b/file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java new file mode 100644 index 0000000..05b60af --- /dev/null +++ b/file-web/src/main/java/com/qiwenshare/file/service/RecoveryFileService.java @@ -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 implements IRecoveryFileService { +} diff --git a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java b/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java index 896c6ec..ea6c1a9 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java @@ -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 impl @Override public List> selectFileByExtendName(List fileNameList, long userId) { -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.in(FileBean::getExtendName, fileNameList).eq(FileBean::getUserId, userId); -// List fileBeans = fileMapper.selectList(wrapper); -// return fileBeans; return userFileMapper.selectFileByExtendName(fileNameList, userId); } @Override public List> selectFileNotInExtendNames(List fileNameList, long userId) { -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.notIn(FileBean::getExtendName, fileNameList).eq(FileBean::getUserId, userId); -// List fileBeans = fileMapper.selectList(wrapper); return userFileMapper.selectFileNotInExtendNames(fileNameList, userId); } @@ -122,19 +116,21 @@ public class UserFileService extends ServiceImpl impl public List selectFilePathTreeByUserId(Long userId) { LambdaQueryWrapper 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 userFileLambdaUpdateWrapper = new LambdaUpdateWrapper(); 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 impl updateFileDeleteStateByFilePath(filePath); }else{ - //userFileMapper.deleteById(userFile.getUserFileId()); + UserFile userFileTemp = userFileMapper.selectById(userFile.getUserFileId()); FileBean fileBean = fileMapper.selectById(userFileTemp.getFileId()); - - - - LambdaUpdateWrapper userFileLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); userFileLambdaUpdateWrapper.set(UserFile::getDeleteFlag, 1) .set(UserFile::getDeleteTime, DateUtil.getCurrentTime()) @@ -161,6 +153,7 @@ public class UserFileService extends ServiceImpl impl .eq(FileBean::getFileId, fileBean.getFileId()); } + } private void updateFileDeleteStateByFilePath(String filePath) { @@ -196,5 +189,4 @@ public class UserFileService extends ServiceImpl impl } - } diff --git a/pom.xml b/pom.xml index 48166e0..af8f4cb 100644 --- a/pom.xml +++ b/pom.xml @@ -29,11 +29,13 @@ springdoc-openapi-ui 1.5.2 + com.github.xiaoymin knife4j-springdoc-ui 3.0.2 + org.projectlombok