Search in sources :

Example 1 with JsonGenerationException

use of org.codehaus.jackson.JsonGenerationException in project hive by apache.

the class SQLOperation method getTaskStatus.

@Override
public String getTaskStatus() throws HiveSQLException {
    if (driver != null) {
        List<QueryDisplay.TaskDisplay> statuses = driver.getQueryDisplay().getTaskDisplays();
        if (statuses != null) {
            ByteArrayOutputStream out = null;
            try {
                ObjectMapper mapper = new ObjectMapper();
                out = new ByteArrayOutputStream();
                mapper.writeValue(out, statuses);
                return out.toString("UTF-8");
            } catch (JsonGenerationException e) {
                throw new HiveSQLException(e);
            } catch (JsonMappingException e) {
                throw new HiveSQLException(e);
            } catch (IOException e) {
                throw new HiveSQLException(e);
            } finally {
                if (out != null) {
                    try {
                        out.close();
                    } catch (IOException e) {
                        throw new HiveSQLException(e);
                    }
                }
            }
        }
    }
    // Driver not initialized
    return null;
}
Also used : HiveSQLException(org.apache.hive.service.cli.HiveSQLException) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) ByteArrayOutputStream(java.io.ByteArrayOutputStream) IOException(java.io.IOException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) ObjectMapper(org.codehaus.jackson.map.ObjectMapper)

Example 2 with JsonGenerationException

use of org.codehaus.jackson.JsonGenerationException in project nifi by apache.

the class WriteJsonResult method writeRecord.

private void writeRecord(final Record record, final RecordSchema writeSchema, final JsonGenerator generator, final GeneratorTask startTask, final GeneratorTask endTask, final boolean schemaAware) throws JsonGenerationException, IOException {
    final Optional<SerializedForm> serializedForm = record.getSerializedForm();
    if (serializedForm.isPresent()) {
        final SerializedForm form = serializedForm.get();
        if (form.getMimeType().equals(getMimeType()) && record.getSchema().equals(writeSchema)) {
            final Object serialized = form.getSerialized();
            if (serialized instanceof String) {
                generator.writeRawValue((String) serialized);
                return;
            }
        }
    }
    try {
        startTask.apply(generator);
        if (schemaAware) {
            for (final RecordField field : writeSchema.getFields()) {
                final String fieldName = field.getFieldName();
                final Object value = record.getValue(field);
                if (value == null) {
                    if (nullSuppression == NullSuppression.NEVER_SUPPRESS || (nullSuppression == NullSuppression.SUPPRESS_MISSING) && isFieldPresent(field, record)) {
                        generator.writeNullField(fieldName);
                    }
                    continue;
                }
                generator.writeFieldName(fieldName);
                final DataType dataType = writeSchema.getDataType(fieldName).get();
                writeValue(generator, value, fieldName, dataType);
            }
        } else {
            for (final String fieldName : record.getRawFieldNames()) {
                final Object value = record.getValue(fieldName);
                if (value == null) {
                    if (nullSuppression == NullSuppression.NEVER_SUPPRESS || (nullSuppression == NullSuppression.SUPPRESS_MISSING) && record.getRawFieldNames().contains(fieldName)) {
                        generator.writeNullField(fieldName);
                    }
                    continue;
                }
                generator.writeFieldName(fieldName);
                writeRawValue(generator, value, fieldName);
            }
        }
        endTask.apply(generator);
    } catch (final Exception e) {
        logger.error("Failed to write {} with schema {} as a JSON Object due to {}", new Object[] { record, record.getSchema(), e.toString(), e });
        throw e;
    }
}
Also used : RecordField(org.apache.nifi.serialization.record.RecordField) DataType(org.apache.nifi.serialization.record.DataType) ChoiceDataType(org.apache.nifi.serialization.record.type.ChoiceDataType) RecordDataType(org.apache.nifi.serialization.record.type.RecordDataType) MapDataType(org.apache.nifi.serialization.record.type.MapDataType) ArrayDataType(org.apache.nifi.serialization.record.type.ArrayDataType) SerializedForm(org.apache.nifi.serialization.record.SerializedForm) IOException(java.io.IOException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException)

Example 3 with JsonGenerationException

use of org.codehaus.jackson.JsonGenerationException in project nifi by apache.

the class WriteJsonResult method writeValue.

