コード例 #1
0
  @Override
  //	public void insertFlow(SendFlowCondition condition) {
  //		//查出paycup表中满足条件的数据
  //		PayCupsCondition payCupsCondition = new PayCupsCondition();
  //		payCupsCondition.setBeginDate(condition.getStartDate());
  //		payCupsCondition.setEndDate(condition.getEndDate());
  //		payCupsCondition.setTransType(condition.getTransType());
  //		//分页的参数
  //		Page<PayCups> payCupsPage = payCupsService.queryPayCupsByCondition(payCupsCondition, 0,
  // EVERY_PAGE_NUMBER);
  //		int startIndexCups = 0;
  //		int totalCups = payCupsPage.getTotalCount();
  //		int countTimeCups =
  // totalCups%EVERY_PAGE_NUMBER>0?(totalCups/EVERY_PAGE_NUMBER)+1:(totalCups/EVERY_PAGE_NUMBER);
  //
  //
  //
  //
  //		logger.info("[开始查询payCups渠道流水...]");
  //		if(0 == countTimeCups){
  //			insertPayCups(null);
  //		}
  //		//分页查询
  //		for(int i=0;i<countTimeCups;i++){
  //			List<PayCups> payCupsList = new ArrayList<PayCups>();
  //			List<SendFlow> flowList = new LinkedList<SendFlow>();
  //			payCupsList = payCupsService.queryPayCupsByCondition(payCupsCondition, startIndexCups,
  // EVERY_PAGE_NUMBER).getItems();
  //			flowList = insertPayCups(payCupsList);
  //			startIndexCups = startIndexCups + EVERY_PAGE_NUMBER;
  //			sendFlowDao.saveAll(flowList);
  //			logger.info("[payCups分页第"+(i+1)+"页同步完成...]");
  //		}
  //		logger.info("[开始查询payUpmp渠道流水...]");
  //		//查出payupmp表中满足条件的数据
  //		PayUpmpCondition payUpmpCondition = new PayUpmpCondition();
  //		payUpmpCondition.setTransBeginDate(condition.getStartDate());
  //		payUpmpCondition.setTransEndDate(condition.getEndDate());
  //		payUpmpCondition.setTransType(condition.getTransType());
  //
  //		Page<PayUpmp> payUpmpPage = payUpmpService.queryPayUpmpByCondition(payUpmpCondition, 0,
  // EVERY_PAGE_NUMBER);
  //		int startIndexUpmp = 0;
  //		int totalUpmp = payUpmpPage.getTotalCount();
  //		int countTimeUpmp =
  // totalUpmp%EVERY_PAGE_NUMBER>0?(totalUpmp/EVERY_PAGE_NUMBER)+1:(totalUpmp/EVERY_PAGE_NUMBER);
  //
  //
  //		if(0 == countTimeCups){
  //			insertPayUpmp(null);
  //		}
  //		//分页查询
  //		for(int i=0;i<countTimeUpmp;i++){
  //			List<PayUpmp> payUpmpList = new ArrayList<PayUpmp>();
  //			List<SendFlow> flowList = new LinkedList<SendFlow>();
  //			payUpmpList = payUpmpService.queryPayUpmpByCondition(payUpmpCondition, startIndexUpmp,
  // EVERY_PAGE_NUMBER).getItems();
  //			flowList = insertPayUpmp(payUpmpList);
  //			startIndexUpmp = startIndexUpmp + EVERY_PAGE_NUMBER;
  //			sendFlowDao.saveAll(flowList);
  //			logger.info("[payUpmp分页第"+(i+1)+"页同步完成...]");
  //		}
  //		logger.info("[流水同步完毕...]");
  //	}
  /** 分页查询PayCups表 */
  public List<SendFlow> insertPayCups(List<PayCups> payCupsList) {
    List<SendFlow> flowList = new LinkedList<SendFlow>();
    for (PayCups payCups : payCupsList) {
      SendFlow sendFlow = new SendFlow();
      String transCode = null;
      // 交易类型判断
      switch (payCups.getTransType()) {
        case 1:
          transCode = "S00"; // 签到
          break;
        case 2:
          transCode = "S22"; // 消费
          break;
        case 3:
          transCode = "V52"; // 消费撤销
          break;
        case 4:
          transCode = "R22"; // 消费冲正
          break;
        case 5:
          transCode = "R22"; // 撤销冲正
          break;
        case 6:
          transCode = "S00"; // 余额查询
          break;
        case 7:
          transCode = "S22"; // 北京渠道-转账
          break;
        case 8:
          transCode = "V52"; // 北京渠道-转账撤销
          break;
        case 9:
          transCode = "S00"; // 生活服务-余额查询
          break;
        case 10:
          transCode = "S22"; // 生活服务-卡卡转账
          break;
        case 11:
          transCode = "S22"; // 生活服务-信用卡还款
          break;
        case 12:
          transCode = "S22"; // 生活服务-手机充值
          break;
        case 13:
          transCode = "I00"; // IC卡脚本上送
          break;
        case 14:
          transCode = "E23"; // 退货
          break;
        default:
          break;
      }
      sendFlow.setPayNo(payCups.getPayNo()); // 本地增值流水ID
      sendFlow.setAccountNo(payCups.getCardNo()); // 主账号2
      sendFlow.setProcessCode(payCups.getProcessCode()); // 交易处理码3
      sendFlow.setAmount(payCups.getTransAmt()); // 交易金额4
      if ("S22".equals(transCode) || "V52".equals(transCode) || "S00".equals(transCode)) {
        // 消费、撤销、查询、生活服务0200
        sendFlow.setMsgType("0200");
      }
      if ("R22".equals(transCode)) {
        // 冲正交易送0400
        sendFlow.setMsgType("0400");
      }
      if ("I00".equals(transCode)) {
        // IC卡脚本上送 0620
        sendFlow.setMsgType("0620");
      }
      if ("E23".equals(transCode)) {
        // 退货送0220
        sendFlow.setMsgType("0220");
      }
      // 消息类型
      sendFlow.setSystraceNo(payCups.getTrmnlFlowNo()); // 受卡方系统跟踪号11
      sendFlow.setTransDate(payCups.getTransDate()); // 受卡方所在地日期13
      sendFlow.setTransTime(payCups.getTransTime()); // 受卡方所在地时间12
      sendFlow.setSettleDate(payCups.getSettlementDate()); // 清算日期15
      sendFlow.setEntryMode(payCups.getPosEntryMode()); // 服务点输入方式码 22
      sendFlow.setCardSeq(payCups.getCardSeqNum()); // 服务点输入方式码 23
      sendFlow.setPointOfService(payCups.getServiceCode()); // 服务点条件码 25
      sendFlow.setAcqOrgId(payCups.getAcquiringCode()); // 受理机构标识码32
      sendFlow.setReferCode(payCups.getTrmnlReferNo()); // 检索参考号37
      sendFlow.setAuthCode(payCups.getAuthCode()); // 授权标识应答码 38
      sendFlow.setRespCode(payCups.getRespCode()); // 应答码 39
      sendFlow.setTermId(payCups.getTrmnlNo()); // 受卡机终端标识码 41
      sendFlow.setTermIdt(payCups.getTrmnlMrchNo()); // 受卡方标识码 42
      sendFlow.setAddRespData(payCups.getAdditionalRespcode044()); // 附加响应数据 44
      sendFlow.setAddData(payCups.getSelfdefined048()); // 附加数据-私有 48
      sendFlow.setCurCode(payCups.getCurrency()); // 交易货币代码 49
      sendFlow.setSafeCtrlInfo(payCups.getSecurityInfo()); // 安全控制信息 53
      sendFlow.setIcData(payCups.getIcData()); // IC卡数据域 55
      sendFlow.setReservedPrivate1(payCups.getSelfDefined060()); // 自定义域1 60
      sendFlow.setOrgMessage(payCups.getSelfDefined061()); // 原始信息域 61
      sendFlow.setReservedPrivate2(payCups.getSelfDefined062()); // 自定义域2 62
      sendFlow.setReservedPrivate3(payCups.getSelfDefined063()); // 自定义域3 63
      sendFlow.setTransCode(transCode); // 交易代码
      sendFlow.setMcc(payCups.getTrmnlMrchNo().substring(7, 11)); // 商户类型(MCC码)

      CardBin cardBin = null;
      String cardType = null;
      // 卡bin非空
      if (null != (payCups.getCardNo())
          && !("".equals((payCups.getCardNo())))
          && (payCups.getCardNo()).length() > 6) {
        cardBin = cardBinService.findByCardNo((payCups.getCardNo()));
      }
      if (null != cardBin) {
        cardType = cardBin.getCardType();
        sendFlow.setCardType(cardType); // 卡性质
      }
      sendFlow.setBrancStructure("100200"); // 所属分支结构(江苏)
      String acqCode = payCups.getAcquiringCode(); // 受理机构标识码
      String mercInstitution = null;
      if (null != acqCode) {
        acqCode = acqCode.trim();
      }
      // 根据受理机构标识码判断商户所属机构
      if ("48023010".equals(acqCode)) {
        mercInstitution = "100200"; // 南京
      }
      if ("48023070".equals(acqCode)) {
        mercInstitution = "100201"; // 连云港
      }
      if ("48023140".equals(acqCode)) {
        mercInstitution = "100202"; // 镇江
      }
      if ("48023110".equals(acqCode)) {
        mercInstitution = "100203"; // 盐城
      }
      if ("48023060".equals(acqCode)) {
        mercInstitution = "100204"; // 南通
      }
      if ("48023050".equals(acqCode)) {
        mercInstitution = "100205"; // 苏州
      }
      if ("48023020".equals(acqCode)) {
        mercInstitution = "100206"; // 无锡
      }
      if ("48023040".equals(acqCode)) {
        mercInstitution = "100207"; // 常州
      }
      if ("48023120".equals(acqCode)) {
        mercInstitution = "100208"; // 扬州
      }
      if ("48023160".equals(acqCode)) {
        mercInstitution = "100209"; // 泰州
      }
      if ("48023030".equals(acqCode)) {
        mercInstitution = "100210"; // 徐州
      }
      if ("48023080".equals(acqCode)) {
        mercInstitution = "100211"; // 淮安
      }
      if ("48023180".equals(acqCode)) {
        mercInstitution = "100212"; // 宿迁
      }
      sendFlow.setMercInstitution(mercInstitution); // 商户所属机构
      if (!"S22".equals(transCode)) {
        sendFlow.setOrgAmount(payCups.getTransAmt()); // 原始交易金额送交易金额
      }
      // 前置渠道 &支付通道
      String channel = payCups.getSubChannel().trim();

      sendFlow.setLeadChannel(channel); // 前置渠道
      sendFlow.setPaymentChannel(channel); // 支付通道

      // 业务类型&产品编码&统一后业务类型
      String serviceType = "";
      String productCoding = "";
      String finalServiceType = "";
      if ((2 == (payCups.getTransType())) && "ulinkTraditon".equals(channel)) {
        // upmp收单
        serviceType = "5A02";
        productCoding = "5A02";
        finalServiceType = "02";
      }
      if ((2 == (payCups.getTransType())) && "ULINKPLUS".equals(channel)) {
        // 总部T+0转账
        serviceType = "5053";
        productCoding = "5053";
        finalServiceType = "53";
      }
      if ((2 == (payCups.getTransType())) && "jsumsPayCups".equals(channel)) {
        // cups银联二代收单
        serviceType = "5A02";
        productCoding = "5A02";
        finalServiceType = "02";
      }
      if ((2 == (payCups.getTransType()) || 7 == (payCups.getTransType()))
          && "bjumsPayCups".equals(channel)) {
        // 北京渠道收单
        serviceType = "5A02";
        productCoding = "5A02";
        finalServiceType = "02";
      }

      if ((10 == (payCups.getTransType())) && "ULINKPLUS".equals(channel)) {
        // 生活服务卡卡转账(总公司T+0)
        serviceType = "5025";
        productCoding = "5025";
        finalServiceType = "25";
      }
      if ((11 == (payCups.getTransType())) && "ULINKPLUS".equals(channel)) {
        // 生活服务信用卡还款(总公司T+0)
        serviceType = "5022";
        productCoding = "5022";
        finalServiceType = "22";
      }
      if ((12 == (payCups.getTransType())) && "ULINKPLUS".equals(channel)) {
        // 生活服务手机充值(总公司T+0)
        serviceType = "5830";
        productCoding = "5830";
        finalServiceType = "30";
      }
      if ((3 == (payCups.getTransType()) || 14 == (payCups.getTransType()))) {
        // 撤销与退货类的交易算收单交易
        // 北京渠道收单
        serviceType = "5A02";
        productCoding = "5A02";
        finalServiceType = "02";
      }
      sendFlow.setServiceType(serviceType); // 业务类型
      sendFlow.setProductCoding(productCoding); // 产品编码
      sendFlow.setFinalServiceType(finalServiceType); // 统一后业务类型
      sendFlow.setAccpMercNo(payCups.getTrmnlMrchNo()); // 受理点商户编号
      sendFlow.setAccpTermNo(payCups.getTrmnlNo()); // 受理点终端编号
      sendFlow.setInitTerm("11"); // 发起终端(移动pos)
      sendFlow.setTransOccrrenceTime(payCups.getCreTime()); // 交易发生时间
      sendFlow.setCreTime(new Date()); // 获得创建日期
      // 放入List
      flowList.add(sendFlow);
    }
    return flowList;
  }
