manage : 添加 素材库管理 功能

dev_2.1.0
xueqingkun 1 year ago
parent c878f43e26
commit 6865e75177

@ -1,6 +1,7 @@
package com.supervision.manage.controller.file;
import com.supervision.manage.service.FileManageService;
import com.supervision.model.FileResource;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -20,7 +21,8 @@ public class FileManageController {
@PostMapping("/uploadFile")
public String uploadFile(@RequestParam("file") MultipartFile multipartFile) throws Exception {
return fileManageService.uploadFile(multipartFile,multipartFile.getContentType());
FileResource fileResource = fileManageService.uploadFile(multipartFile, multipartFile.getContentType());
return fileResource.getId();
}

@ -0,0 +1,42 @@
package com.supervision.manage.controller.file;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.manage.service.MaterialLibraryManageService;
import com.supervision.model.MaterialLibrary;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@Api(tags = "素材库管理")
@RestController
@RequestMapping("/materialLibrary")
@RequiredArgsConstructor
public class MaterialLibraryManageController {
private final MaterialLibraryManageService materialLibraryManageService;
@ApiOperation("上传素材")
@PostMapping("/uploadMaterial")
public String uploadMaterial(@ApiParam("文件") @RequestParam("file") MultipartFile multipartFile,
@ApiParam("素材名长度小于64") @RequestParam("materialName") String materialName,
@ApiParam("素材类型 0:图片 1:视频 2:音频") @RequestParam("materialType") String materialType) throws Exception {
return materialLibraryManageService.uploadMaterial(multipartFile, materialName, materialType);
}
@ApiOperation("素材管理分页查询")
@GetMapping("queryMedicalRecPage")
public IPage<MaterialLibrary> queryMaterialPage(@ApiParam("素材类型 0:图片 1:视频 2:音频") @RequestParam("materialType") String materialType,
@ApiParam("素材名长度小于64") @RequestParam("materialName") String materialName,
@ApiParam("页码") @RequestParam(name="pageNum",defaultValue = "1") Integer pageNum,
@ApiParam("每页大小") @RequestParam(name="pageSize",defaultValue = "10")Integer pageSize) {
return materialLibraryManageService.queryMaterialPage(materialType, materialName, pageNum, pageSize);
}
}

@ -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);
}

@ -20,7 +20,7 @@ public class FileManageServiceImpl implements FileManageService {
private final FileResourceService fileResourceService;
@Override
public String uploadFile(MultipartFile multipartFile, String contentType) throws Exception {
public FileResource uploadFile(MultipartFile multipartFile, String contentType) throws Exception {
// 把文件上传到minio
String minoId = MinioUtil.uploadFile(multipartFile.getInputStream(), contentType);
@ -32,7 +32,7 @@ public class FileManageServiceImpl implements FileManageService {
fileResource.setFileType(contentType);
fileResourceService.save(fileResource);
return fileResource.getId();
return fileResource;
}
@Override

@ -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);
}
}

@ -1,8 +1,10 @@
package com.supervision.model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;
@ -36,17 +38,26 @@ public class MaterialLibrary implements Serializable {
/**
* ID
*/
@TableField(fill = FieldFill.INSERT)
private String createUserId;
/**
*
*/
private Date createTime;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
*
*/
private Date updateUserId;
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUserId;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;

@ -10,4 +10,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface MaterialLibraryService extends IService<MaterialLibrary> {
/**
*
* @param materialName
* @return true: false:
*/
boolean checkMaterialNameIfExist(String materialName);
}

@ -15,6 +15,12 @@ import org.springframework.stereotype.Service;
public class MaterialLibraryServiceImpl extends ServiceImpl<MaterialLibraryMapper, MaterialLibrary>
implements MaterialLibraryService {
@Override
public boolean checkMaterialNameIfExist(String materialName) {
return super.getBaseMapper()
.selectCount(this.lambdaQuery().eq(MaterialLibrary::getMaterialName, materialName).getWrapper()) > 0;
}
}

@ -11,12 +11,13 @@
<result property="materialType" column="material_type" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,file_resource_id,material_name,
material_type,create_user_id,create_time,
update_user_id
update_user_id,update_time
</sql>
</mapper>

Loading…
Cancel
Save