一 Controller层
/**
* 新增数据
*/
@PostMapping
@ApiOperation("新增数据")
public RequestDataDTO<Object> add(@ModelAttribute SoftwareVersionManagementDTO versionManagementDTO) {
return RequestDataDTO.buildSuccess(this.softwareVersionManagementService.insert(versionManagementDTO));
}
二ServiceImol业务层
/**
* 新增数据
* @param softwareVersionManagementDTO
* @return
*/
@Override
public SoftwareVersionManagementDTO insert(SoftwareVersionManagementDTO softwareVersionManagementDTO) {
if(StringUtils.isEmpty(softwareVersionManagementDTO.getVersionNumber())){
throw new RuntimeException("请输入版本号");
}
if(StringUtils.isEmpty(softwareVersionManagementDTO.getVersionDescription())){
throw new RuntimeException("请输入版本描述");
}
LambdaQueryWrapper<SoftwareVersionManagementEntity> query = new LambdaQueryWrapper<>();
query.eq(SoftwareVersionManagementEntity::getVersionNumber,softwareVersionManagementDTO.getVersionNumber());
Integer num = softwareVersionManagementMapper.selectCount(query);
if(num>0){
throw new RuntimeException("版本号不能重复");
}
MultipartFile file = softwareVersionManagementDTO.getFile();
if(file==null || file.isEmpty()){
throw new RuntimeException("文件为空,或者文件内容为空");
}
String originalFilename = file.getOriginalFilename();
String[] names = originalFilename.split("\\.");
if (!names[names.length - 1].equals("zip")) {
throw new RuntimeException("文件格式错误,请重新上传!");
}
String newFileName=softwareVersionManagementDTO.getVersionNumber()+"zip";//新文件名
try{
//复制文件
File targetFile = new File("./file",newFileName);
FileUtils.writeByteArrayToFile(targetFile,file.getBytes());
}catch(IOException e){
e.printStackTrace();
}
softwareVersionManagementDTO.setCreateDate(System.currentTimeMillis());
softwareVersionManagementDTO.setDeleted(0);
softwareVersionManagementDTO.setFileName(newFileName);
SoftwareVersionManagementEntity softwareVersionManagementEntity = new SoftwareVersionManagementEntity();
BeanUtils.copyProperties(softwareVersionManagementDTO,softwareVersionManagementEntity);
int count = softwareVersionManagementMapper.insert(softwareVersionManagementEntity);
System.out.println(count);
softwareVersionManagementDTO.setFile(null);//把文件设置为空返回
return softwareVersionManagementDTO;
}