@SuppressWarnings("unchecked")
private void writeValue(final JsonGenerator generator, final Object value, final String fieldName, final DataType dataType) throws JsonGenerationException, IOException {
    if (value == null) {
        generator.writeNull();
        return;
    }
    final DataType chosenDataType = dataType.getFieldType() == RecordFieldType.CHOICE ? DataTypeUtils.chooseDataType(value, (ChoiceDataType) dataType) : dataType;
    final Object coercedValue = DataTypeUtils.convertType(value, chosenDataType, LAZY_DATE_FORMAT, LAZY_TIME_FORMAT, LAZY_TIMESTAMP_FORMAT, fieldName);
    if (coercedValue == null) {
        generator.writeNull();
        return;
    }
    switch(chosenDataType.getFieldType()) {
        case DATE:
            {
                final String stringValue = DataTypeUtils.toString(coercedValue, LAZY_DATE_FORMAT);
                if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
                    generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
                } else {
                    generator.writeString(stringValue);
                }
                break;
            }
        case TIME:
            {
                final String stringValue = DataTypeUtils.toString(coercedValue, LAZY_TIME_FORMAT);
                if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
                    generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
                } else {
                    generator.writeString(stringValue);
                }
                break;
            }
        case TIMESTAMP:
            {
                final String stringValue = DataTypeUtils.toString(coercedValue, LAZY_TIMESTAMP_FORMAT);
                if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
                    generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
                } else {
                    generator.writeString(stringValue);
                }
                break;
            }
        case DOUBLE:
            generator.writeNumber(DataTypeUtils.toDouble(coercedValue, fieldName));
            break;
        case FLOAT:
            generator.writeNumber(DataTypeUtils.toFloat(coercedValue, fieldName));
            break;
        case LONG:
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
            break;
        case INT:
        case BYTE:
        case SHORT:
            generator.writeNumber(DataTypeUtils.toInteger(coercedValue, fieldName));
            break;
        case CHAR:
        case STRING:
            generator.writeString(coercedValue.toString());
            break;
        case BIGINT:
            if (coercedValue instanceof Long) {
                generator.writeNumber(((Long) coercedValue).longValue());
            } else {
                generator.writeNumber((BigInteger) coercedValue);
            }
            break;
        case BOOLEAN:
            final String stringValue = coercedValue.toString();
            if ("true".equalsIgnoreCase(stringValue)) {
                generator.writeBoolean(true);
            } else if ("false".equalsIgnoreCase(stringValue)) {
                generator.writeBoolean(false);
            } else {
                generator.writeString(stringValue);
            }
            break;
        case RECORD:
            {
                final Record record = (Record) coercedValue;
                final RecordDataType recordDataType = (RecordDataType) chosenDataType;
                final RecordSchema childSchema = recordDataType.getChildSchema();
                writeRecord(record, childSchema, generator, gen -> gen.writeStartObject(), gen -> gen.writeEndObject(), true);
                break;
            }
        case MAP:
            {
                final MapDataType mapDataType = (MapDataType) chosenDataType;
                final DataType valueDataType = mapDataType.getValueType();
                final Map<String, ?> map = (Map<String, ?>) coercedValue;
                generator.writeStartObject();
                for (final Map.Entry<String, ?> entry : map.entrySet()) {
                    final String mapKey = entry.getKey();
                    final Object mapValue = entry.getValue();
                    generator.writeFieldName(mapKey);
                    writeValue(generator, mapValue, fieldName + "." + mapKey, valueDataType);
                }
                generator.writeEndObject();
                break;
            }
        case ARRAY:
        default:
            if (coercedValue instanceof Object[]) {
                final Object[] values = (Object[]) coercedValue;
                final ArrayDataType arrayDataType = (ArrayDataType) dataType;
                final DataType elementType = arrayDataType.getElementType();
                writeArray(values, fieldName, generator, elementType);
            } else {
                generator.writeString(coercedValue.toString());
            }
            break;
    }
}
Also used : AbstractRecordSetWriter(org.apache.nifi.serialization.AbstractRecordSetWriter) SchemaAccessWriter(org.apache.nifi.schema.access.SchemaAccessWriter) DataType(org.apache.nifi.serialization.record.DataType) ComponentLog(org.apache.nifi.logging.ComponentLog) Supplier(java.util.function.Supplier) ChoiceDataType(org.apache.nifi.serialization.record.type.ChoiceDataType) RawRecordWriter(org.apache.nifi.serialization.record.RawRecordWriter) RecordSchema(org.apache.nifi.serialization.record.RecordSchema) JsonGenerator(org.codehaus.jackson.JsonGenerator) Map(java.util.Map) BigInteger(java.math.BigInteger) DateFormat(java.text.DateFormat) Record(org.apache.nifi.serialization.record.Record) OutputStream(java.io.OutputStream) RecordField(org.apache.nifi.serialization.record.RecordField) RecordDataType(org.apache.nifi.serialization.record.type.RecordDataType) WriteResult(org.apache.nifi.serialization.WriteResult) DataTypeUtils(org.apache.nifi.serialization.record.util.DataTypeUtils) Set(java.util.Set) IOException(java.io.IOException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) JsonFactory(org.codehaus.jackson.JsonFactory) SerializedForm(org.apache.nifi.serialization.record.SerializedForm) MapDataType(org.apache.nifi.serialization.record.type.MapDataType) Optional(java.util.Optional) RecordSetWriter(org.apache.nifi.serialization.RecordSetWriter) RecordFieldType(org.apache.nifi.serialization.record.RecordFieldType) ArrayDataType(org.apache.nifi.serialization.record.type.ArrayDataType) MapDataType(org.apache.nifi.serialization.record.type.MapDataType) RecordDataType(org.apache.nifi.serialization.record.type.RecordDataType) DataType(org.apache.nifi.serialization.record.DataType) ChoiceDataType(org.apache.nifi.serialization.record.type.ChoiceDataType) RecordDataType(org.apache.nifi.serialization.record.type.RecordDataType) MapDataType(org.apache.nifi.serialization.record.type.MapDataType) ArrayDataType(org.apache.nifi.serialization.record.type.ArrayDataType) Record(org.apache.nifi.serialization.record.Record) ChoiceDataType(org.apache.nifi.serialization.record.type.ChoiceDataType) ArrayDataType(org.apache.nifi.serialization.record.type.ArrayDataType) RecordSchema(org.apache.nifi.serialization.record.RecordSchema) Map(java.util.Map)

Example 4 with JsonGenerationException

use of org.codehaus.jackson.JsonGenerationException in project portal by ixinportal.

the class BillWebController method showTwo.

/**
 * 订单详情
 *
 * @param id
 * @param uiModel
 * @param autoShowPfxMessage 从订单信息页面 点击下载证书跳转到下载证书页面,若为 1 自动弹出短信输入框,
 * @return
 */
