manage : 添加 素材库管理 功能
parent
c878f43e26
commit
6865e75177
@ -1,11 +1,12 @@
|
||||
package com.supervision.manage.service;
|
||||
|
||||
import com.supervision.model.FileResource;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public interface FileManageService {
|
||||
String uploadFile(MultipartFile multipartFile, String contentType) throws Exception;
|
||||
FileResource uploadFile(MultipartFile multipartFile, String contentType) throws Exception;
|
||||
|
||||
void downloadFile(String fileId, HttpServletResponse response) throws Exception;
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package com.supervision.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.model.MaterialLibrary;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
public interface MaterialLibraryManageService {
|
||||
|
||||
|
||||
/**
|
||||
* 上传素材库文件
|
||||
* @param multipartFile 文件内容
|
||||
* @param materialName 素材名
|
||||
* @param materialType 素材类型
|
||||
* @return 素材id
|
||||
*/
|
||||
String uploadMaterial(MultipartFile multipartFile, String materialName, String materialType) throws Exception;
|
||||
|
||||
IPage<MaterialLibrary> queryMaterialPage(String materialType, String materialName, Integer pageNum, Integer pageSize);
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package com.supervision.manage.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.supervision.manage.service.FileManageService;
|
||||
import com.supervision.manage.service.MaterialLibraryManageService;
|
||||
import com.supervision.model.FileResource;
|
||||
import com.supervision.model.MaterialLibrary;
|
||||
import com.supervision.service.MaterialLibraryService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MaterialLibraryManageServiceImpl implements MaterialLibraryManageService {
|
||||
|
||||
private final MaterialLibraryService materialLibraryService;
|
||||
|
||||
private final FileManageService fileManageService;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String uploadMaterial(MultipartFile multipartFile, String materialName, String materialType) throws Exception {
|
||||
// 校验素材名是否已经存在
|
||||
Assert.notEmpty(materialName, "素材名不能为空");
|
||||
Assert.notEmpty(materialType, "素材类型不能为空");
|
||||
Assert.isFalse(materialLibraryService.checkMaterialNameIfExist(materialName), "素材名已存在");
|
||||
|
||||
// 保存素材
|
||||
FileResource fileResource = fileManageService.uploadFile(multipartFile, multipartFile.getContentType());
|
||||
|
||||
MaterialLibrary materialLibrary = new MaterialLibrary();
|
||||
materialLibrary.setFileResourceId(fileResource.getId());
|
||||
materialLibrary.setMaterialType(materialType);
|
||||
materialLibrary.setMaterialName(materialName);
|
||||
materialLibraryService.save(materialLibrary);
|
||||
return materialLibrary.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<MaterialLibrary> queryMaterialPage(String materialType, String materialName, Integer pageNum, Integer pageSize) {
|
||||
|
||||
AbstractWrapper wrapper = materialLibraryService.lambdaQuery()
|
||||
.eq(StrUtil.isNotEmpty(materialType), MaterialLibrary::getMaterialType, materialType)
|
||||
.like(StrUtil.isNotEmpty(materialName), MaterialLibrary::getMaterialName, materialName).getWrapper();
|
||||
|
||||
return materialLibraryService.page(new Page<>(pageNum, pageSize),wrapper);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue