Commit 1a36f487 by Tuukka Kivilahti

Merge branch 'slotautorelease' into 'master'

Slot autorelease

When place is timeouted ( user has not locked a place ), also release slot associated to the place

See merge request !160
2 parents a680baac 923d4f4f
...@@ -40,6 +40,7 @@ import fi.codecrew.moya.model.EventMap_; ...@@ -40,6 +40,7 @@ import fi.codecrew.moya.model.EventMap_;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.LanEvent; import fi.codecrew.moya.model.LanEvent;
import fi.codecrew.moya.model.Place; import fi.codecrew.moya.model.Place;
import fi.codecrew.moya.model.PlaceSlot;
import fi.codecrew.moya.model.Place_; import fi.codecrew.moya.model.Place_;
import fi.codecrew.moya.model.Product; import fi.codecrew.moya.model.Product;
import fi.codecrew.moya.model.Product_; import fi.codecrew.moya.model.Product_;
...@@ -51,7 +52,10 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> { ...@@ -51,7 +52,10 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
private static final Logger logger = LoggerFactory.getLogger(PlaceFacade.class); private static final Logger logger = LoggerFactory.getLogger(PlaceFacade.class);
@EJB @EJB
EventBeanLocal eventBean; private EventBeanLocal eventBean;
@EJB
private PlaceSlotFacade placeslotfacade;
public PlaceFacade() { public PlaceFacade() {
...@@ -74,6 +78,12 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> { ...@@ -74,6 +78,12 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
for (Place p : q.getResultList()) { for (Place p : q.getResultList()) {
logger.debug("Releasing place {} at automagic timed place check.", p); logger.debug("Releasing place {} at automagic timed place check.", p);
if (p.checkReleased()) { if (p.checkReleased()) {
PlaceSlot slot = placeslotfacade.findSlotForPlace(p);
if (slot != null) {
slot.setPlace(null);
slot.setUsed(null);
}
++updated; ++updated;
} }
} }
...@@ -159,23 +169,19 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> { ...@@ -159,23 +169,19 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
} }
public Long countSelectable(Product product) { public Long countSelectable(Product product) {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class); CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<Place> root = cq.from(Place.class); Root<Place> root = cq.from(Place.class);
cq.select(cb.count(root)); cq.select(cb.count(root));
cq.where(
cb.equal(root.get(Place_.product), product),
cb.isNull(root.get(Place_.releaseTime)),
cb.isNull(root.get(Place_.group)),
cb.isFalse(root.get(Place_.disabled))
);
return super.getSingleNullableResult(getEm().createQuery(cq));
}
cq.where(
cb.equal(root.get(Place_.product), product),
cb.isNull(root.get(Place_.releaseTime)),
cb.isNull(root.get(Place_.group)),
cb.isFalse(root.get(Place_.disabled))
);
return super.getSingleNullableResult(getEm().createQuery(cq));
}
public Long findCountForProduct(Product product) { public Long findCountForProduct(Product product) {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
...@@ -186,14 +192,10 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> { ...@@ -186,14 +192,10 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
cq.where( cq.where(
cb.equal(root.get(Place_.product), product), cb.equal(root.get(Place_.product), product),
cb.isFalse(root.get(Place_.disabled)) cb.isFalse(root.get(Place_.disabled))
); );
return super.getSingleNullableResult(getEm().createQuery(cq)); return super.getSingleNullableResult(getEm().createQuery(cq));
} }
public Long countAvailable(EventMap map) { public Long countAvailable(EventMap map) {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class); CriteriaQuery<Long> cq = cb.createQuery(Long.class);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!