コード例 #2
0
  /**
   * 分页查询PayUpmp表
   *
   * @return
   */
  public List<SendFlow> insertPayUpmp(List<PayUpmp> payUpmpList) {
    List<SendFlow> flowList = new LinkedList<SendFlow>();
    for (PayUpmp payUpmp : payUpmpList) {
      SendFlow sendFlow = new SendFlow();
      String transCode = null;
      // 交易类型判断
      switch ((payUpmp.getTransType())) {
        case 1:
          transCode = "S00"; // 签到
          break;
        case 2:
          transCode = "S22"; // 消费
          break;
        case 3:
          transCode = "V52"; // 消费撤销
          break;
        case 4:
          transCode = "R22"; // 消费冲正
          break;
        case 5:
          transCode = "R22"; // 撤销冲正
          break;
        case 6:
          transCode = "S00"; // 余额查询
          break;
        case 7:
          transCode = "S22"; // 北京渠道-转账
          break;
        case 8:
          transCode = "V52"; // 北京渠道-转账撤销
          break;
        case 9:
          transCode = "S00"; // 生活服务-余额查询
          break;
        case 10:
          transCode = "S22"; // 生活服务-卡卡转账
          break;
        case 11:
          transCode = "S22"; // 生活服务-信用卡还款
          break;
        case 12:
          transCode = "S22"; // 生活服务-手机充值
          break;
        case 13:
          transCode = "I00"; // IC卡脚本上送
          break;
        case 14:
          transCode = "E23"; // 退货
          break;
        default:
          break;
      }
      sendFlow.setPayNo(payUpmp.getPayNo()); // 本地增值流水ID
      sendFlow.setAccountNo(payUpmp.getCardNo()); // 主账号 2
      sendFlow.setAmount(payUpmp.getTransAmt()); // 交易金额 4
      if ("S22".equals(transCode) || "V52".equals(transCode) || "S00".equals(transCode)) {
        // 消费、撤销、查询、生活服务0200
        sendFlow.setMsgType("0200");
      }
      if ("R22".equals(transCode)) {
        // 冲正交易送0400
        sendFlow.setMsgType("0400");
      }
      if ("I00".equals(transCode)) {
        // IC卡脚本上送 0620
        sendFlow.setMsgType("0620");
      }
      if ("E23".equals(transCode)) {
        // 退货送0220
        sendFlow.setMsgType("0220");
      }
      // 消息类型
      sendFlow.setSettleDate(payUpmp.getSettlementDate()); // 清算日期 15
      sendFlow.setAcqOrgId(payUpmp.getAcqCode()); // 受理机构标识码 32
      sendFlow.setRespCode(payUpmp.getRespCode()); // 应答码 39
      /*List<CupsTrmnl> cupsTrmnlList = cupsTrmnlService.findByMrchNo(payUpmp.getMrchNo());
      if(null != cupsTrmnlList){
      	sendFlow.setTermId(cupsTrmnlList.get(0).getTrmnlNo());//终端编号 41
      }*/
      sendFlow.setTermId("01080209");
      sendFlow.setTermIdt(payUpmp.getMrchNo()); // 受卡方标识码 42 (商户编号)
      sendFlow.setTransCode(transCode); // 交易代码
      sendFlow.setMcc(payUpmp.getMrchNo().substring(7, 11)); // 商户类型(MCC码)

      CardBin cardBin = null;
      String cardType = null;
      if (null != (payUpmp.getCardNo())
          && !("".equals((payUpmp.getCardNo())) && payUpmp.getCardNo().length() > 6)) {
        cardBin = cardBinService.findByCardNo((payUpmp.getCardNo()));
      }
      if (null != cardBin) {
        cardType = cardBin.getCardType();
        sendFlow.setCardType(cardType); // 卡性质
      }

      sendFlow.setBrancStructure("100200"); // 所属分支结构(江苏)
      String acqCode = payUpmp.getAcqCode(); // 受理机构标识码
      String mercInstitution = null;
      if (null != acqCode) {
        acqCode = acqCode.trim();
      }
      // 根据受理机构标识码判断商户所属机构
      if ("48023010".equals(acqCode)) {
        mercInstitution = "100200"; // 南京
      }
      if ("48023070".equals(acqCode)) {
        mercInstitution = "100201"; // 连云港
      }
      if ("48023140".equals(acqCode)) {
        mercInstitution = "100202"; // 镇江
      }
      if ("48023110".equals(acqCode)) {
        mercInstitution = "100203"; // 盐城
      }
      if ("48023060".equals(acqCode)) {
        mercInstitution = "100204"; // 南通
      }
      if ("48023050".equals(acqCode)) {
        mercInstitution = "100205"; // 苏州
      }
      if ("48023020".equals(acqCode)) {
        mercInstitution = "100206"; // 无锡
      }
      if ("48023040".equals(acqCode)) {
        mercInstitution = "100207"; // 常州
      }
      if ("48023120".equals(acqCode)) {
        mercInstitution = "100208"; // 扬州
      }
      if ("48023160".equals(acqCode)) {
        mercInstitution = "100209"; // 泰州
      }
      if ("48023030".equals(acqCode)) {
        mercInstitution = "100210"; // 徐州
      }
      if ("48023080".equals(acqCode)) {
        mercInstitution = "100211"; // 淮安
      }
      if ("48023180".equals(acqCode)) {
        mercInstitution = "100212"; // 宿迁
      }
      sendFlow.setMercInstitution(mercInstitution); // 商户所属机构
      if (!"S22".equals(transCode)) {
        // 冲正类交易
        sendFlow.setOrgAmount(payUpmp.getTransAmt()); // 原始交易金额送交易金额
      }

      sendFlow.setLeadChannel("ulinkTraditon"); // 前置渠道默认upmp
      sendFlow.setPaymentChannel("ulinkTraditon"); // 支付通道默认upmp

      // 业务类型&产品编码&统一后业务类型
      String serviceType = null;
      String productCoding = null;
      String finalServiceType = null;
      if (2 == (payUpmp.getTransType())) {
        // upmp收单
        serviceType = "5A02";
        productCoding = "5A02";
        finalServiceType = "02";
      }
      sendFlow.setServiceType(serviceType); // 业务类型
      sendFlow.setProductCoding(productCoding); // 产品编码
      sendFlow.setFinalServiceType(finalServiceType); // 统一后业务类型
      List<CupsTrmnl> cupsTrmnlList = cupsTrmnlService.findByMrchNo(payUpmp.getMrchNo());
      if (null != cupsTrmnlList) {
        sendFlow.setAccpTermNo(cupsTrmnlList.get(0).getTrmnlNo()); // 受理点终端编号
      }
      sendFlow.setAccpMercNo(payUpmp.getMrchNo()); // 受理点商户编号
      sendFlow.setInitTerm("11"); // 发起终端(移动pos)
      sendFlow.setUpmpTransStatus(payUpmp.getTransStatus() + ""); // UPMP交易状态
      sendFlow.setTransOccrrenceTime(payUpmp.getCreTime()); // 交易发生时间
      sendFlow.setCreTime(new Date()); // 获得创建日期
      // 放入List
      flowList.add(sendFlow);
    }
    return flowList;
  }