package cn.lili.modules.lmk.service.impl;
|
|
import cn.lili.base.Result;
|
import cn.lili.common.exception.ServiceException;
|
import cn.lili.cos.CosSTS;
|
import cn.lili.modules.lmk.domain.entity.LmkFile;
|
import cn.lili.modules.lmk.domain.form.FileInfoForm;
|
import cn.lili.modules.lmk.domain.vo.LmkFileVO;
|
import cn.lili.modules.lmk.mapper.LmkFileMapper;
|
import cn.lili.modules.lmk.service.LmkFileService;
|
import cn.lili.utils.COSUtil;
|
import cn.lili.utils.FileUtil;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.List;
|
|
/**
|
* 文件信息 服务实现类
|
*
|
* @author xp
|
* @since 2025-05-19
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class LmkFileServiceImpl extends ServiceImpl<LmkFileMapper, LmkFile> implements LmkFileService {
|
|
private final LmkFileMapper lmkFileMapper;
|
private final COSUtil cosUtil;
|
|
|
@Override
|
public Result uploadObject(MultipartFile file) {
|
LmkFile fileInfo = FileUtil.getFileInfo(file);
|
try {
|
cosUtil.upload(file.getInputStream(), fileInfo);
|
lmkFileMapper.insert(fileInfo);
|
} catch (IOException e) {
|
e.printStackTrace();
|
throw new ServiceException("上传异常,请重试");
|
}
|
String url = cosUtil.getPreviewUrl(fileInfo.getFileKey());
|
LmkFileVO fileVo = new LmkFileVO().setUrl(url).setFileKey(fileInfo.getFileKey());
|
return Result.ok("上传成功").data(fileVo);
|
}
|
|
@Override
|
public Result uploadObjects(List<MultipartFile> files) {
|
return null;
|
}
|
|
@Override
|
public Result deleteObject(String fileKey) {
|
cosUtil.deleteFile(fileKey);
|
return Result.ok("删除成功");
|
}
|
|
@Override
|
public Result deleteObjects(List<String> fileKeys) {
|
cosUtil.deleteFiles(fileKeys);
|
return Result.ok("删除成功");
|
}
|
|
@Override
|
public void downloadObject(String fileKey, HttpServletResponse response) {
|
cosUtil.download(fileKey, response);
|
}
|
|
@Override
|
public String getPreviewUrl(String fileKey) {
|
return cosUtil.getPreviewUrl(fileKey);
|
}
|
|
@Override
|
public CosSTS getSTSToken() {
|
return cosUtil.getSTS();
|
}
|
|
@Override
|
@Transactional(propagation = Propagation.REQUIRED)
|
public void addByForm(FileInfoForm fileInfo) {
|
LmkFile file = new LmkFile();
|
BeanUtils.copyProperties(fileInfo, file);
|
baseMapper.insert(file);
|
}
|
}
|