⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cb8583trade.java

📁 8583 pack and unpack 8583 pro
💻 JAVA
字号:
package com.szzt.trade.zsbank;

import java.io.*;
import java.net.*;
import java.util.*;

import com.szzt.monitor.TradeMonitor;
import com.szzt.db.dbmapping.TradeLog;
import com.szzt.db.dbaccess.DBException;
import com.szzt.db.dbaccess.DBOperateHelper;
import com.szzt.common.SysFunction;
import com.szzt.common.datapacket.DataPacket;
import com.szzt.common.datapacket.DataField;
import com.szzt.common.datapacket.Domain;
import com.szzt.common.datapacket.SignConst;
import com.szzt.trade.TradeBaseImp;
import com.szzt.trade.TradeException;
import com.szzt.trade.tradestruct.*;
import com.szzt.trade.util.*;
import com.szzt.common.datapacket.PacketException;
import com.szzt.monitor.TermMonitor;
import com.szzt.communicate.tcp.*;

public class CB8583Trade extends TradeBaseImp{
  private String HostIP = null;
  private int HostPort = -1;
  private int connTimeout  = 60;
  //private CB8583PacketHeader packetHeader=null;

  public CB8583Trade(){

  }

  public void init() throws TradeException{
      HostIP = TradeServiceConfig.getInstance().getValue("tradeservice.boc.host_ip");
      if(HostIP == null || HostIP.trim().length() <= 0)
         throw new TradeException("浙商银行交易主机配置错误");
      if(TradeServiceConfig.getInstance().getValue("tradeservice.boc.port") == null)
         throw new TradeException("浙商银行主机端口配置错误");
      HostPort = Integer.parseInt(TradeServiceConfig.getInstance().getValue("tradeservice.boc.port"));
      if(TradeServiceConfig.getInstance().getValue("tradeservice.boc.timeout") != null)
         connTimeout = Integer.parseInt(TradeServiceConfig.getInstance().getValue("tradeservice.boc.timeout"));
  }

  public void pack() throws TradeException {
      TradePacket requestPack = requestContext.requestPack;
      try{
        TradeParam tradeParam = CB8583Pack.getTradeConfig(requestContext.tradeCode);
        if(tradeParam != null)
            requestContext.tradeName = tradeParam.tradeName;

        System.out.println("Start pack boc................"+requestPack.tradeCode);
       // this.sendBuf = CB8583Pack.pack8583(null, requestPack);
        this.sendBuf = CB8583Pack.pack8583(requestPack.tradeCode, requestPack);
        System.out.println("TradeName:"+requestContext.tradeName);
        SysFunction.writeLog("c:\\BocSendBuf.txt",this.sendBuf,0,this.sendBuf.length);
      }catch(PacketException ex){
        ex.printStackTrace();
        throw new TradeException(ex.getMessage());
      }
  }

  public void sendTrade() throws TradeException{
	  TcpConn con = null;
    try{
        
    	con = new TcpConn(HostIP, HostPort, connTimeout);
		// System.out.println("begin send to bank server");
		System.out.println("send data to host data=[" + new String(sendBuf)+ "]");
		long lTime = System.currentTimeMillis();
		recvBuf = con.doComm(sendBuf, 2, 6, false);
		long lrevTime = System.currentTimeMillis();
		long interval = lrevTime - lTime;
		System.out.println("--------------交易耗时[" + interval + "]毫秒---------------");
		System.out.println("recv data to host data=[" + new String(recvBuf)+ "]");
		
    }
    catch(Exception ex){
        throw new TradeException("通讯错误,发送数据失败");
    }
    finally{
      try{
        if(con!=null)
        	con.close();
        con = null;
      }catch(Exception ex){}
    }
  }

  public void receiveTrade() throws TradeException{
    try{
    
    }catch(Exception e){
     e.printStackTrace();
    }
   

  }

