123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.example.fms.service;
- import cn.hutool.core.io.FileUtil;
- import cn.hutool.core.util.IdUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.example.fms.common.core.base.RedisConf;
- import com.example.fms.common.model.dto.UploadChuckDTO;
- import com.example.fms.common.model.vo.ConfigSettingVO;
- import com.example.fms.common.model.vo.UploadChuckVO;
- import com.example.fms.common.utils.ExcuteConfigUtils;
- import com.example.fms.common.utils.FileUtils;
- import com.example.fms.common.utils.JsonUtils;
- import com.example.fms.common.utils.RedisUtil;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- import java.util.List;
- @Service
- @RequiredArgsConstructor
- public class FileChuckService {
- private final RedisUtil redisUtil;
- public Boolean startChunks(UploadChuckDTO uploadChuckDTO) {
- String md5 = uploadChuckDTO.getMd5();
- if (md5 == null) {
- return false;
- }
- UploadChuckVO uploadChuckVO = new UploadChuckVO();
- uploadChuckVO.setOrginName(uploadChuckDTO.getFileName());
- String exrName = FileUtil.extName(uploadChuckDTO.getFileName());
- String fileName = IdUtil.simpleUUID() + "." + exrName;
- uploadChuckVO.setFileName(fileName);
- uploadChuckVO.setExrName(exrName);
- uploadChuckVO.setSourceId(uploadChuckDTO.getSourceId());
- List<ConfigSettingVO> configSettingVOS = ExcuteConfigUtils.excuteConfigVO();
- //2.根据传入id,获得配置类,根据配置类中的id去匹配sourceId来选择使用的上传方法
- ConfigSettingVO configSettingVO = configSettingVOS.stream().filter(item -> item.getId().equals(uploadChuckVO.getSourceId())).findFirst().orElse(null);
- String filePath = FileUtils.getDateFilePath(configSettingVO.getFilePath());
- uploadChuckVO.setFilePath(filePath);
- String key = this.getTemFileMessageKey(uploadChuckDTO.getMd5());
- String jsons = JSONObject.toJSONString(uploadChuckVO);
- redisUtil.set(key, jsons);
- return true;
- }
- public String getTemFileMessageKey(String md5) {
- String key = RedisConf.TEM_FILE_MESSAGE + RedisConf.SYMBOL_COLON + md5;
- return key;
- }
- public UploadChuckVO getTemFileMessage(String md5) {
- String key = this.getTemFileMessageKey(md5);
- String jsons = redisUtil.get(key);
- if (jsons == null) {
- return null;
- }
- UploadChuckVO uploadChuckVO = JsonUtils.jsonToPojo(jsons, UploadChuckVO.class);
- return uploadChuckVO;
- }
- public void removeTemFileMessage(String md5) {
- String key = this.getTemFileMessageKey(md5);
- redisUtil.delete(key);
- }
- }
|