@Override protected void doTransport(Context context) throws Exception { String resFlag = context.getData(ItmFields.RESFLAG); // 根据返回码设置返回终端的参数 if (ItmConstants.RESFLAG_SUCCESS.equals(resFlag)) { signState(context); context.setState("Y"); } else if (ItmConstants.RESFLAG_ERROR.equals(resFlag)) { context.setState("N"); } }
private void handleSuccessCase(Context ctx, List<Map<String, Object>> list) { ctx.setData("queryTp", "0"); if (ItmConstants.RESFLAG_SUCCESS.equals(ctx.getData(ItmFields.RESFLAG))) { if (list != null) { // 设置返回码 ctx.setData("accList", list); ctx.setData(ItmFields.RESFLAG, ItmConstants.RESFLAG_SUCCESS); ctx.setData(ItmFields.RESCODE, ctx.getData(ItmFields.RESCODE)); ctx.setState("Y"); } } else { ctx.setData(ItmFields.RESFLAG, ItmConstants.RESFLAG_ERROR); ctx.setData(ItmFields.RESCODE, ctx.getData(ItmFields.RESCODE)); ctx.setState("N"); } }
/** * 重复发送交易 * * @param ctx */ @SuppressWarnings("unchecked") private void multiSubmit(Context ctx, List<Map<String, Object>> list) { esbpEcupSender.sendAndReceive(ctx); if (ItmConstants.RESFLAG_SUCCESS.equals(ctx.getData(ItmFields.RESFLAG))) { Map<String, Object> ecupResponse = (Map<String, Object>) ctx.getData(ItmFields.ECUPRESPONSE); ArrayList<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); int count = 0; if (("ECUPQY0067").equals(ecupResponse.get("ServiceId").toString())) { result = (ArrayList<Map<String, Object>>) ecupResponse.get("CardInfResult"); count = Integer.parseInt((String) ecupResponse.get("AccCount")); for (int i = 0; i < count; i++) { Map<String, Object> map = result.get(i); Map<String, Object> data = new HashMap<String, Object>(); data.put("accCstNo", map.get("TallyAccNo")); data.put("serialNo", map.get("AccSerial")); // 小序号 data.put("corpus", map.get("AvaBal")); // 账户可用余额 data.put("openAccDate", map.get("CreateDate")); // 开户日期 data.put("startDate", map.get("IntstBeginDate")); // 起息日期 data.put("currType", map.get("CurrTyp")); // 币种 data.put("depositTerm", map.get("DepPer")); // 通知类型 /*data.put("interest", map.get(""));//利息 data.put("interestTax", map.get(""));//利息税 data.put("corpusIntrsTotSum", map.get(""));// */ // data.put("storeSumBlc", map.get("AvaBal"));////账户可用余额 list.add(data); } if ("0".equals(ecupResponse.get("EndFlg")) && count == 10) { ctx.setData("OSEAccSerial", ecupResponse.get("OSEAccSerial")); ctx.setData("EndFlg", ecupResponse.get("EndFlg")); multiSubmit(ctx, list); } } } }
/** * 网银报文返回处理 * * @param ctx */ @SuppressWarnings("unchecked") private void responseHandler(Context ctx) { // MF1646系统正在日切,跑批 MF1647 // 网银返回处理 if (ItmConstants.RESFLAG_SUCCESS.equals(ctx.getData(ItmFields.RESFLAG))) { logger.info(" ------------------------ response success ----------------------"); Map<String, Object> ecupResponse = ctx.getData("ecupResponse"); if (ecupResponse != null) { String ServiceId = ecupResponse.get("ServiceId").toString(); if ("ECUPTR0722".equals(ServiceId)) { ctx.setData("inqRecCnt", ecupResponse.get("InqRecCnt")); ctx.setData("endFlag", ecupResponse.get("EndFlg")); // 查询记录条数 if (Integer.valueOf((String) ecupResponse.get("InqRecCnt")) < 1) { ctx.setData("signFlag", "no"); // 没有签约协议,查询帐户余额 ctx.setState("Y"); } else { if (ecupResponse.get("result") != null) { List<Map<String, String>> signInfoList = new ArrayList<Map<String, String>>(); signInfoList = (ArrayList<Map<String, String>>) ecupResponse.get("result"); if (signInfoList.size() > 0) { // 查询结果列表 ctx.setData("signInfoList", ecupResponse.get("result")); ctx.setData("signFlag", "yes"); ctx.setState("N"); } else { ctx.setData("signFlag", "no"); ctx.setState("Y"); } } else { ctx.setData("signFlag", "no"); ctx.setState("Y"); } } } else if ("ECUPTR0721".equals(ServiceId)) { // 双利签约解约 ctx.setData("protocolNo1", ecupResponse.get("AgrNo")); ctx.setData("cardNo1", ecupResponse.get("TfoCusAc")); ctx.setDataMap(ecupResponse); ctx.setState("Y"); } else if ("ECUPIV0703".equals(ServiceId)) { ctx.setData("corpus", ecupResponse.get("AcBal")); // 本金 ctx.setData("interest", ecupResponse.get("PybIntAmt")); // 利息 ctx.setData("interestTax", ecupResponse.get("IntTax")); // 利息税 ctx.setData("charge", ecupResponse.get("Hfe")); // 手续费 ctx.setData("amt", ecupResponse.get("NacAmt")); // 交易金额 ctx.setData("totAmt", ecupResponse.get("TotAmt")); // 总金额 // ctx.setData("storeSumBlc",getStoreSumBlc();//卡余额 // ggcardNo,ggcurrency,ggserialNo为国光提供 ctx.setData("ggcardNo", ctx.getData("cardNo")); ctx.setData("ggcurrency", "CNY"); ctx.setData("ggserialNo", ctx.getData("serialNo")); ctx.setState("Y"); } else if ("ECUPIV0704".equals(ServiceId)) { ctx.setData("corpus", ecupResponse.get("Bal")); // 本金 ctx.setData("interest", ecupResponse.get("PybIntAmt")); // 利息 ctx.setData("interestTax", ecupResponse.get("IntTax")); // 利息税 ctx.setData("charge", ecupResponse.get("Hfe")); // 手续费 ctx.setData("amt", ecupResponse.get("TxnAmt")); // 交易金额 ctx.setData("totAmt", ecupResponse.get("NacPrcIntTot")); // 销户本息合计 // ctx.setData("storeSumBlc",getStoreSumBlc());//卡余额 // ggcardNo,ggcurrency,ggserialNo为国光提供 ctx.setData("ggcardNo", ctx.getData("cardNo")); ctx.setData("ggcurrency", "CNY"); ctx.setData("ggserialNo", ctx.getData("serialNo")); ctx.setState("Y"); } } ctx.setData(ItmFields.RESFLAG, ItmConstants.RESFLAG_SUCCESS); ctx.setData(ItmFields.RESCODE, ctx.getData(ItmFields.RESCODE)); } else if (ItmConstants.RESFLAG_ERROR.equals(ctx.getData(ItmFields.RESFLAG))) { logger.info(" ------------------------ response error ----------------------"); ctx.setData(ItmFields.RESFLAG, ItmConstants.RESFLAG_ERROR); ctx.setData(ItmFields.RESCODE, ctx.getData(ItmFields.RESCODE)); ctx.setState("N"); } else { logger.error("APPLY TO BankQueryAction OTHER EXCEPTION"); ctx.setState("N"); } }