实现思路:
1. 两个接口实现,一个接对象数据(file),一个接文件数据(json)。
2. json对象(base64String) 实体类信息 ,请求体统一接收
3. file, String name ,String password ,String name ,
Controller层接收
统一接收类型
@PostMapping("/insertInfo")
public R<Void> insertInfo(MultipartFile [] file, ExFeedback exFeedback) {
return exFeedbackService.insertInfo(exFeedback, file);
}
业务批量添加代码
@Override
public R<Void> insertInfo(ExFeedback exFeedback, MultipartFile[] files) {
// 添加反馈内容表数据
int insert = exFeedbackMapper.insert(exFeedback);
// 循环遍历删除,添加图片数据
for (MultipartFile file : files) {
String fileName = file.getOriginalFilename();
try {
MinIOUtils.uploadFile(minIOConfig.getBucketName(), fileName, file.getInputStream());
} catch (Exception e) {
throw new RuntimeException(e);
}
// 图片url路径
String imgUrl = MinIOUtils.getBasisUrl() + fileName;
// 添加图片数据
ExImg exImg = new ExImg();
exImg.setFeedbackId(exFeedback.getId());
exImg.setImgUrl(imgUrl);
exImg.setImgName(fileName);
// 循环添加数据
exImgMapper.insert(exImg);
}
return R.success();
}
业务批量删除代码
@Override
public R<Void> removeByIdInfo(ExFeedback exFeedback) {
// 删除反馈内容
exFeedbackMapper.deleteById(exFeedback);
// 获取图片
List<ExImg> exImg = exImgMapper.selectList(new LambdaQueryWrapper<ExImg>().eq(ExImg::getFeedbackId, exFeedback.getId()));
// 循环遍历删除服务器图片
exImg.forEach(re -> {
try {
MinIOUtils.removeFile(minIOConfig.getBucketName(), re.getImgName());
} catch (Exception e) {
throw new RuntimeException("删除minio图片失败");
}
});
// 循环遍历删除
exImgMapper.deleteBatchIds(exImg);
return R.success();
}