package net.tooan.ynpay.core.ejb.order.bus;
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.BusStationServer;
import net.tooan.ynpay.order.agent.bus.AbstractBusHelper;
import net.tooan.ynpay.order.agent.bus.bean.BusStation;
import net.tooan.ynpay.order.agent.bus.facade.BusClassFacade;
import net.tooan.ynpay.order.agent.bus.bean.BusClass;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: iris
* Date: 13-10-18
* Time: 下午4:20
*/
@Stateless(name = YnpayJndiConstants.Order_Bus_Class_Facade)
public class BusClassFacadeBean extends CoreFacadeBean<BusClass, Long> implements BusClassFacade {
@EJB
private BusStationServer stationServer;
@Override
public List<BusClass> getList(String origin, String site, String date) throws Exception {
return getList(origin, site, date, false);
}
@Override
public List<BusClass> getList(String origin, String site, String date, Boolean remote) throws Exception {
if (remote) {
List<BusClass> classCaches = new ArrayList<BusClass>();
List<BusStation> stations = stationServer.getList(origin);
for (BusStation station : stations) {
classCaches.addAll(AbstractBusHelper.getHelper(station.getFaceType()).getClasses(station, site, date));
}
return classCaches;
} else {
return getFromLocal(origin, site, date);
}
}
@Override
public BusClass find(String id) throws Exception {
return BusClassDao.dao.findOne(id);
}
public List<BusClass> getFromLocal(String origin, String site, String date) throws Exception {
return BusClassDao.dao.query().is("origin", origin).is("site", site).is("date", date).results();
}
}