Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
MAC 2023-05-01 22:28:15 +08:00
commit f62bc605cb
9 changed files with 102 additions and 47 deletions

View File

@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.common.util.MusicUtils; import com.qiwenshare.common.util.MusicUtils;
import com.qiwenshare.common.util.security.SessionUtil;
import com.qiwenshare.file.api.IShareFileService; import com.qiwenshare.file.api.IShareFileService;
import com.qiwenshare.file.api.IShareService; import com.qiwenshare.file.api.IShareService;
import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.api.IUserService;
@ -327,17 +328,21 @@ public class FileDealComp {
/** /**
* 根据用户传入的参数判断是否有下载或者预览权限 * 根据用户传入的参数判断是否有下载或者预览权限
*
* @return * @return
*/ */
public boolean checkAuthDownloadAndPreview(String shareBatchNum, public boolean checkAuthDownloadAndPreview(String shareBatchNum,
String extractionCode, String extractionCode,
String token, String token,
String userFileId, String userFileIds,
Integer platform) { Integer platform) {
log.debug("权限检查开始shareBatchNum:{}, extractionCode:{}, token:{}, userFileId{}" , shareBatchNum, extractionCode, token, userFileId); log.debug("权限检查开始shareBatchNum:{}, extractionCode:{}, token:{}, userFileIds{}", shareBatchNum, extractionCode, token, userFileIds);
if (platform != null && platform == 2) { if (platform != null && platform == 2) {
return true; return true;
} }
String[] userFileIdArr = userFileIds.split(",");
for (String userFileId : userFileIdArr) {
UserFile userFile = userFileMapper.selectById(userFileId); UserFile userFile = userFileMapper.selectById(userFileId);
log.debug(JSON.toJSONString(userFile)); log.debug(JSON.toJSONString(userFile));
if ("undefined".equals(shareBatchNum) || StringUtils.isEmpty(shareBatchNum)) { if ("undefined".equals(shareBatchNum) || StringUtils.isEmpty(shareBatchNum)) {
@ -378,12 +383,15 @@ public class FileDealComp {
} }
} }
}
return true; return true;
} }
/** /**
* 拷贝文件 * 拷贝文件
* 场景修改的文件被多处引用时需要重新拷贝一份然后在新的基础上修改 * 场景修改的文件被多处引用时需要重新拷贝一份然后在新的基础上修改
*
* @param fileBean * @param fileBean
* @param userFile * @param userFile
* @return * @return
@ -404,6 +412,8 @@ public class FileDealComp {
fileMapper.insert(fileBean); fileMapper.insert(fileBean);
userFile.setFileId(fileBean.getFileId()); userFile.setFileId(fileBean.getFileId());
userFile.setUploadTime(DateUtil.getCurrentTime()); userFile.setUploadTime(DateUtil.getCurrentTime());
userFile.setModifyTime(DateUtil.getCurrentTime());
userFile.setModifyUserId(SessionUtil.getUserId());
userFileMapper.updateById(userFile); userFileMapper.updateById(userFile);
return fileUrl; return fileUrl;
} }

View File

@ -32,6 +32,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
"/user/login", "/user/login",
"/user/checkuserlogininfo", "/user/checkuserlogininfo",
"/filetransfer/downloadfile", "/filetransfer/downloadfile",
"/filetransfer/batchDownloadFile",
"/filetransfer/preview", "/filetransfer/preview",
"/share/sharefileList", "/share/sharefileList",
"/share/sharetype", "/share/sharetype",
@ -42,6 +43,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
"/param/grouplist", "/param/grouplist",
"/error/**", "/error/**",
"/swagger-ui.html", "/swagger-ui.html",
"/office/IndexServlet"
}; };
@Autowired @Autowired
private UserService userService; private UserService userService;

View File

@ -132,7 +132,8 @@ public class FileController {
userFile.setExtendName(extendName); userFile.setExtendName(extendName);
userFile.setUploadTime(DateUtil.getCurrentTime()); userFile.setUploadTime(DateUtil.getCurrentTime());
userFile.setFileId(fileBean.getFileId()); userFile.setFileId(fileBean.getFileId());
userFile.setCreateTime(DateUtil.getCurrentTime());
userFile.setCreateUserId(SessionUtil.getUserId());
userFileService.save(userFile); userFileService.save(userFile);
} }
return RestResult.success().message("文件创建成功"); return RestResult.success().message("文件创建成功");

View File

@ -146,7 +146,24 @@ public class FiletransferController {
@RequestMapping(value = "/batchDownloadFile", method = RequestMethod.GET) @RequestMapping(value = "/batchDownloadFile", method = RequestMethod.GET)
@MyLog(operation = "批量下载文件", module = CURRENT_MODULE) @MyLog(operation = "批量下载文件", module = CURRENT_MODULE)
@ResponseBody @ResponseBody
public void batchDownloadFile(HttpServletResponse httpServletResponse, BatchDownloadFileDTO batchDownloadFileDTO) { public void batchDownloadFile(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BatchDownloadFileDTO batchDownloadFileDTO) {
Cookie[] cookieArr = httpServletRequest.getCookies();
String token = "";
if (cookieArr != null) {
for (Cookie cookie : cookieArr) {
if ("token".equals(cookie.getName())) {
token = cookie.getValue();
}
}
}
boolean authResult = fileDealComp.checkAuthDownloadAndPreview(batchDownloadFileDTO.getShareBatchNum(),
batchDownloadFileDTO.getExtractionCode(),
token,
batchDownloadFileDTO.getUserFileIds(), null);
if (!authResult) {
log.error("没有权限下载!!!");
return;
}
String files = batchDownloadFileDTO.getUserFileIds(); String files = batchDownloadFileDTO.getUserFileIds();
String[] userFileIdStrs = files.split(","); String[] userFileIdStrs = files.split(",");

View File

@ -54,6 +54,14 @@ public class UserFile {
@Column(columnDefinition = "varchar(50) comment '删除批次号'") @Column(columnDefinition = "varchar(50) comment '删除批次号'")
private String deleteBatchNum; private String deleteBatchNum;
@Column(columnDefinition="varchar(30) comment '创建时间'")
private String createTime;
@Column(columnDefinition="varchar(20) comment '创建用户id'")
private String createUserId;
@Column(columnDefinition="varchar(30) comment '修改时间'")
private String modifyTime;
@Column(columnDefinition="varchar(20) comment '修改用户id'")
private String modifyUserId;
public UserFile() {}; public UserFile() {};
public UserFile(QiwenFile qiwenFile, String userId, String fileId) { public UserFile(QiwenFile qiwenFile, String userId, String fileId) {
@ -64,7 +72,10 @@ public class UserFile {
this.fileName = qiwenFile.getNameNotExtend(); this.fileName = qiwenFile.getNameNotExtend();
this.extendName = qiwenFile.getExtendName(); this.extendName = qiwenFile.getExtendName();
this.isDir = qiwenFile.isDirectory() ? 1 : 0; this.isDir = qiwenFile.isDirectory() ? 1 : 0;
this.uploadTime = DateUtil.getCurrentTime(); String currentTime = DateUtil.getCurrentTime();
this.setUploadTime(currentTime);
this.setCreateUserId(userId);
this.setCreateTime(currentTime);
this.deleteFlag = 0; this.deleteFlag = 0;
} }

View File

@ -8,5 +8,9 @@ import lombok.Data;
public class BatchDownloadFileDTO { public class BatchDownloadFileDTO {
@Schema(description="文件集合", required = true) @Schema(description="文件集合", required = true)
private String userFileIds; private String userFileIds;
@Schema(description="批次号")
private String shareBatchNum;
@Schema(description="提取码")
private String extractionCode;
} }

View File

@ -86,7 +86,10 @@ public class DefaultEditorConfigConfigurer implements EditorConfigConfigurer<Def
config.setCoEditing(action.equals(Action.view) && userIsAnon ? new HashMap<String, Object>() {{ config.setCoEditing(action.equals(Action.view) && userIsAnon ? new HashMap<String, Object>() {{
put("mode", "strict"); put("mode", "strict");
put("change", false); put("change", false);
}} : null); }} : new HashMap<String, Object>() {{
put("mode", "fast");
put("change", true);
}});
defaultCustomizationConfigurer.configure(config.getCustomization(), DefaultCustomizationWrapper.builder() // define the customization configurer defaultCustomizationConfigurer.configure(config.getCustomization(), DefaultCustomizationWrapper.builder() // define the customization configurer
.action(action) .action(action)

View File

@ -134,6 +134,8 @@ public class FileService extends ServiceImpl<FileMapper, FileBean> implements IF
fileBean.setFileId(userFile.getFileId()); fileBean.setFileId(userFile.getFileId());
fileMapper.updateById(fileBean); fileMapper.updateById(fileBean);
userFile.setUploadTime(currentTime); userFile.setUploadTime(currentTime);
userFile.setModifyTime(currentTime);
userFile.setModifyUserId(SessionUtil.getUserId());
userFileMapper.updateById(userFile); userFileMapper.updateById(userFile);
} }

View File

@ -2,6 +2,7 @@ package com.qiwenshare.file.util;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.common.util.security.SessionUtil;
import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.domain.UserFile;
import com.qiwenshare.file.io.QiwenFile; import com.qiwenshare.file.io.QiwenFile;
@ -18,6 +19,8 @@ public class QiwenFileUtil {
userFile.setExtendName(null); userFile.setExtendName(null);
userFile.setIsDir(1); userFile.setIsDir(1);
userFile.setUploadTime(DateUtil.getCurrentTime()); userFile.setUploadTime(DateUtil.getCurrentTime());
userFile.setCreateUserId(SessionUtil.getUserId());
userFile.setCreateTime(DateUtil.getCurrentTime());
userFile.setDeleteFlag(0); userFile.setDeleteFlag(0);
userFile.setDeleteBatchNum(null); userFile.setDeleteBatchNum(null);
return userFile; return userFile;
@ -33,6 +36,8 @@ public class QiwenFileUtil {
userFile.setExtendName(extendName); userFile.setExtendName(extendName);
userFile.setIsDir(0); userFile.setIsDir(0);
userFile.setUploadTime(DateUtil.getCurrentTime()); userFile.setUploadTime(DateUtil.getCurrentTime());
userFile.setCreateTime(DateUtil.getCurrentTime());
userFile.setCreateUserId(SessionUtil.getUserId());
userFile.setDeleteFlag(0); userFile.setDeleteFlag(0);
userFile.setDeleteBatchNum(null); userFile.setDeleteBatchNum(null);
return userFile; return userFile;