fix(master): 暂时修复BUG

1. 暂时修复一次性链接下载的问题
master
土豆兄弟 3 months ago
parent 7f8f07ee21
commit ff1894fdae

@ -94,6 +94,16 @@ public class BuildRecordScheduled {
log.info("buildRecordTask taskName as [{}] result as [{}] result time as [{}]", buildRecord.getTaskName(), deleteTagByParam, LocalTime.now());
}
/**
* todo - ,
*/
/* @Scheduled(cron = "0 0 4 * * ?")
public void fixdownloadFilesByRandFileStatus() {
log.info("scheduled fixdownloadFilesByRandFileStatus start time [{}]", LocalTime.now());
}*/
@Scheduled(cron = "0 0 4 * * ?")
public void resendBuildRecordTask() {

@ -84,16 +84,15 @@ public class MailTaskController {
@GetMapping("download")
@ApiOperation("下载文件")
@AnonymousAccess // fixme 需要测试完成后进行去除和使用上面的权限注解
public void downLoadOnceFile(HttpServletResponse response, HttpServletRequest request, @RequestParam(value = "rand")String rand){
public ResponseEntity<Object> downLoadOnceFile(HttpServletResponse response, HttpServletRequest request, @RequestParam(value = "rand")String rand){
if(StringUtils.isNotBlank(rand)){
// 校验参数,进行下载文件
mailTaskService.downloadFilesByRandCode(rand, response, request);
/* if (StringUtils.isBlank(rand)){
return new ResponseEntity<>(CommonResponse.createByError(ResponseCode.EMPTY_ARGUMENT), HttpStatus.OK);
}*/
/* if (tag){
return new ResponseEntity<>(CommonResponse.createBySuccessByCode(ResponseCode.SUCCESS_ONCE_LINK_MSG), HttpStatus.OK);
return new ResponseEntity<>(CommonResponse.createBySuccessMessage("下载成功"), HttpStatus.OK);
}else {
return new ResponseEntity<>(CommonResponse.createByError(ResponseCode.ONCE_LINK_MSG_ERROR), HttpStatus.OK);
}*/
return new ResponseEntity<>(CommonResponse.createByError(ResponseCode.EMPTY_ARGUMENT), HttpStatus.OK);
}
}
}

@ -1,5 +1,6 @@
package me.zhengjie.modules.mailtask.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.poi.excel.ExcelUtil;
@ -27,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.sql.Timestamp;
import java.util.List;
import java.util.Objects;
@ -117,7 +119,9 @@ public class MailTaskServiceImpl implements MailTaskService {
}
}
// 任务记录
TempFileRecord tempFileRecord = new TempFileRecord();
TempFileRecord tempFileRecord = new TempFileRecord(); // 增加生成时间字段
// 增加生成时间字段
tempFileRecord.setGmtCreate(new Timestamp(System.currentTimeMillis()));
// 保存当次任务生成的所有日志地址,然后保存在一次,用逗号分隔
tempFileRecord.setFilePaths(pathBuilder.toString().substring(0, pathBuilder.length() - 1));
// 默认保存7天
@ -169,11 +173,13 @@ public class MailTaskServiceImpl implements MailTaskService {
@Transactional(rollbackFor = Exception.class)
public void downloadFilesByRandCode(String rand, HttpServletResponse response,HttpServletRequest request) {
// 根据验证码查出需要的信息
TempFileRecord tempFileRecord = tempFileRecordService.findByVerificationCode(rand.trim(), FINISH_BUILD_FILE_STATUS_CODE);
TempFileRecord tempFileRecord = tempFileRecordService.findByVerificationCode(rand.trim());
// 切分需要的文件地址
if (tempFileRecord!= null){
if (ObjectUtil.isNotEmpty(tempFileRecord)){
String filePaths = tempFileRecord.getFilePaths();
if (StringUtils.isNotBlank(filePaths)){
Integer fileStatus = tempFileRecord.getFileStatus();
// fixme 进行临时性修复, 目前无法进行判断是否成功下载, 所以做下2次下载容错, 然后用定时任务自动关闭下载后的结果
if (StringUtils.isNotBlank(filePaths) && fileStatus <= 2){
String[] split = filePaths.split(FILE_PATH_SPLIT);
if (split.length > 0 && StringUtils.isNotBlank(split[0])){
String tempPath = StringUtils.substringBeforeLast(split[0], File.separator);
@ -182,7 +188,8 @@ public class MailTaskServiceImpl implements MailTaskService {
// ZipUtil.zip(tempPath, zipPath);
FileUtil.downloadFile(request, response, new File(zipPath), true);
// 更新下载结果
tempFileRecord.setFileStatus(FINISH_DOWNLOAD_FILE_STATUS_CODE);
// tempFileRecord.setFileStatus(FINISH_DOWNLOAD_FILE_STATUS_CODE);
tempFileRecord.setFileStatus(fileStatus + 1);
tempFileRecordService.update(tempFileRecord);
}
}
@ -195,6 +202,8 @@ public class MailTaskServiceImpl implements MailTaskService {
public String buildOnceLinkFromServer(String filePath) {
// 任务记录
TempFileRecord tempFileRecord = new TempFileRecord();
// 增加生成时间字段
tempFileRecord.setGmtCreate(new Timestamp(System.currentTimeMillis()));
// 保存当次任务生成的所有日志地址,然后保存在一次,用逗号分隔
tempFileRecord.setFilePaths(filePath);
// 默认保存7天

@ -26,5 +26,8 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
**/
public interface TempFileRecordRepository extends JpaRepository<TempFileRecord, Integer>, JpaSpecificationExecutor<TempFileRecord> {
TempFileRecord findByVerificationCodeAndFileStatus(String verificationCode, Integer fileStatus);
TempFileRecord findByVerificationCode(String verificationCode);
}

@ -94,10 +94,15 @@ public interface TempFileRecordService {
/**
* 访访
* 访, 访
*/
TempFileRecord findByVerificationCode(String verificationCode, Integer fileStatus);
/**
* 访
*/
TempFileRecord findByVerificationCode(String verificationCode);
/**
*
*

@ -132,6 +132,11 @@ public class TempFileRecordServiceImpl implements TempFileRecordService {
return tempFileRecordRepository.findByVerificationCodeAndFileStatus(verificationCode, fileStatus);
}
@Override
public TempFileRecord findByVerificationCode(String verificationCode) {
return tempFileRecordRepository.findByVerificationCode(verificationCode);
}
@Override
public long batchUpdate(List<TempFileRecordDto> TempFileRecordDto) {

Loading…
Cancel
Save