@RequestMapping(value = "/bill/{id}.html", produces = "text/html")
public String showTwo(@PathVariable("id") Long id, Model uiModel, @RequestParam(value = "typenum", required = false) String typenum, @RequestParam(value = "num", required = false) Long num, @RequestParam(value = "updateAuditBill", required = false) String updateAuditBill, @RequestParam(value = "autoShowPfxMessage", required = false) String autoShowPfxMessage, HttpServletRequest request) {
    HttpSession session = request.getSession();
    Boolean verifyCodeStatus = (Boolean) session.getAttribute("webverifyCodeStatus");
    Enterprise enterprise = (Enterprise) session.getAttribute("webenterprise");
    UserInfo userInfo = (UserInfo) session.getAttribute("webuserInfo");
    List<Map> billAll = sqlSession.selectList("com.itrus.portal.db.BillMapper.selectDingdanByBill", id);
    if (billAll.size() == 0) {
        return "redirect:/userInfoWeb/denglu.html";
    }
    // 解析订单中uid信息{"ADDTIONAL_FIELD1_1":"","ADDTIONAL_FIELD3_1":"","ADDTIONAL_FIELD4_1":"G2016071301","inputName":"inputValue"}\
    Bill bill = billService.getBill(id);
    if (null != bill.getUid()) {
        uiModel.addAttribute("uid", bill.getUid().toString());
    }
    if (null != bill.getUid1()) {
        uiModel.addAttribute("uid1", bill.getUid1().toString());
    }
    if (null != bill.getUid2()) {
        uiModel.addAttribute("uid2", bill.getUid2().toString());
    }
    if (null != bill.getUid3()) {
        uiModel.addAttribute("uid3", bill.getUid3().toString());
    }
    /*if(!bill.getUid().equals("{}")){
			List<String> listStr = new ArrayList<String>();
			JSONObject uid = JSONObject.parseObject(bill.getUid().toString());
			for(int i= 0; i< (int)bill.getProductNum();i++){
				//uiModel.addAttribute("uid"+ (i+1), uid.get(("ADDTIONAL_FIELD"+ (i+ 1)) + "_1"));
				listStr.add(uid.get(("ADDTIONAL_FIELD1_"+ (i+ 1))).toString());
			}
			uiModel.addAttribute("listStr", listStr);
		}*/
    // 得到证书信息项
    Product pdt = productService.getProductById(bill.getProduct());
    uiModel.addAttribute("pdt", pdt);
    if (pdt.getCertinfo() != null) {
        uiModel.addAttribute("certinfoStr", escapeTool.javascript(pdt.getCertinfo()));
    } else {
        uiModel.addAttribute("certinfoStr", "[]");
    }
    PayInfoExample payInfoex = new PayInfoExample();
    Map<Long, PayInfo> payinfoMap = sqlSession.selectMap("com.itrus.portal.db.PayInfoMapper.selectByExample", payInfoex, "id");
    uiModel.addAttribute("payinfomap", payinfoMap);
    String descript = billAll.get(0).get("descript").toString().replace("\r\n", "<br/>");
    uiModel.addAttribute("descript", descript);
    // 如配置了产品规格,则将产品规格返回:产品期限、产品描述
    if (billAll.get(0).containsKey("product_spec") && !"0".equals(billAll.get(0).get("product_spec"))) {
        ProductSpec productSpec = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec"));
        descript = "产品期限:" + productSpec.getProductValid() + "年<br/>" + "产品描述:" + productSpec.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript", descript);
    }
    // 组合产品以及产品规格以及证书信息项
    String descript1 = "";
    String descript2 = "";
    String descript3 = "";
    if (billAll.get(0).containsKey("product_spec1") && !"0".equals(billAll.get(0).get("product_spec1"))) {
        ProductSpec productSpec1 = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec1"));
        descript1 = "产品期限:" + productSpec1.getProductValid() + "年<br/>" + "产品描述:" + productSpec1.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript1", descript1);
    }
    if (billAll.get(0).containsKey("product_spec2") && !"0".equals(billAll.get(0).get("product_spec2"))) {
        ProductSpec productSpec2 = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec2"));
        descript2 = "产品期限:" + productSpec2.getProductValid() + "年<br/>" + "产品描述:" + productSpec2.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript2", descript2);
    }
    if (billAll.get(0).containsKey("product_spec3") && !"0".equals(billAll.get(0).get("product_spec3"))) {
        ProductSpec productSpec3 = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec3"));
        descript3 = "产品期限:" + productSpec3.getProductValid() + "年<br/>" + "产品描述:" + productSpec3.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript3", descript3);
    }
    if (null != bill.getProduct1()) {
        Product product1 = productService.getProductById(bill.getProduct1());
        uiModel.addAttribute("product1", product1);
        if (product1.getCertinfo() != null) {
            uiModel.addAttribute("certinfoStr1", escapeTool.javascript(product1.getCertinfo()));
        } else {
            uiModel.addAttribute("certinfoStr1", "[]");
        }
    }
    if (null != bill.getProduct2()) {
        Product product2 = productService.getProductById(bill.getProduct2());
        uiModel.addAttribute("product2", product2);
        if (product2.getCertinfo() != null) {
            uiModel.addAttribute("certinfoStr2", escapeTool.javascript(product2.getCertinfo()));
        } else {
            uiModel.addAttribute("certinfoStr2", "[]");
        }
    }
    if (null != bill.getProduct3()) {
        Product product3 = productService.getProductById(bill.getProduct3());
        uiModel.addAttribute("product3", product3);
        if (product3.getCertinfo() != null) {
            uiModel.addAttribute("certinfoStr3", escapeTool.javascript(product3.getCertinfo()));
        } else {
            uiModel.addAttribute("certinfoStr3", "[]");
        }
    }
    if (null == verifyCodeStatus || !verifyCodeStatus || null == userInfo || !(billAll.get(0).get("enterprise").equals(enterprise.getId()))) {
        // 登录状态失效,跳转到登录页面
        return "redirect:/userInfoWeb/denglu.html";
    }
    // 获取订单在线支付方式
    if (billAll.get(0).get("on_pay_info") != null) {
        Map<Long, OnPayInfo> opiMap = sqlSession.selectMap("com.itrus.portal.db.OnPayInfoMapper.selectByExample", "id");
        uiModel.addAttribute("opiMap", opiMap);
        Map<Long, OnlinePay> opMap = sqlSession.selectMap("com.itrus.portal.db.OnlinePayMapper.selectByExample", "id");
        uiModel.addAttribute("opMap", opMap);
    }
    // 获取产品的认证等级需要认证的项
    Certification certification = sqlSession.selectOne("com.itrus.portal.db.CertificationMapper.selectByPrimaryKey", billAll.get(0).get("authentication"));
    List<Map> courierinfos = new ArrayList<Map>();
    if (billAll.get(0).get("delivery") != null) {
        courierinfos = sqlSession.selectList("com.itrus.portal.db.CourierInfoMapper.selectItemsByCourierInfo", billAll.get(0).get("id"));
        uiModel.addAttribute("courierinfos", courierinfos);
    }
    Map<Long, Receipt> receiptmap = sqlSession.selectMap("com.itrus.portal.db.ReceiptMapper.selectByExample", null, "id");
    Map<Long, Ereceipt> ereceiptmap = sqlSession.selectMap("com.itrus.portal.db.EreceiptMapper.selectByExample", null, "id");
    Map<Long, DigitalCert> certmap = sqlSession.selectMap("com.itrus.portal.db.DigitalCertMapper.selectByExample", null, "id");
    // 判断订单对应的产品是否配置有数字证书
    Product product = productService.getProductById((Long) billAll.get(0).get("product"));
    if (null == product.getCert()) {
        uiModel.addAttribute("billhasnotcert", 1);
        // 判断无数字证书的订单是否需要配送
        if (null != billAll.get(0).get("delivery")) {
            uiModel.addAttribute("billneedtodelivery", 1);
        } else {
            uiModel.addAttribute("billneedtodelivery", 0);
        }
    } else {
        uiModel.addAttribute("billhasnotcert", 0);
    }
    // 根据省市区code值获取省市区最新名称
    String regionCodes = billAll.get(0).get("d_codes") == null ? "" : billAll.get(0).get("d_codes").toString();
    String detailAdds = billAll.get(0).get("d_adds") == null ? "" : billAll.get(0).get("d_adds").toString();
    if (StringUtils.isNotBlank(regionCodes) && regionCodes.indexOf("@") >= 0) {
        String[] codes = regionCodes.split("@");
        String regionName = sysRegionService.getAllName(codes[1], codes[2], codes[3]);
        detailAdds = regionName + detailAdds;
    }
    uiModel.addAttribute("detailAdd", detailAdds);
    if (null != billAll.get(0).get("u_adds")) {
        String regionCodes1 = billAll.get(0).get("u_codes").toString();
        String detailAdds1 = billAll.get(0).get("u_adds").toString();
        if (StringUtils.isNotBlank(regionCodes1) && regionCodes1.indexOf("@") >= 0) {
            String[] codes1 = regionCodes1.split("@");
            String regionName1 = sysRegionService.getAllName(codes1[1], codes1[2], codes1[3]);
            detailAdds1 = regionName1 + detailAdds1;
        }
        uiModel.addAttribute("detailAdd1", detailAdds1);
    }
    int num1 = 0;
    if (num != null) {
        num1 = Integer.parseInt(num.toString());
    }
    // 该订单是否有价格优惠记录
    PreferentialRecord pr = preferentialRecordService.selectPreferentialRecordSByBillId(id);
    if (null != pr) {
        // 原价
        Double originalCost = pr.getOriginalPrice();
        // 优惠价
        Double preCost = pr.getPreferentialPrice();
        uiModel.addAttribute("originalCost", originalCost);
        uiModel.addAttribute("preCost", preCost);
    }
    uiModel.addAttribute("num", num1);
    uiModel.addAttribute("billAll", billAll);
    uiModel.addAttribute("receiptmap", receiptmap);
    uiModel.addAttribute("ereceiptmap", ereceiptmap);
    uiModel.addAttribute("certmap", certmap);
    uiModel.addAttribute("certification", certification);
    uiModel.addAttribute("product", product);
    // 根据订单id返回签章模版
    try {
        makeSeal((Long) billAll.get(0).get("id"), uiModel);
    } catch (EncDecException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    if (typenum == null)
        typenum = "0";
    // 判断是否是审核中进入的订单修改页面
    if (StringUtils.isNotBlank(updateAuditBill) && updateAuditBill.equals("1")) {
        // 判断订单状态是否1,2,3,10
        List<Integer> modifiedStatus = new ArrayList<Integer>();
        modifiedStatus.add(ComNames.BILL_STATUS_1);
        modifiedStatus.add(ComNames.BILL_STATUS_2);
        modifiedStatus.add(ComNames.BILL_STATUS_3);
        modifiedStatus.add(ComNames.BILL_STATUS_10);
        // 不在以上状态中
        if (modifiedStatus.indexOf(billAll.get(0).get("bill_status")) == -1) {
            // 重定向
            return "redirect:/billWeb/bill/" + id + ".html";
        }
        return "ixinweb/dingdanxiangqing_shenhezhong_chongxintijiao";
    }
    // 审核记录
    ReviewLog reviewLog = reviewLogService.getReviewLog(id);
    if (reviewLog != null) {
        uiModel.addAttribute("reviewLog", reviewLog);
    }
    // 支付待确认时间
    if (billAll.get(0).get("pay_info") != null) {
        List<PayInfo> pays = sqlSession.selectList("com.itrus.portal.db.PayInfoMapper.selectByPrimaryKey", billAll.get(0).get("pay_info"));
        PayInfo dp = pays.get(0);
        uiModel.addAttribute("pay_time", dp.getCreateTime());
        uiModel.addAttribute("pay_confirm_time", dp.getPayConfirmTime());
    }
    // 判断订单状态
    if (billAll.get(0).get("bill_status").equals(1) || billAll.get(0).get("bill_status").equals(2)) {
        // 更新证书前 ,显示旧证书
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            Object[] info = getCertInfo(oldUserCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("oldUserCert", oldUserCert);
            // 根据订单id返回签章模版
            try {
                makeSeal(oldUserCert.getBill(), uiModel);
            } catch (EncDecException e1) {
                e1.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        return "ixinweb/dingdanxiangqing_daizhifu";
    } else if (billAll.get(0).get("bill_status").equals(3) || billAll.get(0).get("bill_status").equals(4) || billAll.get(0).get("bill_status").equals(11) || billAll.get(0).get("bill_status").equals(10)) {
        // 更新证书前 ,显示旧证书
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            Object[] info = getCertInfo(oldUserCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("oldUserCert", oldUserCert);
            // 根据订单id返回签章模版
            try {
                makeSeal(oldUserCert.getBill(), uiModel);
            } catch (EncDecException e1) {
                e1.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        if (billAll.get(0).get("bill_status").equals(11)) {
            PayInfo payinfo = sqlSession.selectOne("com.itrus.portal.db.PayInfoMapper.selectByPrimaryKey", billAll.get(0).get("pay_info"));
            uiModel.addAttribute("payinfo", payinfo);
        }
        if (Integer.parseInt(typenum) == 1) {
            if (null != product && product.getProject() != null) {
                EnterpriseQqExample enterpriseE = new EnterpriseQqExample();
                EnterpriseQqExample.Criteria qqEx = enterpriseE.createCriteria();
                qqEx.andProjectIdEqualTo(product.getProject());
                EnterpriseQq enterpriseqq = sqlSession.selectOne("com.itrus.portal.db.EnterpriseQqMapper.selectByExample", enterpriseE);
                if (enterpriseqq != null && enterpriseqq.getEnterpriseQqLinks() != null) {
                    uiModel.addAttribute("enterpriseqq", enterpriseqq.getEnterpriseQqLinks());
                    session.setAttribute("enterpriseqqE", enterpriseqq.getEnterpriseQqLinks());
                }
            }
            return "ixinweb/dingdanxiangqing_chongxintijiao";
        } else {
            return "ixinweb/dingdanxiangqing_dengdaishenhe";
        }
    } else if (billAll.get(0).get("bill_status").equals(12)) {
        // 待更新
        List<UserCert> userCerts = sqlSession.selectList("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
        if (userCerts.size() > 0) {
            UserCert userCert = userCerts.get(0);
            Object[] info = getCertInfo(userCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("userCert", userCerts.get(0));
            // 根据订单id返回签章模版
            try {
                makeSeal(userCert.getBill(), uiModel);
            } catch (EncDecException e1) {
                e1.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        return "ixinweb/dingdanxiangqing_gengxinshenhetongguo";
    } else if (billAll.get(0).get("bill_status").equals(5) || billAll.get(0).get("bill_status").equals(6) || billAll.get(0).get("bill_status").equals(7)) {
        // 初购产品 已制证 在订单详情显示 证书信息
        if ((Integer) billAll.get(0).get("bill_status") >= 6) {
            List<String> certStatus = new ArrayList<String>();
            List<UserCert> certs = userCertService.getUserCertByBill(id, certStatus);
            if (certs != null && certs.size() > 0) {
                certStatus.add(ComNames.CERT_STATUS_1);
                certStatus.add(ComNames.CERT_STATUS_2);
                UserCert userCert = certs.get(0);
                Object[] info = getCertInfo(userCert);
                uiModel.addAttribute("remainingDays", info[0]);
                uiModel.addAttribute("owner", info[1]);
                uiModel.addAttribute("userCert", userCert);
            }
        }
        // 返回老证书序列号
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            uiModel.addAttribute("oldCertSn", oldUserCert.getCertSn());
            try {
                List<String> allIssUerDn = new ArrayList<String>();
                allIssUerDn = sqlSession.selectList("com.itrus.portal.db.CrlContextMapper.selectAllIssUerDn");
                uiModel.addAttribute("allIssUerDn", jsonTool.writeValueAsString(allIssUerDn));
                makeSeal(oldUserCert.getBill(), uiModel);
            } catch (JsonGenerationException e) {
                e.printStackTrace();
            } catch (JsonMappingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (EncDecException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (courierinfos.size() > 0) {
            uiModel.addAttribute("couriercount", courierinfos.size());
            return "ixinweb/dingdanxiangqing_yifahuo";
        } else {
            return "ixinweb/dingdanxiangqing_dengdaifahuo";
        }
    } else if (billAll.get(0).get("bill_status").equals(8)) {
        List<String> certStatus = new ArrayList<String>();
        List<UserCert> certs = userCertService.getUserCertByBill(id, certStatus);
        if (certs != null && certs.size() > 0) {
            certStatus.add(ComNames.CERT_STATUS_1);
            certStatus.add(ComNames.CERT_STATUS_2);
            UserCert userCert = certs.get(0);
            Object[] info = getCertInfo(userCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("userCert", userCert);
        }
        // 返回老证书序列号
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            uiModel.addAttribute("oldCertSn", oldUserCert.getCertSn());
            try {
                List<String> allIssUerDn = new ArrayList<String>();
                allIssUerDn = sqlSession.selectList("com.itrus.portal.db.CrlContextMapper.selectAllIssUerDn");
                uiModel.addAttribute("allIssUerDn", jsonTool.writeValueAsString(allIssUerDn));
            } catch (JsonGenerationException e) {
                e.printStackTrace();
            } catch (JsonMappingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "ixinweb/dingdanxiangqing_yifahuo";
    // 下载证书
    } else if (billAll.get(0).get("bill_status").equals(13)) {
        uiModel.addAttribute("autoShowPfxMessage", autoShowPfxMessage);
        return "ixinweb/dingdanxiangqing_xiazaizhengshu";
    } else {
        return "ixinweb/dingdanxiangqing_yichuihui";
    }
}
Also used : ArrayList(java.util.ArrayList) Product(com.itrus.portal.db.Product) PreferentialRecord(com.itrus.portal.db.PreferentialRecord) DigitalCert(com.itrus.portal.db.DigitalCert) PayInfo(com.itrus.portal.db.PayInfo) OnPayInfo(com.itrus.portal.db.OnPayInfo) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) EnterpriseQqExample(com.itrus.portal.db.EnterpriseQqExample) ArrayList(java.util.ArrayList) List(java.util.List) Receipt(com.itrus.portal.db.Receipt) ProductSpec(com.itrus.portal.db.ProductSpec) Certification(com.itrus.portal.db.Certification) EditBill(com.itrus.portal.db.EditBill) Bill(com.itrus.portal.db.Bill) Map(java.util.Map) HashMap(java.util.HashMap) PayInfoExample(com.itrus.portal.db.PayInfoExample) UserInfo(com.itrus.portal.db.UserInfo) OnPayInfo(com.itrus.portal.db.OnPayInfo) OnlinePay(com.itrus.portal.db.OnlinePay) UserCert(com.itrus.portal.db.UserCert) Ereceipt(com.itrus.portal.db.Ereceipt) HttpSession(javax.servlet.http.HttpSession) EncDecException(com.itrus.portal.exception.EncDecException) IOException(java.io.IOException) IOException(java.io.IOException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) EncDecException(com.itrus.portal.exception.EncDecException) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) UserInfoServiceException(com.itrus.portal.exception.UserInfoServiceException) EnterpriseQq(com.itrus.portal.db.EnterpriseQq) Enterprise(com.itrus.portal.db.Enterprise) ReviewLog(com.itrus.portal.db.ReviewLog) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with JsonGenerationException

use of org.codehaus.jackson.JsonGenerationException in project portal by ixinportal.

the class BillClientController method showTwo.

/**
 * 订单详情
 *
 * @param id
 * @param uiModel
 * @param autoShowPfxMessage 从订单信息页面 点击下载证书跳转到下载证书页面,若为 1 自动弹出短信输入框,
 * @return
 */
@RequestMapping(value = "/bill/{id}.html", produces = "text/html")
public String showTwo(@PathVariable("id") Long id, Model uiModel, @RequestParam(value = "typenum", required = false) String typenum, @RequestParam(value = "num", required = false) Long num, @RequestParam(value = "updateAuditBill", required = false) String updateAuditBill, @RequestParam(value = "autoShowPfxMessage", required = false) String autoShowPfxMessage, HttpServletRequest request) {
    HttpSession session = request.getSession();
    Boolean verifyCodeStatus = (Boolean) session.getAttribute(ComNames.WEB_VERIFY_CODE_STATUS);
    Enterprise enterprise = (Enterprise) session.getAttribute(ComNames.WEB_ENTERPRISE);
    UserInfo userInfo = (UserInfo) session.getAttribute(ComNames.WEB_USER_INFO);
    if (null == verifyCodeStatus || !verifyCodeStatus || null == userInfo) {
        // 登录状态失效,跳转到登录页面
        return ComNames.DENG_LU_CLIENT;
    }
    if (userInfo != null && enterprise == null) {
        // 登录未获取到企业信息,跳转到选择企业页面
        return ComNames.DENG_LU_CLIENT;
    }
    List<Map> billAll = sqlSession.selectList("com.itrus.portal.db.BillMapper.selectDingdanByBill", id);
    if (billAll.size() == 0) {
        return ComNames.DENG_LU_CLIENT;
    }
    // 解析订单中uid信息{"ADDTIONAL_FIELD1_1":"","ADDTIONAL_FIELD3_1":"","ADDTIONAL_FIELD4_1":"G2016071301","inputName":"inputValue"}\
    Bill bill = billService.getBill(id);
    if (null != bill.getUid()) {
        uiModel.addAttribute("uid", bill.getUid().toString());
    }
    if (null != bill.getUid1()) {
        uiModel.addAttribute("uid1", bill.getUid1().toString());
    }
    if (null != bill.getUid2()) {
        uiModel.addAttribute("uid2", bill.getUid2().toString());
    }
    if (null != bill.getUid3()) {
        uiModel.addAttribute("uid3", bill.getUid3().toString());
    }
    /*if(!bill.getUid().equals("{}")){
			List<String> listStr = new ArrayList<String>();
			JSONObject uid = JSONObject.parseObject(bill.getUid().toString());
			for(int i= 0; i< (int)bill.getProductNum();i++){
				//uiModel.addAttribute("uid"+ (i+1), uid.get(("ADDTIONAL_FIELD"+ (i+ 1)) + "_1"));
				listStr.add(uid.get(("ADDTIONAL_FIELD1_"+ (i+ 1))).toString());
			}
			uiModel.addAttribute("listStr", listStr);
		}*/
    // 得到证书信息项
    Product pdt = productService.getProductById(bill.getProduct());
    uiModel.addAttribute("pdt", pdt);
    if (pdt.getCertinfo() != null) {
        uiModel.addAttribute("certinfoStr", escapeTool.javascript(pdt.getCertinfo()));
    } else {
        uiModel.addAttribute("certinfoStr", "[]");
    }
    PayInfoExample payInfoex = new PayInfoExample();
    Map<Long, PayInfo> payinfoMap = sqlSession.selectMap("com.itrus.portal.db.PayInfoMapper.selectByExample", payInfoex, "id");
    uiModel.addAttribute("payinfomap", payinfoMap);
    String descript = billAll.get(0).get("descript").toString().replace("\r\n", "<br/>");
    uiModel.addAttribute("descript", descript);
    // 如配置了产品规格,则将产品规格返回:产品期限、产品描述
    if (billAll.get(0).containsKey("product_spec") && !"0".equals(billAll.get(0).get("product_spec"))) {
        ProductSpec productSpec = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec"));
        descript = "产品期限:" + productSpec.getProductValid() + "年<br/>" + "产品描述:" + productSpec.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript", descript);
    }
    // 组合产品以及产品规格以及证书信息项
    String descript1 = "";
    String descript2 = "";
    String descript3 = "";
    if (billAll.get(0).containsKey("product_spec1") && !"0".equals(billAll.get(0).get("product_spec1"))) {
        ProductSpec productSpec1 = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec1"));
        descript1 = "产品期限:" + productSpec1.getProductValid() + "年<br/>" + "产品描述:" + productSpec1.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript1", descript1);
    }
    if (billAll.get(0).containsKey("product_spec2") && !"0".equals(billAll.get(0).get("product_spec2"))) {
        ProductSpec productSpec2 = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec2"));
        descript2 = "产品期限:" + productSpec2.getProductValid() + "年<br/>" + "产品描述:" + productSpec2.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript2", descript2);
    }
    if (billAll.get(0).containsKey("product_spec3") && !"0".equals(billAll.get(0).get("product_spec3"))) {
        ProductSpec productSpec3 = productSpecService.getProductSpec((Long) billAll.get(0).get("product_spec3"));
        descript3 = "产品期限:" + productSpec3.getProductValid() + "年<br/>" + "产品描述:" + productSpec3.getDescript().replace("\r\n", "<br/>");
        uiModel.addAttribute("descript3", descript3);
    }
    if (null != bill.getProduct1()) {
        Product product1 = productService.getProductById(bill.getProduct1());
        uiModel.addAttribute("product1", product1);
        if (product1.getCertinfo() != null) {
            uiModel.addAttribute("certinfoStr1", escapeTool.javascript(product1.getCertinfo()));
        } else {
            uiModel.addAttribute("certinfoStr1", "[]");
        }
    }
    if (null != bill.getProduct2()) {
        Product product2 = productService.getProductById(bill.getProduct2());
        uiModel.addAttribute("product2", product2);
        if (product2.getCertinfo() != null) {
            uiModel.addAttribute("certinfoStr2", escapeTool.javascript(product2.getCertinfo()));
        } else {
            uiModel.addAttribute("certinfoStr2", "[]");
        }
    }
    if (null != bill.getProduct3()) {
        Product product3 = productService.getProductById(bill.getProduct3());
        uiModel.addAttribute("product3", product3);
        if (product3.getCertinfo() != null) {
            uiModel.addAttribute("certinfoStr3", escapeTool.javascript(product3.getCertinfo()));
        } else {
            uiModel.addAttribute("certinfoStr3", "[]");
        }
    }
    if (null == verifyCodeStatus || !verifyCodeStatus || null == userInfo || !(billAll.get(0).get("enterprise").equals(enterprise.getId()))) {
        // 登录状态失效,跳转到登录页面
        return ComNames.DENG_LU_CLIENT;
    }
    // 获取订单在线支付方式
    if (billAll.get(0).get("on_pay_info") != null) {
        Map<Long, OnPayInfo> opiMap = sqlSession.selectMap("com.itrus.portal.db.OnPayInfoMapper.selectByExample", "id");
        uiModel.addAttribute("opiMap", opiMap);
        Map<Long, OnlinePay> opMap = sqlSession.selectMap("com.itrus.portal.db.OnlinePayMapper.selectByExample", "id");
        uiModel.addAttribute("opMap", opMap);
    }
    // 获取产品的认证等级需要认证的项
    Certification certification = sqlSession.selectOne("com.itrus.portal.db.CertificationMapper.selectByPrimaryKey", billAll.get(0).get("authentication"));
    List<Map> courierinfos = new ArrayList<Map>();
    if (billAll.get(0).get("delivery") != null) {
        courierinfos = sqlSession.selectList("com.itrus.portal.db.CourierInfoMapper.selectItemsByCourierInfo", billAll.get(0).get("id"));
        uiModel.addAttribute("courierinfos", courierinfos);
    }
    Map<Long, Receipt> receiptmap = sqlSession.selectMap("com.itrus.portal.db.ReceiptMapper.selectByExample", null, "id");
    Map<Long, Ereceipt> ereceiptmap = sqlSession.selectMap("com.itrus.portal.db.EreceiptMapper.selectByExample", null, "id");
    Map<Long, DigitalCert> certmap = sqlSession.selectMap("com.itrus.portal.db.DigitalCertMapper.selectByExample", null, "id");
    // 判断订单对应的产品是否配置有数字证书
    Product product = productService.getProductById((Long) billAll.get(0).get("product"));
    if (null == product.getCert()) {
        uiModel.addAttribute("billhasnotcert", 1);
        // 判断无数字证书的订单是否需要配送
        if (null != billAll.get(0).get("delivery")) {
            uiModel.addAttribute("billneedtodelivery", 1);
        } else {
            uiModel.addAttribute("billneedtodelivery", 0);
        }
    } else {
        uiModel.addAttribute("billhasnotcert", 0);
    }
    // 根据省市区code值获取省市区最新名称
    String regionCodes = billAll.get(0).get("d_codes") == null ? "" : billAll.get(0).get("d_codes").toString();
    String detailAdds = billAll.get(0).get("d_adds") == null ? "" : billAll.get(0).get("d_adds").toString();
    if (StringUtils.isNotBlank(regionCodes) && regionCodes.indexOf("@") >= 0) {
        String[] codes = regionCodes.split("@");
        String regionName = sysRegionService.getAllName(codes[1], codes[2], codes[3]);
        detailAdds = regionName + detailAdds;
    }
    uiModel.addAttribute("detailAdd", detailAdds);
    if (null != billAll.get(0).get("u_adds")) {
        String regionCodes1 = billAll.get(0).get("u_codes").toString();
        String detailAdds1 = billAll.get(0).get("u_adds").toString();
        if (StringUtils.isNotBlank(regionCodes1) && regionCodes1.indexOf("@") >= 0) {
            String[] codes1 = regionCodes1.split("@");
            String regionName1 = sysRegionService.getAllName(codes1[1], codes1[2], codes1[3]);
            detailAdds1 = regionName1 + detailAdds1;
        }
        uiModel.addAttribute("detailAdd1", detailAdds1);
    }
    int num1 = 0;
    if (num != null) {
        num1 = Integer.parseInt(num.toString());
    }
    // 该订单是否有价格优惠记录
    PreferentialRecord pr = preferentialRecordService.selectPreferentialRecordSByBillId(id);
    if (null != pr) {
        // 原价
        Double originalCost = pr.getOriginalPrice();
        // 优惠价
        Double preCost = pr.getPreferentialPrice();
        uiModel.addAttribute("originalCost", originalCost);
        uiModel.addAttribute("preCost", preCost);
    }
    uiModel.addAttribute("num", num1);
    uiModel.addAttribute("billAll", billAll);
    uiModel.addAttribute("receiptmap", receiptmap);
    uiModel.addAttribute("ereceiptmap", ereceiptmap);
    uiModel.addAttribute("certmap", certmap);
    uiModel.addAttribute("certification", certification);
    uiModel.addAttribute("product", product);
    // 根据订单id返回签章模版
    try {
        makeSeal((Long) billAll.get(0).get("id"), uiModel);
    } catch (EncDecException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    if (typenum == null)
        typenum = "0";
    // 判断是否是审核中进入的订单修改页面
    if (StringUtils.isNotBlank(updateAuditBill) && updateAuditBill.equals("1")) {
        // 判断订单状态是否1,2,3,10
        List<Integer> modifiedStatus = new ArrayList<Integer>();
        modifiedStatus.add(ComNames.BILL_STATUS_1);
        modifiedStatus.add(ComNames.BILL_STATUS_2);
        modifiedStatus.add(ComNames.BILL_STATUS_3);
        modifiedStatus.add(ComNames.BILL_STATUS_10);
        // 不在以上状态中
        if (modifiedStatus.indexOf(billAll.get(0).get("bill_status")) == -1) {
            // 重定向
            return "redirect:/billClient/bill/" + id + ".html";
        }
        return "clientFW/dingdanxiangqing_shenhezhong_chongxintijiao";
    }
    // 审核记录
    ReviewLog reviewLog = reviewLogService.getReviewLog(id);
    if (reviewLog != null) {
        uiModel.addAttribute("reviewLog", reviewLog);
    }
    // 支付待确认时间
    if (billAll.get(0).get("pay_info") != null) {
        List<PayInfo> pays = sqlSession.selectList("com.itrus.portal.db.PayInfoMapper.selectByPrimaryKey", billAll.get(0).get("pay_info"));
        PayInfo dp = pays.get(0);
        uiModel.addAttribute("pay_time", dp.getCreateTime());
        uiModel.addAttribute("pay_confirm_time", dp.getPayConfirmTime());
    }
    // 判断订单状态
    if (billAll.get(0).get("bill_status").equals(1) || billAll.get(0).get("bill_status").equals(2)) {
        // 更新证书前 ,显示旧证书
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            Object[] info = getCertInfo(oldUserCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("oldUserCert", oldUserCert);
            // 根据订单id返回签章模版
            try {
                makeSeal(oldUserCert.getBill(), uiModel);
            } catch (EncDecException e1) {
                e1.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        return "clientFW/dingdanxiangqing_daizhifu";
    } else if (billAll.get(0).get("bill_status").equals(3) || billAll.get(0).get("bill_status").equals(4) || billAll.get(0).get("bill_status").equals(11) || billAll.get(0).get("bill_status").equals(10)) {
        // 更新证书前 ,显示旧证书
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            Object[] info = getCertInfo(oldUserCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("oldUserCert", oldUserCert);
            // 根据订单id返回签章模版
            try {
                makeSeal(oldUserCert.getBill(), uiModel);
            } catch (EncDecException e1) {
                e1.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        if (billAll.get(0).get("bill_status").equals(11)) {
            PayInfo payinfo = sqlSession.selectOne("com.itrus.portal.db.PayInfoMapper.selectByPrimaryKey", billAll.get(0).get("pay_info"));
            uiModel.addAttribute("payinfo", payinfo);
        }
        if (Integer.parseInt(typenum) == 1) {
            return "clientFW/dingdanxiangqing_chongxintijiao";
        } else {
            return "clientFW/dingdanxiangqing_daishenhe";
        }
    } else if (billAll.get(0).get("bill_status").equals(12)) {
        // 待更新
        List<UserCert> userCerts = sqlSession.selectList("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
        if (userCerts.size() > 0) {
            UserCert userCert = userCerts.get(0);
            Object[] info = getCertInfo(userCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("userCert", userCerts.get(0));
            // 根据订单id返回签章模版
            try {
                makeSeal(userCert.getBill(), uiModel);
            } catch (EncDecException e1) {
                e1.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        return "clientFW/dingdanxiangqing_gengxinshenhetongguo";
    } else if (billAll.get(0).get("bill_status").equals(5) || billAll.get(0).get("bill_status").equals(6) || billAll.get(0).get("bill_status").equals(7)) {
        // 初购产品 已制证 在订单详情显示 证书信息
        if ((Integer) billAll.get(0).get("bill_status") >= 6) {
            List<String> certStatus = new ArrayList<String>();
            List<UserCert> certs = userCertService.getUserCertByBill(id, certStatus);
            if (certs != null && certs.size() > 0) {
                certStatus.add(ComNames.CERT_STATUS_1);
                certStatus.add(ComNames.CERT_STATUS_2);
                UserCert userCert = certs.get(0);
                Object[] info = getCertInfo(userCert);
                uiModel.addAttribute("remainingDays", info[0]);
                uiModel.addAttribute("owner", info[1]);
                uiModel.addAttribute("userCert", userCert);
            }
        }
        // 返回老证书序列号
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            uiModel.addAttribute("oldCertSn", oldUserCert.getCertSn());
            try {
                List<String> allIssUerDn = new ArrayList<String>();
                allIssUerDn = sqlSession.selectList("com.itrus.portal.db.CrlContextMapper.selectAllIssUerDn");
                uiModel.addAttribute("allIssUerDn", jsonTool.writeValueAsString(allIssUerDn));
                makeSeal(oldUserCert.getBill(), uiModel);
            } catch (JsonGenerationException e) {
                e.printStackTrace();
            } catch (JsonMappingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (EncDecException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (courierinfos.size() > 0) {
            uiModel.addAttribute("couriercount", courierinfos.size());
            return "clientFW/dingdanxiangqing_yifahuo";
        } else {
            return "clientFW/dingdanxiangqing_dengdaifahuo";
        }
    } else if (billAll.get(0).get("bill_status").equals(8)) {
        List<String> certStatus = new ArrayList<String>();
        List<UserCert> certs = userCertService.getUserCertByBill(id, certStatus);
        if (certs != null && certs.size() > 0) {
            certStatus.add(ComNames.CERT_STATUS_1);
            certStatus.add(ComNames.CERT_STATUS_2);
            UserCert userCert = certs.get(0);
            Object[] info = getCertInfo(userCert);
            uiModel.addAttribute("remainingDays", info[0]);
            uiModel.addAttribute("owner", info[1]);
            uiModel.addAttribute("userCert", userCert);
        }
        // 返回老证书序列号
        if (billAll.get(0).get("old_user_cert") != null) {
            UserCert oldUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("old_user_cert"));
            uiModel.addAttribute("oldCertSn", oldUserCert.getCertSn());
            try {
                List<String> allIssUerDn = new ArrayList<String>();
                allIssUerDn = sqlSession.selectList("com.itrus.portal.db.CrlContextMapper.selectAllIssUerDn");
                uiModel.addAttribute("allIssUerDn", jsonTool.writeValueAsString(allIssUerDn));
            } catch (JsonGenerationException e) {
                e.printStackTrace();
            } catch (JsonMappingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        // 解锁订单,返回证书信息
        if (null != product && null != product.getKeyUnlockType()) {
            UserCert unlockUserCert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByPrimaryKey", billAll.get(0).get("unlock_user_cert"));
            if (null != unlockUserCert) {
                Object[] info = getCertInfo(unlockUserCert);
                uiModel.addAttribute("remainingDays", info[0]);
                uiModel.addAttribute("owner", info[1]);
                uiModel.addAttribute("userCert", unlockUserCert);
            }
        }
        return "clientFW/dingdanxiangqing_yifahuo";
    // 下载证书
    } else if (billAll.get(0).get("bill_status").equals(13)) {
        uiModel.addAttribute("autoShowPfxMessage", autoShowPfxMessage);
        return "clientFW/dingdanxiangqing_xiazaizhengshu";
    } else if (bill.getBillStatus().equals(ComNames.BILL_STATUS_14) || bill.getBillStatus().equals(ComNames.BILL_STATUS_15) || bill.getBillStatus().equals(ComNames.BILL_STATUS_16) || bill.getBillStatus().equals(ComNames.BILL_STATUS_17) || bill.getBillStatus().equals(ComNames.BILL_STATUS_18)) {
        Proxy proxy = proxyService.getProxyByBillId(bill.getId());
        OnPayInfo onPayInfo = onPayInfoService.selectByPrimaryKey(bill.getOnPayInfo());
        UserCert userCert = userCertService.selectByPrimaryKey(bill.getUnlockUserCert());
        uiModel.addAttribute("mPhone", userInfo.getmPhone());
        uiModel.addAttribute("userCert", userCert);
        uiModel.addAttribute("product", product);
        uiModel.addAttribute("bill", bill);
        uiModel.addAttribute("onPayInfo", onPayInfo);
        if (null != proxy) {
            // 授权书不一定有
            uiModel.addAttribute("proxy", proxy);
        }
        // 解锁订单对应的订单状态
        if (bill.getBillStatus().equals(ComNames.BILL_STATUS_14)) {
            // * 2.订单处于已支付,待解锁审批,则跳转查询页面,
            return "clientFW/dengdaishenhe_unlock";
        } else if (bill.getBillStatus().equals(ComNames.BILL_STATUS_15)) {
            // * 3.订单为审批拒绝,跳转审核拒绝重新提交页面
            return "clientFW/dengdaishenhe_unlock";
        } else if (bill.getBillStatus().equals(ComNames.BILL_STATUS_16)) {
            // * 4.订单为审批通过,待解锁,跳转解锁页面
            return "clientFW/unlock";
        } else if (bill.getBillStatus().equals(ComNames.BILL_STATUS_17)) {
            // * 5.订单为解锁异常,则跳转解锁异常页面
            return "clientFW/jiesuoyichang";
        } else {
            // TODO 到解锁完成,等待开票的页面
            return "clientFW/dingdanxiangqing_dengdaifahuo";
        }
    } else {
        return "clientFW/dingdanxiangqing_yichuihui";
    }
}
Also used : ArrayList(java.util.ArrayList) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) ArrayList(java.util.ArrayList) List(java.util.List) HttpSession(javax.servlet.http.HttpSession) EncDecException(com.itrus.portal.exception.EncDecException) IOException(java.io.IOException) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) IOException(java.io.IOException) EncDecException(com.itrus.portal.exception.EncDecException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) HashMap(java.util.HashMap) Map(java.util.Map) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

JsonGenerationException (org.codehaus.jackson.JsonGenerationException)34 IOException (java.io.IOException)30 JsonMappingException (org.codehaus.jackson.map.JsonMappingException)27 Response (javax.ws.rs.core.Response)13 GET (javax.ws.rs.GET)10 Path (javax.ws.rs.Path)10 Produces (javax.ws.rs.Produces)10 WebApplicationException (javax.ws.rs.WebApplicationException)10 ArrayList (java.util.ArrayList)8 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)8 JsonGenerator (org.codehaus.jackson.JsonGenerator)7 StringWriter (java.io.StringWriter)5 HashMap (java.util.HashMap)5 Map (java.util.Map)5 Enterprise (com.itrus.portal.db.Enterprise)4 UserCert (com.itrus.portal.db.UserCert)4 UserInfo (com.itrus.portal.db.UserInfo)4 HttpSession (javax.servlet.http.HttpSession)4 ObjectMapper (org.codehaus.jackson.map.ObjectMapper)4 Bill (com.itrus.portal.db.Bill)3