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