分享

WEB应用前后端分离实践 关键词:rest架构+跨域访问+JWT校验

 WindySky 2017-09-17
             /** 
    * @Title: uploadFileCheck 
    * @Description: TODO(这里用一句话描述这个方法的作用) 
    * @param @param fileInputStream
    * @param @param disposition
    * @param @param request
    * @param @return    设定文件 
    * @return String    返回类型 
    * @throws 
    */
    @POST
    @Path("/uploadFileCheck")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    @Produces(MediaType.TEXT_PLAIN)
    public Response uploadTemp( @FormDataParam("updateLicense"final InputStream uploadedInputStream,
            @FormDataParam("updateLicense"final FormDataContentDisposition fileDetail,
            @FormDataParam"surplusCount"final List<FormDataBodyPart> keywordObjs,@Context HttpServletRequest request ) {
        String fileName = Calendar.getInstance().getTimeInMillis()+ fileDetail.getFileName();  
        ZyUploadLicenseFileResponseVo zyUploadLicenseFileResponseVo = new ZyUploadLicenseFileResponseVo();
        ZyUploadLicenseFileRequestVo zyUploadLicenseFileRequestVo = new ZyUploadLicenseFileRequestVo();
        if (keywordObjs != null && ! keywordObjs.isEmpty()) {
           for (FormDataBodyPart keywordObj : keywordObjs) {
               String keyName = keywordObj.getName();
               if("surplusCount".equals(keyName)){
                   zyUploadLicenseFileRequestVo.setSurplusCount(keywordObj.getValueAs(String.class));
                   break;
               }
           }
        }
        String accessToken = TokenUtil.getAccessToken(request.getHeader("auth_token"),KeyUtil.getKey(context));
        Key key= KeyUtil.getKey(context);
        if (TokenUtil.isValid(accessToken,key)){
            zyUploadLicenseFileRequestVo.setInputStream(uploadedInputStream);
            zyUploadLicenseFileRequestVo.setFileName(fileName);
            zyUploadLicenseFileResponseVo= zyLicenseApiService.uploadBatchExcel(zyUploadLicenseFileRequestVo);
        }else{
            zyUploadLicenseFileResponseVo.setCode(Constants.AUTH_RESULT_FILE_SESSIONOUT);
            zyUploadLicenseFileResponseVo.setDesc("Session is out!");
        }
        logger.info("The responseJsonObject:" + JSONObject.toJSONString(zyUploadLicenseFileResponseVo));
        return Response.status(200).entity(JSONObject.toJSONString(zyUploadLicenseFileResponseVo)).type(new MediaType(CommonStr.APPLICATION, CommonStr.JSON, CommonStr.UTF8)).build();
    }
@Override
    public ZyUploadLicenseFileResponseVo uploadBatchExcel(ZyUploadLicenseFileRequestVo zyUploadLicenseFileRequestVo) {
        ZyUploadLicenseFileResponseVo zyUploadLicenseFileResponseVo = new ZyUploadLicenseFileResponseVo();
//  参数有误
        if (!zyUploadLicenseFileRequestVo.isValid()) {
                logger.error("The argument is null!");
                zyUploadLicenseFileResponseVo.setCode(Constants.AUTH_RESULT_FILE_2001);
                zyUploadLicenseFileResponseVo.setDesc("The argument is invalid!!");
                return zyUploadLicenseFileResponseVo;
        }
        String fileName = zyUploadLicenseFileRequestVo.getFileName();
        List licenseInfo = new ArrayList<String>();
        if(!fileName.contains("xls")){
            logger.error("The fileName[{}]  is error!", fileName);
            zyUploadLicenseFileResponseVo.setCode(Constants.UPLOAD_FAILE_9002);
            zyUploadLicenseFileResponseVo.setDesc("The file fomart is faile!!");
            return zyUploadLicenseFileResponseVo;
        }
        try {
            workbook = new XSSFWorkbook(zyUploadLicenseFileRequestVo.getInputStream());
            XSSFSheet sheet = workbook.getSheetAt(0);   //获取第一个sheet
            int rows = sheet.getPhysicalNumberOfRows();//行数
            int cols = sheet.getRow(1).getPhysicalNumberOfCells();//列数
            if(cols != 2){
                logger.error("The file fomart is faile!");
                zyUploadLicenseFileResponseVo.setCode(Constants.UPLOAD_FAILE_9002);
                zyUploadLicenseFileResponseVo.setDesc("文件格式错误!!");
                return zyUploadLicenseFileResponseVo;
            }
            //校验上传的excel是否为标准模版
            if(rows>0){
                //有数据
                for(int i=3;i<rows;i++){
                    //从第四行开始检索
                    String tempLicense = String.valueOf(sheet.getRow(i).getCell(1));
                    if(tempLicense.length()<=32){
                        licenseInfo.add(tempLicense);
                    }
                }
            }
            int surplusLicenseInt = Integer.parseInt(zyUploadLicenseFileRequestVo.getSurplusCount());
            zyUploadLicenseFileResponseVo.setCode(Constants.AUTH_RESULT_SUCCESS);
            zyUploadLicenseFileResponseVo.setDesc("Upload File Success!");
            zyUploadLicenseFileResponseVo.createInstanceData().setLicenseList(licenseInfo);
            return zyUploadLicenseFileResponseVo;
        catch (IOException e) {
            e.printStackTrace();
            logger.error("解析上传文件失败!");
            zyUploadLicenseFileResponseVo.setCode(Constants.UPLOAD_FAILE_9002);
            zyUploadLicenseFileResponseVo.setDesc("解析上传文件失败!");
            return zyUploadLicenseFileResponseVo;
        
    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约