Commit 5e22825c by Juho Juopperi

Merge branch 'cleangm' into 'master'

Clean Group membership

Leagcy code cleanup

See merge request !212
2 parents 32155bac 04c32482
...@@ -250,6 +250,12 @@ public class BootstrapBean implements BootstrapBeanLocal { ...@@ -250,6 +250,12 @@ public class BootstrapBean implements BootstrapBeanLocal {
"ALTER TABLE group_memberships DROP COLUMN place_product", "ALTER TABLE group_memberships DROP COLUMN place_product",
}); });
dbUpdates.add(new String[] {
"DELETE FROM products_product_limitations where productlimits_id in (SELECT id FROM product_limitations WHERE TYPE = 'PLACE')",
"DELETE FROM product_limitations WHERE TYPE = 'PLACE'",
});
} }
public BootstrapBean() { public BootstrapBean() {
......
...@@ -280,16 +280,6 @@ public class ProductBean implements ProductBeanLocal { ...@@ -280,16 +280,6 @@ public class ProductBean implements ProductBeanLocal {
switch (limit.getType()) switch (limit.getType())
{ {
case PLACE: {
Long reserved = 0L;
Long available = 0L;
for (Product p : limit.getProducts()) {
reserved += gmfacade.findPlaceProductCount(p);
available += placeFacade.findCountForProduct(p);
}
ret = BigDecimal.valueOf(available - reserved).subtract(count);
break;
}
case GLOBAL_BILLED: { case GLOBAL_BILLED: {
BigDecimal globBillTot = BigDecimal.ZERO; BigDecimal globBillTot = BigDecimal.ZERO;
for (Product p : limit.getProducts()) { for (Product p : limit.getProducts()) {
......
...@@ -72,7 +72,7 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi ...@@ -72,7 +72,7 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi
} }
public GroupMembership findByToken(String token) { public GroupMembership findByToken(String token) {
if(token == null || token.trim().isEmpty()) if (token == null || token.trim().isEmpty())
return null; return null;
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
...@@ -161,83 +161,53 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi ...@@ -161,83 +161,53 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi
return getEm().createQuery(cq).getResultList(); return getEm().createQuery(cq).getResultList();
} }
public Long findPlaceProductCount(Product product) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<GroupMembership> root = cq.from(GroupMembership.class);
cq.select(cb.count(root));
cq.where(cb.equal(root.get(GroupMembership_.placeProduct), product));
return super.getSingleNullableResult(getEm().createQuery(cq));
}
public Long findGroupMembershipsCount() { public Long findGroupMembershipsCount() {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class); CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<GroupMembership> root = cq.from(GroupMembership.class); Root<GroupMembership> root = cq.from(GroupMembership.class);
Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup); Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup);
cq.select(cb.count(root)); cq.select(cb.count(root));
cq.where(cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent())); cq.where(cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent()));
return super.getSingleNullableResult(getEm().createQuery(cq)); return super.getSingleNullableResult(getEm().createQuery(cq));
} }
public Long findGroupMembershipsEnteredCount() { public Long findGroupMembershipsEnteredCount() {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class); CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<GroupMembership> root = cq.from(GroupMembership.class); Root<GroupMembership> root = cq.from(GroupMembership.class);
Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup); Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup);
cq.select(cb.count(root)); cq.select(cb.count(root));
cq.where(cb.not(cb.isNull(root.get(GroupMembership_.enteredEvent))), cq.where(cb.not(cb.isNull(root.get(GroupMembership_.enteredEvent))),
cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent()) cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent())
); );
return super.getSingleNullableResult(getEm().createQuery(cq)); return super.getSingleNullableResult(getEm().createQuery(cq));
} }
public List<GroupMembership> findAllEnteredBetween(long startTimestamp, long endTimestamp) { public List<GroupMembership> findAllEnteredBetween(long startTimestamp, long endTimestamp) {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<GroupMembership> cq = cb.createQuery(GroupMembership.class); CriteriaQuery<GroupMembership> cq = cb.createQuery(GroupMembership.class);
Root<GroupMembership> root = cq.from(GroupMembership.class); Root<GroupMembership> root = cq.from(GroupMembership.class);
Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup); Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup);
Calendar c1 = Calendar.getInstance(); Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance();
c1.setTimeInMillis(startTimestamp); c1.setTimeInMillis(startTimestamp);
c2.setTimeInMillis(endTimestamp); c2.setTimeInMillis(endTimestamp);
cq.where(cb.between(root.get(GroupMembership_.enteredEvent), c1, c2), cq.where(cb.between(root.get(GroupMembership_.enteredEvent), c1, c2),
cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent())); cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList(); return getEm().createQuery(cq).getResultList();
} }
} }
...@@ -20,5 +20,10 @@ package fi.codecrew.moya.model; ...@@ -20,5 +20,10 @@ package fi.codecrew.moya.model;
public enum ProductLimitationType { public enum ProductLimitationType {
GLOBAL_BILLED, GLOBAL_BILL_PAID, GLOBAL_ACCOUNTEVENTS, USER_BILLED, USER_BILL_PAID, USER_ACCOUNTEVENTS, PLACE GLOBAL_BILLED,
GLOBAL_BILL_PAID,
GLOBAL_ACCOUNTEVENTS,
USER_BILLED,
USER_BILL_PAID,
USER_ACCOUNTEVENTS
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!