文件或附件上传与回显,Springboot JAVA后端实现

一、上传

1.前端页面

在这里插入图片描述
我们看到需要添加多张图片跟多个附件,于是需要我们进行相关的附件上传处理。

2.后端代码实现

1.DTO入参

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@ApiModel("房屋修改编辑")
public class RoomDto {
    
    
   
    /**
     * 房屋图片
     */
    @Size(max = 5,message = "数量不能超过5个")
    @ApiModelProperty("房屋图片")
    private List<FileDTO> filePictureVo;
    /**
     * 房屋附件
     */
    @Size(max = 5,message = "数量不能超过5个")
    @ApiModelProperty("附件")
    private List<FileDTO> fileVo;
}

2.业务代码

public int editRoom(String id, RoomDto dto) {
    
    
        BuildingRoom buildingRoom = buildingRoomMapper.selectById(id);
        Assert.isTrue(buildingRoom != null, "房间信息不存在");
        //将传参的dto一部分内容转到room实体中,进行数据的修改
        BeanUtils.copyProperties(dto, buildingRoom);
        int i = buildingRoomMapper.updateById(buildingRoom);
        //将原始传参的dto拿出,将图片和文件拿出来,同时调用file接口
        String subjectId = buildingRoom.getId();  //关联主体id
        String subjectTypePicture = File.TYPE_BUILDING_ROOM_PICTURE;  //关联类型是图片
        String subjectTypeFj = File.TYPE_BUILDING_ROOM_FILE;  //关联类型是附件
        fileService.deleteBySubjectId(id);
        if (ObjectUtil.isNotEmpty(dto.getFilePictureVo())) {
    
    
            fileService.insertFile(subjectTypePicture, subjectId, dto.getFilePictureVo()); //图片
        }
        if (ObjectUtil.isNotEmpty(dto.getFileVo())) {
    
    
            fileService.insertFile(subjectTypeFj, subjectId, dto.getFileVo());  //附件
        }
        return i;
    }

3.附件处理代码

@Override
    @Transactional(rollbackFor = Exception.class)
    public void insertFile(String subjectType,String subjectId,List<FileDTO> files){
    
    
        Assert.isTrue(StringUtils.isNotBlank(subjectType)&&StringUtils.isNotBlank(subjectId),"来源不能为空");
        if(!CollectionUtils.isEmpty(files)){
    
    
            List<File> fileBeans = Lists.newArrayList();
            for (FileDTO f : files) {
    
    
                File file = new File();
                BeanUtils.copyProperties(f,file);
                file.setSubjectType(subjectType);
                file.setSubjectId(subjectId);
                file.setDeleteStatus(Constants.DELETE_STATUS_NORMAL);
                fileBeans.add(file);
            }
            this.saveBatch(fileBeans);
        }
    }

最后成功将其添加到文件数据库中

二、回显

1.VO出参

/**
     * 图片
     */
    @ApiModelProperty("图片文件")
    private List<FileVo> filePictureVo;

    /**
     * 文件
     */
    @ApiModelProperty("文件")
    private List<FileVo> fileVo;

2.业务代码

List<FileVo> file = fileService.selectFileListBySubjectTypeAndSubjectId(File.TYPE_BUILDING_ROOM_FILE, id);
        List<FileVo> filePicture = fileService.selectFileListBySubjectTypeAndSubjectId(File.TYPE_BUILDING_ROOM_PICTURE,id);
        buildingRoomInformation.setFilePictureVo(filePicture);
        buildingRoomInformation.setFileVo(file);

3.附件处理代码

public List<FileVo> selectFileListBySubjectTypeAndSubjectId(String subjectType, String subjectId) {
    
    
        return mapper.selectFileListBySubjectId(subjectId,subjectType);
    }

成功拿到相关的附件

猜你喜欢

转载自blog.csdn.net/qq_45780016/article/details/126056619