package net.tooan.ynpay.order.agent.bus; import net.tooan.ynpay.order.agent.bean.Customer; import net.tooan.ynpay.order.agent.bus.bean.BusOrder; import net.tooan.ynpay.order.agent.bus.bean.BusSite; import net.tooan.ynpay.order.agent.bus.bean.BusStation; import net.tooan.ynpay.order.agent.bus.eadd.EaddHelper; import net.tooan.ynpay.order.agent.bus.bean.BusClass; import java.util.List; /** * Created with IntelliJ IDEA. * User: Jing * Date: 13-11-2 * Time: 下午9:48 */ public abstract class AbstractBusHelper { public static final String TYPE_EADD = "eadd"; public static AbstractBusHelper getHelper(String faceType) { if (TYPE_EADD.equals(faceType)) { return new EaddHelper(); } return null; } /** * 查询客运站 * * @return 客运站列表 */ public abstract List<BusStation> getStations(); /** * 通过客运站查询目的站点 * * @param station 客运站 * @return 站点列表 */ public abstract List<BusSite> getSites(BusStation station); /** * 查询班次 * * @param station 目的站列表 * @param site 目的站名称(可选) * @param date 发车日期(YYYY-MM-DD) * @return 班次列表 */ public abstract List<BusClass> getClasses(BusStation station, String site, String date); /** * 下单 * * @param cls 班次信息 * @param customer 顾客信息 * @param ticket 票数 * @param price 票价(单价) * @param ticketType 票类 * @return 订单列表 */ public abstract List<BusOrder> order(BusClass cls, Customer customer, Integer ticket, Float price, String ticketType); /** * 查询订单 * * @param order 订单信息 * @return 订单列表 */ public abstract List<BusOrder> getOrders(BusOrder order); /** * 查询订单 * * @param customer 顾客信息(证件号,联系电话,身份证) * @param getPwd 取票密码 * @param status 状态 * @param orderDate 下单日期 * @param payDate 支付日期 * @param origin 起点 * @param site 讫点 * @param station 客运站 * @return 订单列表 */ public abstract List<BusOrder> getOrders(Customer customer, String getPwd, Integer status, String orderDate, String payDate, BusSite origin, BusSite site, BusStation station); /** * 支付 * * @param orders 待支付订单列表 * @return 支付后的订单列表 */ public abstract List<BusOrder> pay(List<BusOrder> orders); /** * 取消订单 * * @param orders 待取消的订单列表 * @return 取消后的订单列表 */ public abstract List<BusOrder> cancel(List<BusOrder> orders); /** * 取票 * * @param order 订单信息 * @param ticketNo 票号 * @return 订单 */ public abstract BusOrder take(BusOrder order, String ticketNo); }