文件业务逻辑修改
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.vetti.hotake.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.vetti.common.config.MinioConfig;
|
||||
import com.vetti.common.core.service.BaseServiceImpl;
|
||||
import com.vetti.common.enums.FillTypeEnum;
|
||||
@@ -10,6 +11,7 @@ import com.vetti.common.utils.file.MinioUtil;
|
||||
import com.vetti.common.utils.sign.Md5Utils;
|
||||
import com.vetti.hotake.domain.HotakeSysFile;
|
||||
import com.vetti.hotake.domain.dto.HotakeSysFileDto;
|
||||
import com.vetti.hotake.domain.vo.HotakeSysFileVo;
|
||||
import com.vetti.hotake.mapper.HotakeSysFileMapper;
|
||||
import com.vetti.hotake.service.IHotakeSysFileService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@@ -19,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -83,24 +86,21 @@ public class HotakeSysFileServiceImpl extends BaseServiceImpl implements IHotake
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public HotakeSysFile insertHotakeSysFile(MultipartFile file, HotakeSysFile HotakeSysFile) {
|
||||
public HotakeSysFile insertHotakeSysFile(MultipartFile file, HotakeSysFileVo fileVo) {
|
||||
if (file == null) {
|
||||
throw new IllegalArgumentException("文件不能为空");
|
||||
}
|
||||
if (StringUtils.isEmpty(HotakeSysFile.getCode())) {
|
||||
throw new IllegalArgumentException("CODE不能为空");
|
||||
}
|
||||
if (StringUtils.isEmpty(HotakeSysFile.getMinioBucketName())) {
|
||||
if (StringUtils.isEmpty(fileVo.getMinioBucketName())) {
|
||||
throw new IllegalArgumentException("桶不能为空");
|
||||
}
|
||||
if (checkCode(HotakeSysFile)) {
|
||||
throw new IllegalArgumentException("CODE不能重复");
|
||||
}
|
||||
HotakeSysFile.setUploadPlatform(1);//PC
|
||||
updateData(file, HotakeSysFile);
|
||||
fill(FillTypeEnum.INSERT.getCode(), HotakeSysFile);
|
||||
hotakeSysFileMapper.insertHotakeSysFile(HotakeSysFile);
|
||||
return HotakeSysFile;
|
||||
HotakeSysFile sysFile = new HotakeSysFile();
|
||||
sysFile.setUploadPlatform(1);//PC
|
||||
sysFile.setMinioBucketName(fileVo.getMinioBucketName());
|
||||
sysFile.setCode(IdUtil.fastSimpleUUID());
|
||||
updateData(file, sysFile);
|
||||
fill(FillTypeEnum.INSERT.getCode(), sysFile);
|
||||
hotakeSysFileMapper.insertHotakeSysFile(sysFile);
|
||||
return sysFile;
|
||||
}
|
||||
|
||||
private boolean checkCode(HotakeSysFile HotakeSysFile) {
|
||||
@@ -124,6 +124,8 @@ public class HotakeSysFileServiceImpl extends BaseServiceImpl implements IHotake
|
||||
HotakeSysFile.setFileName(FileUtils.cleanFileName(file.getOriginalFilename()));
|
||||
HotakeSysFile.setFileType(FileTypeUtils.getFileType(file.getOriginalFilename()));
|
||||
HotakeSysFile.setFileSize(file.getSize());
|
||||
//根据字节大小计算文件大小
|
||||
HotakeSysFile.setFileSizeShow(calculateSize(file.getSize()));
|
||||
HotakeSysFile.setFileMd5(Md5Utils.getFileMd5(FileUtils.convert(file)));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -218,4 +220,45 @@ public class HotakeSysFileServiceImpl extends BaseServiceImpl implements IHotake
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算文件夹或文件大小
|
||||
* 单位:B, KB, M, G, T
|
||||
* @param sizes
|
||||
* @return
|
||||
*/
|
||||
private String calculateSize(Long sizes){
|
||||
if(sizes != null){
|
||||
if(new BigDecimal(sizes).compareTo(new BigDecimal(1024)) < 0){
|
||||
return sizes+"B";
|
||||
}
|
||||
if(new BigDecimal(sizes).compareTo(new BigDecimal(1024)) >= 0 &&
|
||||
new BigDecimal(sizes).compareTo(new BigDecimal(1048576)) < 0){
|
||||
BigDecimal size = new BigDecimal(sizes).divide(new BigDecimal(1024)).
|
||||
setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
return size+"KB";
|
||||
}
|
||||
if(new BigDecimal(sizes).compareTo(new BigDecimal(1048576)) >= 0 &&
|
||||
new BigDecimal(sizes).compareTo(new BigDecimal(1073741824)) < 0){
|
||||
BigDecimal size = new BigDecimal(sizes).divide(new BigDecimal(1048576)).
|
||||
setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
return size+"M";
|
||||
}
|
||||
if(new BigDecimal(sizes).compareTo(new BigDecimal(1073741824)) >= 0 &&
|
||||
new BigDecimal(sizes).compareTo(new BigDecimal(1099511627776L)) < 0){
|
||||
BigDecimal size = new BigDecimal(sizes).divide(new BigDecimal(1073741824)).
|
||||
setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
return size+"G";
|
||||
}
|
||||
if(new BigDecimal(sizes).compareTo(new BigDecimal(1099511627776L)) >= 0){
|
||||
BigDecimal size = new BigDecimal(sizes).divide(new BigDecimal(1099511627776L)).
|
||||
setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
return size+"T";
|
||||
}
|
||||
}else{
|
||||
return "0B";
|
||||
}
|
||||
return "0B";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user