diff --git a/README.md b/README.md
index 285e640..cd67b2e 100644
--- a/README.md
+++ b/README.md
@@ -74,12 +74,19 @@
| 存储容量显示 | 可实时显示文件存储占用情况及总存储容量 |
## 源码地址
-
+### 前后台项目代码
| 项目名称 | 源码地址 |
| ------------ | -------------------------------------------------------------------------------------------- |
| 奇文网盘前端 | [https://gitee.com/qiwen-cloud/qiwen-file-web](https://gitee.com/qiwen-cloud/qiwen-file-web) |
| 奇文网盘后台 | [https://gitee.com/qiwen-cloud/qiwen-file](https://gitee.com/qiwen-cloud/qiwen-file) |
+### 后台项目依赖
+| 项目名称 | 源码地址 |
+| ------------ | -------------------------------------------------------------------------------------------- |
+| 奇文社区统一依赖管理(父pom) | [https://gitee.com/qiwen-cloud/qiwenshare](https://gitee.com/qiwen-cloud/qiwenshare) |
+| 奇文社区公共模块 | [https://gitee.com/qiwen-cloud/qiwen-common](https://gitee.com/qiwen-cloud/qiwen-common) |
+| 统一文件操作平台(UFOP) | [https://gitee.com/qiwen-cloud/ufop-spring-boot-starter](https://gitee.com/qiwen-cloud/ufop-spring-boot-starter) |
+
## 网络拓扑图

diff --git a/pom.xml b/pom.xml
index 94a2e4e..ff94c7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,17 @@
spring-boot-starter-data-elasticsearch
+
+ com.inversoft
+ prime-jwt
+ 1.3.1
+
+
+ commons-io
+ commons-io
+ 2.11.0
+
+
diff --git a/src/main/java/com/qiwenshare/file/FileApplication.java b/src/main/java/com/qiwenshare/file/FileApplication.java
index 46502a8..59dc398 100644
--- a/src/main/java/com/qiwenshare/file/FileApplication.java
+++ b/src/main/java/com/qiwenshare/file/FileApplication.java
@@ -1,6 +1,5 @@
package com.qiwenshare.file;
-import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -8,12 +7,6 @@ import org.springframework.boot.web.server.ConfigurableWebServerFactory;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.FilterType;
-import org.springframework.data.redis.connection.RedisConnectionFactory;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.serializer.GenericToStringSerializer;
-import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.http.HttpStatus;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
diff --git a/src/main/java/com/qiwenshare/file/api/IUserFileService.java b/src/main/java/com/qiwenshare/file/api/IUserFileService.java
index 63bd9fb..59833df 100644
--- a/src/main/java/com/qiwenshare/file/api/IUserFileService.java
+++ b/src/main/java/com/qiwenshare/file/api/IUserFileService.java
@@ -1,5 +1,6 @@
package com.qiwenshare.file.api;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qiwenshare.file.domain.FileBean;
import com.qiwenshare.file.domain.UserBean;
@@ -18,7 +19,7 @@ public interface IUserFileService extends IService {
void updateFilepathByFilepath(String oldfilePath, String newfilePath, String fileName, String extendName, long userId);
void userFileCopy(String oldfilePath, String newfilePath, String fileName, String extendName, long userId);
- List selectFileByExtendName(List fileNameList, Long beginCount, Long pageCount, long userId);
+ IPage getFileByFileType(Integer fileTypeId, Long currentPage, Long pageCount, long userId);
Long selectCountByExtendName(List fileNameList, Long beginCount, Long pageCount, long userId);
List selectFileNotInExtendNames(List fileNameList, Long beginCount, Long pageCount, long userId);
Long selectCountNotInExtendNames(List fileNameList, Long beginCount, Long pageCount, long userId);
diff --git a/src/main/java/com/qiwenshare/file/component/FileDealComp.java b/src/main/java/com/qiwenshare/file/component/FileDealComp.java
index 3215627..437c7db 100644
--- a/src/main/java/com/qiwenshare/file/component/FileDealComp.java
+++ b/src/main/java/com/qiwenshare/file/component/FileDealComp.java
@@ -45,6 +45,8 @@ public class FileDealComp {
IShareFileService shareFileService;
@Resource
IUserFileService userFileService;
+ @Resource
+ UFOPFactory ufopFactory;
@Resource
private IElasticSearchService elasticSearchService;
@@ -269,7 +271,7 @@ public class FileDealComp {
// readFile.setFileUrl(fileSearch.getFileUrl());
// String content = reader.read(readFile);
// //全文搜索
-// // fileSearch.setContent(content);
+// fileSearch.setContent(content);
//
// }
elasticSearchService.save(fileSearch);
diff --git a/src/main/java/com/qiwenshare/file/constant/FileType.java b/src/main/java/com/qiwenshare/file/constant/FileType.java
new file mode 100644
index 0000000..bf7c520
--- /dev/null
+++ b/src/main/java/com/qiwenshare/file/constant/FileType.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * (c) Copyright Ascensio System SIA 2021
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.qiwenshare.file.constant;
+
+public enum FileType
+{
+ Word,
+ Cell,
+ Slide
+}
\ No newline at end of file
diff --git a/src/main/java/com/qiwenshare/file/constant/FileTypeEnum.java b/src/main/java/com/qiwenshare/file/constant/FileTypeEnum.java
new file mode 100644
index 0000000..eb71395
--- /dev/null
+++ b/src/main/java/com/qiwenshare/file/constant/FileTypeEnum.java
@@ -0,0 +1,28 @@
+package com.qiwenshare.file.constant;
+
+public enum FileTypeEnum {
+ TOTAL(0, "全部"),
+ PICTURE(1, "图片"),
+ DOCUMENT(2, "文档"),
+ VIDEO(3, "视频"),
+ MUSIC(4, "音乐"),
+ OTHER(5, "其他"),
+ SHARE(6, "分享"),
+ RECYCLE(7, "回收站");
+
+
+ private int type;
+ private String desc;
+ FileTypeEnum(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+}
diff --git a/src/main/java/com/qiwenshare/file/controller/FileController.java b/src/main/java/com/qiwenshare/file/controller/FileController.java
index 9431b7f..8f87f3d 100644
--- a/src/main/java/com/qiwenshare/file/controller/FileController.java
+++ b/src/main/java/com/qiwenshare/file/controller/FileController.java
@@ -3,10 +3,10 @@ package com.qiwenshare.file.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.exception.NotLoginException;
import com.qiwenshare.common.result.RestResult;
-import com.qiwenshare.common.result.ResultCodeEnum;
import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.file.advice.QiwenException;
import com.qiwenshare.file.api.IFileService;
@@ -18,9 +18,6 @@ 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.dto.file.BatchMoveFileDTO;
-import com.qiwenshare.file.dto.file.CopyFileDTO;
-import com.qiwenshare.file.dto.file.MoveFileDTO;
import com.qiwenshare.file.dto.file.*;
import com.qiwenshare.file.util.SessionUtil;
import com.qiwenshare.file.vo.file.FileListVo;
@@ -35,7 +32,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.eclipse.jetty.util.StringUtil;
-import org.elasticsearch.index.query.*;
+import org.elasticsearch.index.query.DisMaxQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
@@ -142,6 +141,7 @@ public class FileController {
QueryBuilder q2 = QueryBuilders.boolQuery()
.must(QueryBuilders.wildcardQuery("fileName", "*" + searchFileDTO.getFileName() + "*"))
+ .must(QueryBuilders.wildcardQuery("content", "*" + searchFileDTO.getFileName() + "*"))
.must(QueryBuilders.termQuery("userId", sessionUserBean.getUserId())).boost(2f); //模糊匹配
disMaxQueryBuilder.add(q1);
@@ -388,8 +388,8 @@ public class FileController {
@RequestMapping(value = "/selectfilebyfiletype", method = RequestMethod.GET)
@ResponseBody
public RestResult>> selectFileByFileType(@Parameter(description = "文件类型", required = true) int fileType,
- @Parameter(description = "当前页", required = true) long currentPage,
- @Parameter(description = "页面数量", required = true) long pageCount) {
+ @Parameter(description = "当前页", required = true) @RequestParam(defaultValue = "1") long currentPage,
+ @Parameter(description = "页面数量", required = true) @RequestParam(defaultValue = "10") long pageCount) {
UserBean sessionUserBean = (UserBean) SessionUtil.getSession();
if (sessionUserBean == null) {
@@ -397,34 +397,10 @@ public class FileController {
}
long userId = sessionUserBean.getUserId();
- List fileList = new ArrayList<>();
- Long beginCount = 0L;
- if (pageCount == 0 || currentPage == 0) {
- beginCount = 0L;
- pageCount = 10L;
- } else {
- beginCount = (currentPage - 1) * pageCount;
- }
-
- Long total = 0L;
- if (fileType == UFOPUtils.OTHER_TYPE) {
-
- List arrList = new ArrayList<>();
- arrList.addAll(Arrays.asList(UFOPUtils.DOC_FILE));
- arrList.addAll(Arrays.asList(UFOPUtils.IMG_FILE));
- arrList.addAll(Arrays.asList(UFOPUtils.VIDEO_FILE));
- arrList.addAll(Arrays.asList(UFOPUtils.MUSIC_FILE));
-
- fileList = userFileService.selectFileNotInExtendNames(arrList,beginCount, pageCount, userId);
- total = userFileService.selectCountNotInExtendNames(arrList,beginCount, pageCount, userId);
- } else {
- fileList = userFileService.selectFileByExtendName(UFOPUtils.getFileExtendsByType(fileType), beginCount, pageCount,userId);
- total = userFileService.selectCountByExtendName(UFOPUtils.getFileExtendsByType(fileType), beginCount, pageCount,userId);
- }
-
+ IPage result = userFileService.getFileByFileType(fileType, currentPage, pageCount, userId);
Map map = new HashMap<>();
- map.put("list",fileList);
- map.put("total", total);
+ map.put("list", result.getRecords());
+ map.put("total", result.getTotal());
return RestResult.success().data(map);
}
@@ -512,7 +488,6 @@ public class FileController {
fileService.updateById(fileBean);
} catch (Exception e) {
throw new QiwenException(999999, "修改文件异常");
-// log.error(e.getMessage());
} finally {
try {
byteArrayInputStream.close();
diff --git a/src/main/java/com/qiwenshare/file/domain/FileClassification.java b/src/main/java/com/qiwenshare/file/domain/FileClassification.java
new file mode 100644
index 0000000..d113fa5
--- /dev/null
+++ b/src/main/java/com/qiwenshare/file/domain/FileClassification.java
@@ -0,0 +1,28 @@
+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.*;
+
+/**
+ * @author MAC
+ * @version 1.0
+ * @description: TODO
+ * @date 2021/12/23 19:48
+ */
+@Data
+@Table(name = "fileclassification")
+@Entity
+@TableName("fileclassification")
+public class FileClassification {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @TableId(type = IdType.AUTO)
+ @Column(columnDefinition="bigint(20)")
+ private Long fileClassificationId;
+ private Integer fileTypeId;
+ private String fileExtendName;
+}
diff --git a/src/main/java/com/qiwenshare/file/domain/FileExtend.java b/src/main/java/com/qiwenshare/file/domain/FileExtend.java
new file mode 100644
index 0000000..dde5f75
--- /dev/null
+++ b/src/main/java/com/qiwenshare/file/domain/FileExtend.java
@@ -0,0 +1,29 @@
+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.*;
+
+/**
+ * @author MAC
+ * @version 1.0
+ * @description: TODO
+ * @date 2021/12/20 20:16
+ */
+@Data
+@Table(name = "fileextend")
+@Entity
+@TableName("fileextend")
+public class FileExtend {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @TableId(type = IdType.AUTO)
+ private String fileExtendName;
+
+ private String fileExtendDesc;
+
+ private String fileExtendImgUrl;
+}
diff --git a/src/main/java/com/qiwenshare/file/domain/FileType.java b/src/main/java/com/qiwenshare/file/domain/FileType.java
index 5edcb8c..d61ce87 100644
--- a/src/main/java/com/qiwenshare/file/domain/FileType.java
+++ b/src/main/java/com/qiwenshare/file/domain/FileType.java
@@ -1,26 +1,27 @@
-/**
- *
- * (c) Copyright Ascensio System SIA 2021
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
package com.qiwenshare.file.domain;
-public enum FileType
-{
- Word,
- Cell,
- Slide
-}
\ No newline at end of file
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author MAC
+ * @version 1.0
+ * @description: TODO
+ * @date 2021/12/23 22:11
+ */
+@Data
+@Table(name = "filetype")
+@Entity
+@TableName("filetype")
+public class FileType {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @TableId(type = IdType.AUTO)
+ private Integer fileTypeId;
+ private String fileTypeName;
+ private Integer orderNum;
+}
diff --git a/src/main/java/com/qiwenshare/file/helper/DocumentManager.java b/src/main/java/com/qiwenshare/file/helper/DocumentManager.java
index 60185ed..0ffdb9f 100644
--- a/src/main/java/com/qiwenshare/file/helper/DocumentManager.java
+++ b/src/main/java/com/qiwenshare/file/helper/DocumentManager.java
@@ -21,7 +21,7 @@ package com.qiwenshare.file.helper;
import com.alibaba.fastjson.JSONObject;
-import com.qiwenshare.file.domain.FileType;
+import com.qiwenshare.file.constant.FileType;
import org.primeframework.jwt.Signer;
import org.primeframework.jwt.Verifier;
import org.primeframework.jwt.domain.JWT;
diff --git a/src/main/java/com/qiwenshare/file/helper/FileUtility.java b/src/main/java/com/qiwenshare/file/helper/FileUtility.java
index fd6cf36..adc45b8 100644
--- a/src/main/java/com/qiwenshare/file/helper/FileUtility.java
+++ b/src/main/java/com/qiwenshare/file/helper/FileUtility.java
@@ -20,7 +20,7 @@ package com.qiwenshare.file.helper;
-import com.qiwenshare.file.domain.FileType;
+import com.qiwenshare.file.constant.FileType;
import java.net.URL;
import java.util.Arrays;
diff --git a/src/main/java/com/qiwenshare/file/mapper/FileMapper.java b/src/main/java/com/qiwenshare/file/mapper/FileMapper.java
index 862d871..c7c5efc 100644
--- a/src/main/java/com/qiwenshare/file/mapper/FileMapper.java
+++ b/src/main/java/com/qiwenshare/file/mapper/FileMapper.java
@@ -12,14 +12,6 @@ public interface FileMapper extends BaseMapper {
void batchInsertFile(List fileBeanList);
- void incPointCountByPathAndName(@Param("oldFilePath") String oldFilePath,
- @Param("fileName") String fileName,
- @Param("extendName") String extendName,
- @Param("userId") long userId);
-
- void incPointCountByByFilepath(@Param("oldFilePath") String oldFilePath,
- @Param("userId") long userId);
-
}
diff --git a/src/main/java/com/qiwenshare/file/mapper/FileTypeMapper.java b/src/main/java/com/qiwenshare/file/mapper/FileTypeMapper.java
new file mode 100644
index 0000000..7a5759f
--- /dev/null
+++ b/src/main/java/com/qiwenshare/file/mapper/FileTypeMapper.java
@@ -0,0 +1,13 @@
+package com.qiwenshare.file.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qiwenshare.file.domain.FileType;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface FileTypeMapper extends BaseMapper {
+ List selectExtendNameByFileType(@Param("fileTypeId") Integer fileTypeId);
+
+}
diff --git a/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java b/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java
index 6bd7d38..e8272a9 100644
--- a/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java
+++ b/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java
@@ -1,6 +1,8 @@
package com.qiwenshare.file.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qiwenshare.file.domain.FileBean;
import com.qiwenshare.file.domain.UserBean;
import com.qiwenshare.file.domain.UserFile;
@@ -27,7 +29,7 @@ public interface UserFileMapper extends BaseMapper {
@Param("newFilePath") String newfilePath,
@Param("userId") long userId);
- List selectFileByExtendName(List fileNameList, Long beginCount, Long pageCount, long userId);
+ IPage selectFileByExtendName(Page> page, List fileNameList, long userId);
Long selectCountByExtendName(List fileNameList, Long beginCount, Long pageCount, long userId);
List selectFileNotInExtendNames(List fileNameList, Long beginCount, Long pageCount, long userId);
Long selectCountNotInExtendNames(List fileNameList, Long beginCount, Long pageCount, long userId);
diff --git a/src/main/java/com/qiwenshare/file/service/FileService.java b/src/main/java/com/qiwenshare/file/service/FileService.java
index 4bf8e82..5374cb3 100644
--- a/src/main/java/com/qiwenshare/file/service/FileService.java
+++ b/src/main/java/com/qiwenshare/file/service/FileService.java
@@ -53,23 +53,6 @@ public class FileService extends ServiceImpl implements IF
@Resource
FileDealComp fileDealComp;
-// @Override
-// public void increaseFilePointCount(Long fileId) {
-// FileBean fileBean = fileMapper.selectById(fileId);
-// if (fileBean == null) {
-// log.error("文件不存在,fileId : {}", fileId );
-// return;
-// }
-// fileBean.setPointCount(fileBean.getPointCount()+1);
-// fileMapper.updateById(fileBean);
-// }
-//
-// @Override
-// public void decreaseFilePointCount(Long fileId) {
-// FileBean fileBean = fileMapper.selectById(fileId);
-// fileBean.setPointCount(fileBean.getPointCount()-1);
-// fileMapper.updateById(fileBean);
-// }
@Override
public Long getFilePointCount(Long fileId) {
@@ -154,7 +137,6 @@ public class FileService extends ServiceImpl implements IF
List list = fileMapper.selectByMap(param);
if (list != null && !list.isEmpty()) { //文件已存在
-// increaseFilePointCount(list.get(0).getFileId());
saveUserFile.setFileId(list.get(0).getFileId());
} else { //文件不存在
fileInputStream1 = new FileInputStream(currentFile);
@@ -163,7 +145,6 @@ public class FileService extends ServiceImpl implements IF
String saveFileUrl = ufopFactory.getCopier().copy(fileInputStream1, createFile);
tempFileBean.setFileSize(currentFile.length());
tempFileBean.setFileUrl(saveFileUrl);
-// tempFileBean.setPointCount(1);
tempFileBean.setStorageType(storageType);
tempFileBean.setIdentifier(md5Str);
fileMapper.insert(tempFileBean);
@@ -211,9 +192,6 @@ public class FileService extends ServiceImpl implements IF
saveUserFile.setDeleteFlag(0);
if (unzipMode == 1) {
-// String destFilePath = "/" + userFile.getFilePath() + saveUserFile.getFilePath();
-// saveUserFile.setFilePath(destFilePath);
-
saveUserFile.setFilePath(UFOPUtils.pathSplitFormat(userFile.getFilePath() + userFile.getFileName() + "/" + entryName.replace(currentFile.getName(), "")).replace("\\", "/"));
} else if(unzipMode == 2) {
saveUserFile.setFilePath(UFOPUtils.pathSplitFormat(filePath + entryName.replace(currentFile.getName(), "")).replace("\\", "/"));
diff --git a/src/main/java/com/qiwenshare/file/service/UserFileService.java b/src/main/java/com/qiwenshare/file/service/UserFileService.java
index 359a6d2..6544e82 100644
--- a/src/main/java/com/qiwenshare/file/service/UserFileService.java
+++ b/src/main/java/com/qiwenshare/file/service/UserFileService.java
@@ -3,6 +3,8 @@ package com.qiwenshare.file.service;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiwenshare.common.constant.FileConstant;
import com.qiwenshare.common.util.DateUtil;
@@ -10,6 +12,7 @@ import com.qiwenshare.file.api.IUserFileService;
import com.qiwenshare.file.domain.RecoveryFile;
import com.qiwenshare.file.domain.UserFile;
import com.qiwenshare.file.mapper.FileMapper;
+import com.qiwenshare.file.mapper.FileTypeMapper;
import com.qiwenshare.file.mapper.RecoveryFileMapper;
import com.qiwenshare.file.mapper.UserFileMapper;
import com.qiwenshare.file.vo.file.FileListVo;
@@ -18,6 +21,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.Executor;
@@ -33,6 +37,8 @@ public class UserFileService extends ServiceImpl impl
FileMapper fileMapper;
@Resource
RecoveryFileMapper recoveryFileMapper;
+ @Resource
+ FileTypeMapper fileTypeMapper;
public static Executor executor = Executors.newFixedThreadPool(20);
@@ -116,7 +122,7 @@ public class UserFileService extends ServiceImpl impl
}
userFileMapper.batchInsertByPathAndName(oldfilePath, newfilePath, fileName, extendName, userId);
- fileMapper.incPointCountByPathAndName(newfilePath, fileName, extendName, userId);
+
//移动子目录
oldfilePath = oldfilePath + fileName + "/";
@@ -129,15 +135,21 @@ public class UserFileService extends ServiceImpl impl
if (extendName == null) { //为null说明是目录,则需要移动子目录
userFileMapper.batchInsertByFilepath(oldfilePath, newfilePath, userId);
- fileMapper.incPointCountByByFilepath(oldfilePath, userId);
+
}
}
@Override
- public List selectFileByExtendName(List fileNameList, Long beginCount, Long pageCount, long userId) {
- return userFileMapper.selectFileByExtendName(fileNameList, beginCount, pageCount, userId);
+ public IPage getFileByFileType(Integer fileTypeId, Long currentPage, Long pageCount, long userId) {
+ Page page = new Page<>(currentPage, pageCount);
+
+ List extendNameList = fileTypeMapper.selectExtendNameByFileType(fileTypeId);
+ if (extendNameList != null && extendNameList.isEmpty()) {
+ return page;
+ }
+ return userFileMapper.selectFileByExtendName(page, extendNameList, userId);
}
@Override
diff --git a/src/main/resources/import.sql b/src/main/resources/import.sql
index ec12448..74582c6 100644
--- a/src/main/resources/import.sql
+++ b/src/main/resources/import.sql
@@ -3,4 +3,165 @@ insert ignore into user (userId, username, telephone, salt, password, available)
INSERT ignore INTO `role` (`roleid`, `available`, `description`, `roleName`, `createTime`, `createUserId`, `modifyTime`, `modifyUserId`) VALUES (1, 1, '超级管理员', '超级管理员', NULL, NULL, '2021-11-10 20:46:06', NULL);
INSERT ignore INTO `role` (`roleid`, `available`, `description`, `roleName`, `createTime`, `createUserId`, `modifyTime`, `modifyUserId`) VALUES (2, 1, '普通用户', '普通用户', NULL, NULL, NULL, NULL);
-insert ignore into sysparam (sysParamId, sysParamKey, sysParamValue, sysParamDesc) values (1, 'totalStorageSize', '1024', '总存储大小(单位M)');
\ No newline at end of file
+insert ignore into sysparam (sysParamId, sysParamKey, sysParamValue, sysParamDesc) values (1, 'totalStorageSize', '1024', '总存储大小(单位M)');
+
+
+INSERT INTO `filetype` (`fileTypeId`, `fileTypeName`) VALUES (0, '全部');
+INSERT INTO `filetype` (`fileTypeId`, `fileTypeName`) VALUES (1, '图片');
+INSERT INTO `filetype` (`fileTypeId`, `fileTypeName`) VALUES (2, '文档');
+INSERT INTO `filetype` (`fileTypeId`, `fileTypeName`) VALUES (3, '视频');
+INSERT INTO `filetype` (`fileTypeId`, `fileTypeName`) VALUES (4, '音乐');
+INSERT INTO `filetype` (`fileTypeId`, `fileTypeName`) VALUES (5, '其他');
+
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('bmp');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('jpg');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('png');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('tif');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('gif');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('jpeg');
+
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('doc');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('docx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('docm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('dot');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('dotx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('dotm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('odt');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('fodt');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ott');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('rtf');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('txt');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('html');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('htm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('mht');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xml');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('pdf');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('djvu');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('fb2');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('epub');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xps');
+
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xls');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xlsx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xlsm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xlt');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xltx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('xltm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ods');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('fods');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ots');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('csv');
+
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('pps');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ppsx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ppsm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ppt');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('pptx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('pptm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('pot');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('potx');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('potm');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('odp');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('fodp');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('otp');
+
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('hlp');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('wps');
+
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('avi');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('mp4');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('mpg');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('mov');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('swf');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('wav');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('aif');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('au');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('mp3');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('ram');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('wma');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('mmf');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('amr');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('aac');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('flac');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('java');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('js');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('css');
+INSERT INTO `fileextend` (`fileExtendName`) VALUES ('json');
+
+
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (1, 1, 'bmp');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (2, 1, 'jpg');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (3, 1, 'png');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (4, 1, 'tif');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (5, 1, 'gif');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (6, 1, 'jpeg');
+
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (7, 2, 'doc');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (8, 2, 'docx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (9, 2, 'docm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (10, 2, 'dot');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (11, 2, 'dotx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (12, 2, 'dotm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (13, 2, 'odt');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (14, 2, 'fodt');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (15, 2, 'ott');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (16, 2, 'rtf');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (17, 2, 'txt');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (18, 2, 'html');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (19, 2, 'htm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (20, 2, 'mht');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (21, 2, 'xml');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (22, 2, 'pdf');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (23, 2, 'djvu');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (24, 2, 'fb2');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (25, 2, 'epub');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (26, 2, 'xps');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (27, 2, 'xls');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (28, 2, 'xlsx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (29, 2, 'xlsm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (30, 2, 'xlt');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (31, 2, 'xltx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (32, 2, 'xltm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (33, 2, 'ods');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (34, 2, 'fods');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (35, 2, 'ots');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (36, 2, 'csv');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (37, 2, 'pps');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (38, 2, 'ppsx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (39, 2, 'ppsm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (40, 2, 'ppt');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (41, 2, 'pptx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (42, 2, 'pptm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (43, 2, 'pot');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (44, 2, 'potx');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (45, 2, 'potm');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (46, 2, 'odp');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (47, 2, 'fodp');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (48, 2, 'otp');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (49, 2, 'hlp');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (50, 2, 'wps');
+
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (51, 2, 'java');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (52, 2, 'js');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (53, 2, 'css');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (54, 2, 'json');
+
+
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (55, 3, 'avi');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (56, 3, 'mp4');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (57, 3, 'mpg');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (58, 3, 'mov');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (59, 3, 'swf');
+
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (60, 4, 'wav');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (61, 4, 'aif');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (62, 4, 'au');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (63, 4, 'mp3');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (64, 4, 'ram');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (65, 4, 'wma');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (66, 4, 'mmf');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (67, 4, 'amr');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (68, 4, 'aac');
+INSERT INTO `fileclassification` (`fileClassificationId`, `fileTypeId`, `fileExtendName`) VALUES (69, 4, 'flac');
+
+
diff --git a/src/main/resources/mapper/FileMapper.xml b/src/main/resources/mapper/FileMapper.xml
index 1707664..12c4227 100644
--- a/src/main/resources/mapper/FileMapper.xml
+++ b/src/main/resources/mapper/FileMapper.xml
@@ -17,40 +17,5 @@
-
- update file
- set pointCount = pointCount + 1
- where fileId in (
- select fileId from userfile
-
-
- and userId = #{userId}
-
-
- and fileName = #{fileName}
-
-
- and filePath = #{oldFilePath}
-
-
- and extendName = #{extendName}
-
- and isDir = 0
-
- )
-
-
-
- update file
- set pointCount = pointCount + 1
- where fileId in (
- select fileId from userfile
- where
- filePath like N'${oldFilePath}%'
- and userId = #{userId}
- and isDir = 0
-
- )
-
\ No newline at end of file
diff --git a/src/main/resources/mapper/FileTypeMapper.xml b/src/main/resources/mapper/FileTypeMapper.xml
new file mode 100644
index 0000000..7531961
--- /dev/null
+++ b/src/main/resources/mapper/FileTypeMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserFileMapper.xml b/src/main/resources/mapper/UserFileMapper.xml
index 11ce514..bab883a 100644
--- a/src/main/resources/mapper/UserFileMapper.xml
+++ b/src/main/resources/mapper/UserFileMapper.xml
@@ -60,8 +60,13 @@