package net.tooan.ynpay.order.agent.bus.eadd;
import net.tooan.ynpay.commons.BusinessException;
import net.tooan.ynpay.order.agent.bean.Customer;
import net.tooan.ynpay.order.agent.bus.AbstractBusHelper;
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.bean.BusClass;
import net.tooan.ynpay.order.eadd.*;
import net.tooan.ynpay.order.eadd.helper.EaddFacade;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: Jing
* Date: 13-11-2
* Time: 下午9:45
*/
public class EaddHelper extends AbstractBusHelper {
private static final String SUCCESS = "10000";
@Override
public List<BusStation> getStations() {
List<BusStation> stations = new ArrayList<BusStation>();
StationQueryList stationList = EaddFacade.facade.getStations();
if (SUCCESS.equals(stationList.getRetCode())) {
for (SerialStation serialStation : stationList.getStations()) {
stations.add(EaddWrapper.convert(serialStation));
}
} else {
throw new BusinessException(String.format("[%s] %s", stationList.getRetCode(), stationList.getRetMessage()));
}
return stations;
}
@Override
public List<BusSite> getSites(BusStation station) {
List<BusSite> sites = new ArrayList<BusSite>();
GetSiteListResult siteList = EaddFacade.facade.getSites(station.getCode());
if (SUCCESS.equals(siteList.getRetCode())) {
for (SerialSite site : siteList.getSerialSite()) {
sites.add(EaddWrapper.convert(site));
}
} else {
throw new BusinessException(String.format("[%s] %s", siteList.getRetCode(), siteList.getRetMessage()));
}
return sites;
}
@Override
public List<BusClass> getClasses(BusStation station, String site, String date) {
List<BusClass> classCaches = new ArrayList<BusClass>();
List<ClassList> classLists = EaddFacade.facade.getClasses(station.getCode(), site, date);
for (ClassList classList : classLists) {
if (SUCCESS.equals(classList.getStatuCode())) {
for (SerialClass serialClass : classList.getSerialClassList()) {
classCaches.add(EaddWrapper.convert(serialClass));
}
} else {
throw new BusinessException(String.format("[%s] %s", classList.getStatuCode(), classList.getMessage()));
}
}
return classCaches;
}
@Override
public List<BusOrder> order(BusClass cls, Customer customer, Integer ticket, Float price, String ticketType) {
List<BusOrder> orders = new ArrayList<BusOrder>();
List<TicketOrderResult> ticketOrderResults = EaddFacade.facade.order(
cls.getStation().getCode(),
cls.getClassId(),
String.valueOf(cls.getOrigin().getId()),
String.valueOf(cls.getSite().getId()),
String.valueOf(ticket),
String.valueOf(price),
customer.getName(),
customer.getTelephone(),
customer.getCardNo(),
"200"
);
for (TicketOrderResult ticketOrderResult : ticketOrderResults) {
if ("10000".equals(ticketOrderResult.getStatuCode())) {
for (OrderInfo orderInfo : ticketOrderResult.getOrderInfoList()) {
orders.add(EaddWrapper.convert(orderInfo));
}
} else {
throw new BusinessException(String.format("[%s] %s", ticketOrderResult.getStatuCode(), ticketOrderResult.getMessage()));
}
}
return orders;
}
@Override
public List<BusOrder> getOrders(BusOrder order) {
if(StringUtils.isNotBlank(order.getId().toString()))
{
EaddFacade.facade.findOrderById(order.getStation().getId().toString(),order.getId().toString());
}
return null;
}
@Override
public List<BusOrder> getOrders(Customer customer, String getPwd, Integer status, String orderDate, String payDate, BusSite origin, BusSite site, BusStation station) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public List<BusOrder> pay(List<BusOrder> orders) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public List<BusOrder> cancel(List<BusOrder> orders) {
String string;
for(BusOrder order:orders)
{
}
return null;
}
@Override
public BusOrder take(BusOrder order, String ticketNo) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
}