  public void unPack() throws TradeException {
	  try {
          TradePacket retTradePacket = null;
         // retTradePacket = SjbankPacket.unPack(requestContext.requestPack.tradeCode, recvBuf, requestContext.requestPack);
          if (retTradePacket == null) {
              throw new TradeException("通讯错误,解包数据错误");
          }

          if (this.requestContext.responsePack == null) {
              this.requestContext.responsePack = retTradePacket;
              ((TradePacket) this.requestContext.responsePack).traceNo = retTradePacket.traceNo;
              ((TradePacket) this.requestContext.responsePack).errCode = retTradePacket.errCode;
              ((TradePacket) this.requestContext.responsePack).errMsg = retTradePacket.errMsg;
              ((TradePacket) this.requestContext.requestPack).nextTradeValue = retTradePacket.nextTradeValue;
              ((TradePacket) this.requestContext.responsePack).hasNextTrade = retTradePacket.hasNextTrade;
           }
           else {
               ((TradePacket) this.requestContext.responsePack).traceNo = retTradePacket.traceNo;
               ((TradePacket) this.requestContext.responsePack).errCode = retTradePacket.errCode;
               ((TradePacket) this.requestContext.responsePack).errMsg = retTradePacket.errMsg;
               ((TradePacket) this.requestContext.requestPack).nextTradeValue = retTradePacket.nextTradeValue;
               ((TradePacket) this.requestContext.responsePack).hasNextTrade = retTradePacket.hasNextTrade;
               try {
                   if(((DataField) retTradePacket.getDomain(retTradePacket.getSize()-1)).fieldSign == SignConst.RECORD_DOMAIN) {
                       ((TradeField) ((TradePacket) this.requestContext.responsePack).getDomain(retTradePacket.getSize() - 1)).record
                                                         .addAll(((DataField)retTradePacket
                                                                         .getDomain(retTradePacket.getSize() - 1)).record);
                   }
               } catch (PacketException ex) {
                   ex.printStackTrace();
               } finally {
                   retTradePacket = null;
               }
           }
         } catch (Exception ex) {
           ex.printStackTrace();
         }
  }

  public void destroy(){

     TradeLog tradeLog = new TradeLog();
     try{
       if(this.requestContext.responsePack == null){
          this.requestContext.responsePack = new TradePacket();
          this.requestContext.responsePack.errCode = "01";
          this.requestContext.responsePack.errMsg = "系统错误";
       }
       System.out.println("Start write trade log..........");
       System.out.println("Error code:"+((TradePacket)this.requestContext.responsePack).errCode);
       tradeLog.setTradeCode(this.requestContext.tradeCode);
       tradeLog.setTradeDesc(SysFunction.convertNullString(this.requestContext.tradeName));
       tradeLog.setTradeType("");
       tradeLog.setAccountNo(SysFunction.convertNullString(((TradePacket)this.requestContext.requestPack).accountNo));
      // tradeLog.setTradeMoney(SysFunction.convertNullString(((TradePacket)this.requestContext.requestPack).moneyNum));
       tradeLog.setReserve("");
       tradeLog.setFlowNo(SysFunction.convertNullString(((TradePacket)this.requestContext.requestPack).traceNo));
       tradeLog.setRetCode(SysFunction.convertNullString(((TradePacket)this.requestContext.responsePack).errCode));
       tradeLog.setRetDesc(SysFunction.convertNullString(((TradePacket)this.requestContext.responsePack).errMsg));
       tradeLog.setSmNo(SysFunction.convertNullString(this.requestContext.termID));
       tradeLog.setTradeDate(SysFunction.getYYYYMMDD());
       tradeLog.setTradeTime(SysFunction.getHHMISS());
       System.out.println("TradeMonitor:"+TradeMonitor.getInstance());
       TradeMonitor.getInstance().sendTradeMonitor(tradeLog);
       DBOperateHelper.addTradeLog(tradeLog);
     }catch(DBException ex){
       ex.printStackTrace();
     }catch(Exception ex){
       ex.printStackTrace();
     }finally{
        tradeLog = null;
     }

  }





}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -