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) | + ## 网络拓扑图 ![网络拓扑图](https://pan.qiwenshare.com/docs/img/guide/web-expand.png) 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 @@