springboot 多文件多参数上传实现

/** * 重构上传身份证刷卡记录api */ @RequestMapping(value = "/cardInfo",method = RequestMethod.POST) @ResponseBody @Transactional(rollbackFor=Exception.class) @ApiOperation(value = "重构上传身份证刷卡记录api接口", httpMethod = "POST") public Result<Boolean> uploadCardInfo(HttpServletRequest request) { List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file"); if (files == null || files.size() <2) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String ipPort = getLocalIpPort(); String macAddress=request.getParameter("macAddress"); if (macAddress == null || "".equals(macAddress)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String name=request.getParameter("name"); if (null == name || "".equals(name)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String sex=request.getParameter("sex"); if (null == sex || "".equals(sex)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String nation=request.getParameter("nation"); if (null == nation || "".equals(nation)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String birthday=request.getParameter("birthday"); if (null == birthday || "".equals(birthday)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String address=request.getParameter("address"); if (null == address || "".equals(address)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String idcardNo=request.getParameter("idcardNo"); if (null == idcardNo || "".equals(idcardNo)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String signOrganization=request.getParameter("signOrganization"); if (null == signOrganization || "".equals(signOrganization)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String validDate=request.getParameter("validDate"); if (null == validDate || "".equals(validDate)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String expireDate=request.getParameter("expireDate"); if (null == expireDate || "".equals(expireDate)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String signDate=request.getParameter("signDate"); if (null == signDate || "".equals(signDate)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String tel=request.getParameter("tel"); if (null == tel || "".equals(tel)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } String threshold=request.getParameter("threshold"); if (null == threshold || "".equals(threshold)) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } //pixel 截图需要的像素点 String[] pixel=request.getParameterValues("pixel"); if (null == pixel || pixel.length<4) { return ResultUtil.failWithMsg(ErrorCode.MISSINGPARAM); } // 检测这个设备是否正常 TMDevice device = deviceService.getByMacAddress(macAddress); if (device == null) { device = new TMDevice(); device.setCustomerId(0l); device.setMacAddress(macAddress); device.setDeviceType(1l); Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); device.setDeviceName(hour + "点"+ minute + "分新增的设备"); device.setAddTime(new Date()); device.setLastLogin(new Date()); device.setStatus(1L); device.setIsDelete(0l); device.setIsNeedPhone(0l); if (deviceService.addDevice(device)) { device = deviceService.getByMacAddress(macAddress); device.setDeviceCode("SN.1" + String.format("%07d", device.getDeviceId())); deviceService.updateDevice(device); } } TMDevice tInfoDevice = device; return new ApiCall<Boolean>() { @Override protected Boolean process() throws BizException { try { // 保存访客信息 TMVisitor tmVisitor = tInfoVisitorService.findByIdcardNo(idcardNo, validDate); if (tmVisitor == null) { String birth = birthday .replaceAll("年","-") .replaceAll("月","-") .replaceAll("日",""); tmVisitor = new TMVisitor(); tmVisitor.setName(name); tmVisitor.setSex(Long.parseLong(sex)); tmVisitor.setNation(nation); tmVisitor.setBirthday(Timestamp.valueOf(birth + " 00:00:00")); tmVisitor.setAddress(address); tmVisitor.setIdCard(idcardNo); tmVisitor.setDepart(signOrganization); tmVisitor.setValidStart(Timestamp.valueOf(validDate + " 00:00:00")); tmVisitor.setValidEnd(Timestamp.valueOf(expireDate + " 00:00:00")); tmVisitor.setAddTime(new Timestamp(System.currentTimeMillis())); tmVisitor.setCustomerId(tInfoDevice.getCustomerId()); //上传头像 String name = fileUploadUtil.uploadImage(files.get(0), rootPath + headPath); tmVisitor.setHeaderUrl(ipPort + headPath + name); tInfoVisitorService.save(tmVisitor); long visitorId = tInfoVisitorService.getLastInsertId(); tmVisitor.setVisitorId(visitorId); } // 保存访客记录 TRecordVisitor tRecordVisitor = new TRecordVisitor(); tRecordVisitor.setDeviceId(tInfoDevice.getDeviceId()); tRecordVisitor.setOrgId(tInfoDevice.getOrgId()); tRecordVisitor.setPhone(tel); tRecordVisitor.setVisitorId(tmVisitor.getVisitorId()); //保存全景图路径 InputStream inputStream=null; try { inputStream=files.get(1).getInputStream(); } catch (IOException e) { e.printStackTrace(); } String picName = fileUploadUtil.uploadImage(files.get(1), rootPath + photoPath); tRecordVisitor.setVisitPicUrl(ipPort + photoPath + picName); //保存截图 String faceName= fileUploadUtil.cutImage(inputStream, rootPath + facePath,Integer.parseInt(pixel[0]) ,Integer.parseInt(pixel[1]),Integer.parseInt(pixel[2]),Integer.parseInt(pixel[3])); tRecordVisitor.setVisitFaceUrl(ipPort + facePath + faceName); tRecordVisitor.setPicCode("FK"+macAddress.replace(":","").toUpperCase()+System.currentTimeMillis()); tRecordVisitor.setCreateTime(new Date()); tRecordVisitor.setVisitTime(Timestamp.valueOf(signDate)); //tRecordVisitor.setVisitTime(new Date()); if(threshold != null) { tRecordVisitor.setThreshold(Float.parseFloat(threshold)); }else { tRecordVisitor.setThreshold(0f); } tRecordVisitor.setStatus(1); tRecordVisitor.setCustomerId(tInfoDevice.getCustomerId()); recordVisitorService.save(tRecordVisitor);return true; } catch (Exception e) { //访客照片上传失败! e.printStackTrace(); return false; } } }.execute(); }
好记性不如烂笔头
浙公网安备 33010602011771号