package net.tooan.ynpay.core.ejb.order.bus;
import com.mongodb.DBObject;
import net.tooan.ynpay.commons.BusinessException;
import net.tooan.ynpay.commons.YnpayJndiConstants;
import net.tooan.ynpay.core.ejb.dao.cache.BusClassDao;
import net.tooan.ynpay.core.ejb.helper.CoreFacadeBean;
import net.tooan.ynpay.core.ejb.service.order.bus.BusOrderServer;
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.facade.BusOrderFacade;
import net.tooan.ynpay.order.agent.bus.bean.BusClass;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: iris
* Date: 13-10-18
* Time: 下午4:20
*/
@Stateless(name = YnpayJndiConstants.Order_Bus_Order_Facade)
public class BusOrderFacadeBean extends CoreFacadeBean<BusOrder, Long> implements BusOrderFacade {
@EJB
private BusOrderServer service;
@Override
public List<BusOrder> order(String id, Customer customer, Integer ticket, String ticketType) throws Exception {
return order(BusClassDao.dao.findOne(id), customer, ticket, ticketType);
}
@Override
public List<BusOrder> order(BusClass busClass, Customer customer, Integer ticket, String ticketType) throws Exception {
// 班次信息为空,直接抛错
if (busClass == null) {
throw new BusinessException("班次信息错误");
}
// 班次 id 为空,则进行查询
if (busClass.getId() == null) {
busClass = BusClassDao.dao.findOne((DBObject) busClass);
}
Float price = busClass.getPrice();
if (ticketType == null) {
ticketType = "001";
}
List<BusOrder> orders = AbstractBusHelper.getHelper(busClass.getStation().getFaceType()).order(busClass, customer, ticket, price, ticketType);
// 保存订单信息
save(orders);
return null;
}
public void save(List<BusOrder> orders) throws Exception {
service.save(orders);
}
}