资源文件上传
This commit is contained in:
parent
505f440af8
commit
e095e4e5a2
|
@ -1,9 +1,11 @@
|
|||
package org.dromara.file.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
@ -12,6 +14,8 @@ import org.dromara.file.domain.bo.SysOssResourceBo;
|
|||
import org.dromara.file.domain.vo.SysOssResourceVo;
|
||||
import org.dromara.file.mapper.SysOssResourceMapper;
|
||||
import org.dromara.file.service.ISysOssResourceService;
|
||||
import org.dromara.system.domain.vo.SysOssVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
|
@ -30,6 +34,8 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
|
|||
|
||||
private final SysOssResourceMapper baseMapper;
|
||||
|
||||
private final ISysOssService ossService;
|
||||
|
||||
/**
|
||||
* 查询【请填写功能名称】
|
||||
*
|
||||
|
@ -107,7 +113,14 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
|
|||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysOssResource entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
SysOssVo ossVo = ossService.getById(entity.getOssId());
|
||||
if (ObjectUtil.isNull(ossVo)) {
|
||||
throw new ServiceException("资源文件不存在");
|
||||
}
|
||||
SysOssResource ossResource = baseMapper.selectById(entity.getCatalogId());
|
||||
if (ObjectUtil.isNull(ossResource)) {
|
||||
throw new ServiceException("资源目录不存在");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package org.dromara.file.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
@ -12,6 +14,8 @@ import org.dromara.file.domain.bo.SysOssTextbookBo;
|
|||
import org.dromara.file.domain.vo.SysOssTextbookVo;
|
||||
import org.dromara.file.mapper.SysOssTextbookMapper;
|
||||
import org.dromara.file.service.ISysOssTextbookService;
|
||||
import org.dromara.system.domain.vo.SysOssVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
|
@ -30,6 +34,8 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
|
|||
|
||||
private final SysOssTextbookMapper baseMapper;
|
||||
|
||||
private final ISysOssService ossService;
|
||||
|
||||
/**
|
||||
* 查询【请填写功能名称】
|
||||
*
|
||||
|
@ -108,7 +114,14 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
|
|||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysOssTextbook entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
SysOssVo ossVo = ossService.getById(entity.getOssId());
|
||||
if (ObjectUtil.isNull(ossVo)) {
|
||||
throw new ServiceException("教材文件不存在");
|
||||
}
|
||||
SysOssTextbook ossTextbook = baseMapper.selectById(entity.getCatalogId());
|
||||
if (ObjectUtil.isNull(ossTextbook)) {
|
||||
throw new ServiceException("教材目录不存在");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
import org.dromara.common.core.domain.dto.OssDTO;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
|
@ -193,6 +194,11 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
|||
OssClient storage = OssFactory.instance();
|
||||
UploadResult uploadResult;
|
||||
try {
|
||||
String md5 = DigestUtils.md5Hex(file.getInputStream());
|
||||
Long ossId = this.getIdByMd5(md5);
|
||||
if(ObjectUtil.isNotNull(ossId)){
|
||||
return SpringUtils.getAopProxy(this).getById(ossId);
|
||||
}
|
||||
uploadResult = storage.uploadSuffix(file.getBytes(), suffix);
|
||||
} catch (IOException e) {
|
||||
throw new ServiceException(e.getMessage());
|
||||
|
@ -272,7 +278,6 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
|||
* @param md5 文件在数据库中的唯一标识
|
||||
* @return SysOssVo 对象,包含文件信息
|
||||
*/
|
||||
@Cacheable(cacheNames = CacheNames.SYS_OSS_IDENTIFIER, key = "#md5")
|
||||
@Override
|
||||
public Long getIdByMd5(String md5) {
|
||||
SysOss sysOss = baseMapper.selectOne(new LambdaQueryWrapper<SysOss>().eq(SysOss::getFileMd5, md5));
|
||||
|
|
Loading…
Reference in New Issue