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); } } }