feat(文件): 文件分类由硬编码修改为数据库配置

This commit is contained in:
MAC 2021-12-25 18:30:47 +08:00
parent b91a85392b
commit 97756a90fe
22 changed files with 397 additions and 144 deletions

View File

@ -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)

11
pom.xml
View File

@ -109,6 +109,17 @@
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>com.inversoft</groupId>
<artifactId>prime-jwt</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>

View File

@ -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;

View File

@ -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<UserFile> {
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<FileListVo> selectFileByExtendName(List<String> fileNameList, Long beginCount, Long pageCount, long userId);
IPage<FileListVo> getFileByFileType(Integer fileTypeId, Long currentPage, Long pageCount, long userId);
Long selectCountByExtendName(List<String> fileNameList, Long beginCount, Long pageCount, long userId);
List<FileListVo> selectFileNotInExtendNames(List<String> fileNameList, Long beginCount, Long pageCount, long userId);
Long selectCountNotInExtendNames(List<String> fileNameList, Long beginCount, Long pageCount, long userId);

View File

@ -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);

View File

@ -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
}

View File

@ -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;
}
}

View File

@ -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<List<Map<String, Object>>> 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<FileListVo> 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<String> 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<FileListVo> result = userFileService.getFileByFileType(fileType, currentPage, pageCount, userId);
Map<String, Object> 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();

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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
}
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;
}

View File

@ -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;

View File

@ -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;

View File

@ -12,14 +12,6 @@ public interface FileMapper extends BaseMapper<FileBean> {
void batchInsertFile(List<FileBean> 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);
}

View File

@ -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<FileType> {
List<String> selectExtendNameByFileType(@Param("fileTypeId") Integer fileTypeId);
}

View File

@ -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<UserFile> {
@Param("newFilePath") String newfilePath,
@Param("userId") long userId);
List<FileListVo> selectFileByExtendName(List<String> fileNameList, Long beginCount, Long pageCount, long userId);
IPage<FileListVo> selectFileByExtendName(Page<?> page, List<String> fileNameList, long userId);
Long selectCountByExtendName(List<String> fileNameList, Long beginCount, Long pageCount, long userId);
List<FileListVo> selectFileNotInExtendNames(List<String> fileNameList, Long beginCount, Long pageCount, long userId);
Long selectCountNotInExtendNames(List<String> fileNameList, Long beginCount, Long pageCount, long userId);

View File

@ -53,23 +53,6 @@ public class FileService extends ServiceImpl<FileMapper, FileBean> 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<FileMapper, FileBean> implements IF
List<FileBean> 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<FileMapper, FileBean> 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<FileMapper, FileBean> 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("\\", "/"));

View File

@ -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<UserFileMapper, UserFile> 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<UserFileMapper, UserFile> 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<UserFileMapper, UserFile> impl
if (extendName == null) { //为null说明是目录则需要移动子目录
userFileMapper.batchInsertByFilepath(oldfilePath, newfilePath, userId);
fileMapper.incPointCountByByFilepath(oldfilePath, userId);
}
}
@Override
public List<FileListVo> selectFileByExtendName(List<String> fileNameList, Long beginCount, Long pageCount, long userId) {
return userFileMapper.selectFileByExtendName(fileNameList, beginCount, pageCount, userId);
public IPage<FileListVo> getFileByFileType(Integer fileTypeId, Long currentPage, Long pageCount, long userId) {
Page<FileListVo> page = new Page<>(currentPage, pageCount);
List<String> extendNameList = fileTypeMapper.selectExtendNameByFileType(fileTypeId);
if (extendNameList != null && extendNameList.isEmpty()) {
return page;
}
return userFileMapper.selectFileByExtendName(page, extendNameList, userId);
}
@Override

View File

@ -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');
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');

View File

@ -17,40 +17,5 @@
</foreach>
</insert>
<update id="incPointCountByPathAndName">
update file
set pointCount = pointCount + 1
where fileId in (
select fileId from userfile
<where>
<if test="userId != 0">
and userId = #{userId}
</if>
<if test="fileName != null">
and fileName = #{fileName}
</if>
<if test="oldFilePath != null">
and filePath = #{oldFilePath}
</if>
<if test="extendName != null">
and extendName = #{extendName}
</if>
and isDir = 0
</where>
)
</update>
<update id="incPointCountByByFilepath">
update file
set pointCount = pointCount + 1
where fileId in (
select fileId from userfile
where
filePath like N'${oldFilePath}%'
and userId = #{userId}
and isDir = 0
)
</update>
</mapper>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qiwenshare.file.mapper.FileTypeMapper">
<select id="selectExtendNameByFileType" parameterType="java.lang.String" resultType="java.lang.String">
select fileExtendName from fileclassification
<where>
<choose>
<when test="fileTypeId != 5">
fileTypeId = #{fileTypeId}
</when>
<otherwise>
fileTypeId not in (1,2,3,4)
</otherwise>
</choose>
</where>
</select>
</mapper>

View File

@ -60,8 +60,13 @@
<select id="selectFileByExtendName" parameterType="com.qiwenshare.file.domain.UserFile" resultType="com.qiwenshare.file.vo.file.FileListVo">
select * from userfile
left join image on userfile.fileId = image.fileId
<include refid="selectByExtendName"></include>
limit #{beginCount}, #{pageCount}
left join file on file.fileId = userfile.fileId
where extendName in
<foreach collection="fileNameList" open="(" close=")" separator="," item="fileName" >
#{fileName}
</foreach>
and userId = #{userId}
and deleteFlag = 0
</select>
<select id="selectCountByExtendName" parameterType="com.qiwenshare.file.domain.UserFile" resultType="java.lang.Long">