实现思路:
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);}
业务批量添加代码
@Overridepublic 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();}
业务批量删除代码
@Overridepublic 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();}