package net.tooan.ynpay.order.eadd.helper;
import net.tooan.ynpay.order.eadd.*;
import net.tooan.ynpay.third.jfinal.log.Logger;
import org.apache.commons.lang.StringUtils;
import javax.xml.ws.BindingProvider;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collection;
import java.util.List;
import java.util.Properties;
import static net.tooan.ynpay.commons.BusinessException.parseException;
/**
* Created with IntelliJ IDEA.
* User: iris
* Date: 13-10-18
* Time: 下午12:50
*/
public class EaddFacade {
private static Logger logger = Logger.getLogger(EaddFacade.class);
public static EaddFacade facade = new EaddFacade();
private KYServiceBean serviceBean;
private String loginCode;
private String password;
private EaddFacade() {
Properties props = new Properties();
try {
props.load(EaddFacade.class.getResourceAsStream("/EaddFacade.properties"));
} catch (IOException e) {
if (logger.isErrorEnabled()) {
logger.error(e.getMessage(), e);
}
}
String ifaceAddress = props.getProperty("jws.address");
KYServiceBeanService service;
try {
service = new KYServiceBeanService(new URL(ifaceAddress));
} catch (MalformedURLException e) {
if (logger.isErrorEnabled()) {
logger.error(e.getMessage(), e);
}
service = new KYServiceBeanService(EaddFacade.class.getResource("/KY.wsdl"));
}
serviceBean = service.getKYServiceBeanPort();
if (serviceBean instanceof BindingProvider) {
((BindingProvider) serviceBean).getRequestContext().put("javax.xml.ws.service.endpoint.address", ifaceAddress);
}
loginCode = props.getProperty("salesUnit.loginCode");
password = props.getProperty("salesUnit.password");
}
/**
* 获取场站列表
*
* @return 场站列表
*/
public StationQueryList getStations() {
try {
return serviceBean.getStationList(loginCode, password);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param stationCode
* @return
*/
public GetSiteListResult getSites(String stationCode) {
try {
return serviceBean.getSiteListByCode(loginCode, password, stationCode, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
* 获取班次列表
*
* @param stationCode 场站编码
* @param site 终到站
* @param date 发班日期
* @return 班次列表
*/
public List<ClassList> getClasses(String stationCode, String site, String date) {
try {
/**
* 销售单位登录名,销售单位登录密码,客运站编码,班次编码,目的站,直达查询,发车日期,高快查询,预留1,预留2,预留3
*/
return serviceBean.getClassList(loginCode, password, stationCode, StringUtils.EMPTY, site, "0", date, "0", StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
* 下订单
*
* @param stationCode 场站编码
* @param classId 班次 ID
* @param ticket 票数
* @param price 票价
* @param siteId 目的站 ID
* @param originId 起点 ID
* @param cusName 顾客姓名
* @param cusTel 顾客电话
* @param cusCard 顾客证件号
* @param cancleTime 订单取消时间
* @return 订单列表
*/
public List<TicketOrderResult> order(String stationCode, String classId,String originId, String siteId, String ticket, String price, String cusName, String cusTel, String cusCard, String cancleTime) {
try {
/**
* 销售单位登录名,销售单位登录密码,客运站编码,班次 ID,票数,票价,保险,讫点 ID,票类,起点 ID,儿童数,顾客姓名,顾客电话,顾客证件类型,顾客证件号,取消订票时间,备注,预留1,预留2,预留3,预留4
*/
return serviceBean.ticketOrder(loginCode, password, stationCode, classId, ticket, price, StringUtils.EMPTY, siteId, StringUtils.EMPTY, originId, StringUtils.EMPTY, cusName, cusTel, "001", cusCard, cancleTime, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
* 通过取票密码,身份证,电话号码,姓名查询订单 *
*
* @param stationCode
* @param takePassWord
* @param date
* @param guestName
* @param guestTel
* @param guestIDCard
* @return
*/
public List<OrderList> findOrderByTerm(String stationCode, String takePassWord, String date, String guestName, String guestTel, String guestIDCard) {
try {
return serviceBean.getOrderListByTerm(loginCode, password, stationCode, takePassWord, date, guestName, guestTel, guestIDCard);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param stationCode
* @param orderIds
* @return
*/
public List<OrderList> findOrderById(String stationCode, String orderIds) {
try {
return serviceBean.getOrderListById(loginCode, password, stationCode, orderIds, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param stationCode
* @param orderIds
* @return
*/
public Collection<OutTicketResult> pay(String stationCode, String orderIds) {
try {
return serviceBean.netOutTicket(loginCode, password, stationCode, orderIds, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param stationCode
* @param orderIds
* @return
*/
public List<CancelOrderResult> CancelOrder(String stationCode, String orderIds) {
try {
return serviceBean.cancelOrder(loginCode, password, stationCode, orderIds, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param stationCode
* @param orderIds
* @param guestTel
* @return
*/
public Collection<CancelOutTicketResult> CancelPayOrder(String stationCode, String orderIds, String guestTel) {
try {
return serviceBean.netCancelOutTicket(loginCode, password, stationCode, orderIds, guestTel, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param orderId
* @param ticketNo
* @return
*/
public GetTakeTicketResult TakeTicket(String orderId, String ticketNo) {
try {
return serviceBean.takeTicket(loginCode, password, orderId, ticketNo, loginCode, "天谷科技");
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param ticketInfo
* @return
*/
public GetTakeTicketResult BatchTakeTicket(List<MapEntry> ticketInfo) {
try {
return serviceBean.batchTakeTicket(loginCode, password, ticketInfo,loginCode, "天谷科技");
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param stationCode
* @param ticketInfo
* @return
*/
public GetTakeTicketResult PayAndTakeTicket(String stationCode, List<MapEntry> ticketInfo) {
try {
return serviceBean.outTakeTicket(loginCode, password, stationCode, ticketInfo,loginCode, "天谷科技", StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param orderId
* @param newTicketNo
* @return
*/
public GetTakeTicketResult rePrintTicket(String orderId, String newTicketNo) {
try {
return serviceBean.rePrintTicket(loginCode, password, orderId, StringUtils.EMPTY, newTicketNo, loginCode, "天谷科技", StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
/**
*
* @param orderId
* @param ticketNo
* @return
*/
public InvalidTicketResult invalidTicket(String orderId, String ticketNo) {
try {
return serviceBean.invalidTicket(loginCode, password, orderId, ticketNo, loginCode, "天谷科技", StringUtils.EMPTY);
} catch (Exception_Exception e) {
throw parseException(e);
}
}
}