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();
    }

 

posted on 2018-07-18 10:16  让代码飞  阅读(1995)  评论(0)    收藏  举报

导航

一款免费在线思维导图工具推荐:https://www.processon.com/i/593e9a29e4b0898669edaf7f?full_name=python