?? cb8583trade.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("通訊錯誤,發(fā)送數(shù)據(jù)失敗");
}
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("通訊錯誤,解包數(shù)據(jù)錯誤");
}
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 = "系統(tǒng)錯誤";
}
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 + -