Commit 2d67c6f3 by Tuukka Kivilahti

Merge branch 'restfix' into 'master'

Restfix

Restillä saa haettua kaikki käyttäjät (eikä vaan ensimmäistä sivua)
Restin kautta varattaessa paikka ei luoda käyttäjälle tilitapahtumaa

reviewed by: @tkfftk
2 parents 8a2b16a8 72b07451
...@@ -113,9 +113,12 @@ public class PlaceBean implements PlaceBeanLocal { ...@@ -113,9 +113,12 @@ public class PlaceBean implements PlaceBeanLocal {
} }
/** /**
* Calculate the price of reserved places for the user Optional parameter newPlace can be given when the place is added to the price calculations; * Calculate the price of reserved places for the user Optional parameter
* newPlace can be given when the place is added to the price calculations;
* *
* User parameter can be used to select another user than the currently logged in user, but if user does not have enough rights an exception will be thrown * User parameter can be used to select another user than the currently
* logged in user, but if user does not have enough rights an exception will
* be thrown
* *
*/ */
...@@ -246,11 +249,23 @@ public class PlaceBean implements PlaceBeanLocal { ...@@ -246,11 +249,23 @@ public class PlaceBean implements PlaceBeanLocal {
// } // }
// logger.debug("timeouting places"); // logger.debug("timeouting places");
// placeFacade.releasePlaces(permbean.getCurrentUser()); // placeFacade.releasePlaces(permbean.getCurrentUser());
// } // }
@Override @Override
@RolesAllowed({ MapPermission.S_BUY_PLACES, MapPermission.S_MANAGE_OTHERS }) @RolesAllowed({ MapPermission.S_BUY_PLACES, MapPermission.S_MANAGE_OTHERS })
public PlaceGroup buySelectedPlaces(EventUser user) throws BortalCatchableException { public PlaceGroup buySelectedPlaces(EventUser user) throws BortalCatchableException {
return buyOrReserveSelectedPlaces(user, true);
}
@Override
@RolesAllowed({ MapPermission.S_MANAGE_OTHERS })
public PlaceGroup reserveSelectedPlaces(EventUser eventuser) throws BortalCatchableException {
return buyOrReserveSelectedPlaces(eventuser, false);
}
/**
* Reserves places and creates accountevents for the places.
*/
public PlaceGroup buyOrReserveSelectedPlaces(EventUser user, boolean createAccountevents) throws BortalCatchableException {
if (user == null) { if (user == null) {
user = permbean.getCurrentUser(); user = permbean.getCurrentUser();
} else { } else {
...@@ -268,18 +283,19 @@ public class PlaceBean implements PlaceBeanLocal { ...@@ -268,18 +283,19 @@ public class PlaceBean implements PlaceBeanLocal {
} }
// PlaceGroup pg = pgbean.createPlaceGroup(user); // PlaceGroup pg = pgbean.createPlaceGroup(user);
if (!createAccountevents)
{
BigDecimal totalprice = addAndCalcPrice(user, null);
BigDecimal balance = user.getAccountBalance();
if (balance.compareTo(totalprice) < 0 && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
logger.info("User {} Could not buy things because account balance {} is too low for purchase {}", new Object[] { user, balance, totalprice });
return null;
}
BigDecimal totalprice = addAndCalcPrice(user, null); for (Entry<Product, Integer> line : getPlaceProductcount(places).entrySet()) {
BigDecimal balance = user.getAccountBalance(); productPBean.createAccountEvent(line.getKey(), new BigDecimal(line.getValue()), user, Calendar.getInstance());
if (balance.compareTo(totalprice) < 0 && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) { }
logger.info("User {} Could not buy things because account balance {} is too low for purchase {}", new Object[] { user, balance, totalprice });
return null;
}
for (Entry<Product, Integer> line : getPlaceProductcount(places).entrySet()) {
productPBean.createAccountEvent(line.getKey(), new BigDecimal(line.getValue()), user, Calendar.getInstance());
} }
PlaceGroup pg = new PlaceGroup(event, Calendar.getInstance(), Calendar.getInstance(), true); PlaceGroup pg = new PlaceGroup(event, Calendar.getInstance(), Calendar.getInstance(), true);
pg.setCreator(user); pg.setCreator(user);
pgfacade.create(pg); pgfacade.create(pg);
...@@ -596,4 +612,5 @@ public class PlaceBean implements PlaceBeanLocal { ...@@ -596,4 +612,5 @@ public class PlaceBean implements PlaceBeanLocal {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
} }
...@@ -63,10 +63,13 @@ public interface PlaceBeanLocal { ...@@ -63,10 +63,13 @@ public interface PlaceBeanLocal {
*/ */
byte[] generatePlacesPdf(float width, float height, double font1, double font2); byte[] generatePlacesPdf(float width, float height, double font1, double font2);
// public byte[] generatePlacesPdf(double width, double height, double font1, double font2); // public byte[] generatePlacesPdf(double width, double height, double font1, double font2);
List<GroupMembership> matchGroupMembershipsByInviteToken(String token); List<GroupMembership> matchGroupMembershipsByInviteToken(String token);
GroupMembership findGroupMembershipsByToken(String token); GroupMembership findGroupMembershipsByToken(String token);
PlaceGroup reserveSelectedPlaces(EventUser eventuser) throws BortalCatchableException;
} }
...@@ -22,6 +22,14 @@ public class UserSearchQuery extends SearchQuery { ...@@ -22,6 +22,14 @@ public class UserSearchQuery extends SearchQuery {
private BigDecimal accountSaldo; private BigDecimal accountSaldo;
private DatabaseValueCompare accountSaldoCompare = DatabaseValueCompare.NONE; private DatabaseValueCompare accountSaldoCompare = DatabaseValueCompare.NONE;
public UserSearchQuery() {
super();
}
public UserSearchQuery(int page, int pagesize, String sort, String search, QuerySortOrder direction) {
super(page, pagesize, sort, search, direction);
}
public DatabaseValueCompare[] getAccountCompareValues() public DatabaseValueCompare[] getAccountCompareValues()
{ {
return DatabaseValueCompare.values(); return DatabaseValueCompare.values();
...@@ -38,11 +46,11 @@ public class UserSearchQuery extends SearchQuery { ...@@ -38,11 +46,11 @@ public class UserSearchQuery extends SearchQuery {
public boolean isUsersWithUnusedCodes() { public boolean isUsersWithUnusedCodes() {
return usersWithUnusedCodes; return usersWithUnusedCodes;
} }
public void setUsersWithUnusedCodes(boolean usersWithUnusedCodes) { public void setUsersWithUnusedCodes(boolean usersWithUnusedCodes) {
this.usersWithUnusedCodes = usersWithUnusedCodes; this.usersWithUnusedCodes = usersWithUnusedCodes;
} }
public List<Role> getFilterRoles() { public List<Role> getFilterRoles() {
return filterRoles; return filterRoles;
} }
......
...@@ -20,12 +20,13 @@ public class SearchQuery implements Serializable { ...@@ -20,12 +20,13 @@ public class SearchQuery implements Serializable {
super(); super();
} }
public SearchQuery(int page, int pagesize, String sort, String search, boolean direction) { public SearchQuery(int page, int pagesize, String sort, String search, QuerySortOrder direction) {
super(); super();
this.page = page; this.page = page;
this.pagesize = pagesize; this.pagesize = pagesize;
this.sort = sort; this.sort = sort;
this.search = search; this.search = search;
this.sortDirection = direction;
} }
public int getPage() { public int getPage() {
...@@ -42,14 +43,15 @@ public class SearchQuery implements Serializable { ...@@ -42,14 +43,15 @@ public class SearchQuery implements Serializable {
} }
public int getPagesize() { public int getPagesize() {
if (pagesize < 1) {
pagesize = 20;
}
return pagesize; return pagesize;
} }
public void setPagesize(int pagesize) { public void setPagesize(int pagesize) {
this.pagesize = pagesize; if (pagesize < 1)
pagesize = 20;
else
this.pagesize = pagesize;
} }
public String getSort() { public String getSort() {
......
...@@ -150,7 +150,7 @@ public class MapAdminView { ...@@ -150,7 +150,7 @@ public class MapAdminView {
if (placebean.reservePlace(place, eventuser)) if (placebean.reservePlace(place, eventuser))
{ {
try { try {
placebean.buySelectedPlaces(eventuser); placebean.reserveSelectedPlaces(eventuser);
return Response.ok().build(); return Response.ok().build();
} catch (BortalCatchableException e) { } catch (BortalCatchableException e) {
logger.warn("Wtf! Bortalerror"); logger.warn("Wtf! Bortalerror");
......
...@@ -12,6 +12,7 @@ import fi.codecrew.moya.beans.UserBeanLocal; ...@@ -12,6 +12,7 @@ import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.rest.pojo.SimpleEventuserRoot; import fi.codecrew.moya.rest.pojo.SimpleEventuserRoot;
import fi.codecrew.moya.util.UserSearchQuery; import fi.codecrew.moya.util.UserSearchQuery;
import fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder;
import fi.codecrew.moya.utilities.SearchResult; import fi.codecrew.moya.utilities.SearchResult;
@RequestScoped @RequestScoped
...@@ -26,10 +27,8 @@ public class UserRestView { ...@@ -26,10 +27,8 @@ public class UserRestView {
@GET @GET
@Path("/eventusers") @Path("/eventusers")
public SimpleEventuserRoot getEventUsers() { public SimpleEventuserRoot getEventUsers() {
UserSearchQuery q = new UserSearchQuery(); UserSearchQuery q = new UserSearchQuery(0, 0, null, null, QuerySortOrder.UNSORTED);
q.setPagesize(0);
SearchResult<EventUser> users = userbean.getThisEventsUsers(q); SearchResult<EventUser> users = userbean.getThisEventsUsers(q);
return SimpleEventuserRoot.parse(users.getResults()); return SimpleEventuserRoot.parse(users.getResults());
} }
} }
...@@ -24,6 +24,7 @@ import fi.codecrew.moya.model.Place; ...@@ -24,6 +24,7 @@ import fi.codecrew.moya.model.Place;
import fi.codecrew.moya.model.PlaceGroup; import fi.codecrew.moya.model.PlaceGroup;
import fi.codecrew.moya.model.User; import fi.codecrew.moya.model.User;
import fi.codecrew.moya.utilities.SearchQuery; import fi.codecrew.moya.utilities.SearchQuery;
import fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder;
import fi.codecrew.moya.web.annotations.SelectedUser; import fi.codecrew.moya.web.annotations.SelectedUser;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
...@@ -158,7 +159,7 @@ public class PlaceView extends GenericCDIView { ...@@ -158,7 +159,7 @@ public class PlaceView extends GenericCDIView {
public String searchUser() { public String searchUser() {
super.beginConversation(); super.beginConversation();
userlist = new ListDataModel<User>(userbean.getUsers(new SearchQuery(0, 0, null, searchuser, false)).getResults()); userlist = new ListDataModel<User>(userbean.getUsers(new SearchQuery(0, 20, null, searchuser, QuerySortOrder.DESCENDING)).getResults());
return null; return null;
} }
......
...@@ -27,6 +27,7 @@ import fi.codecrew.moya.model.ReaderType; ...@@ -27,6 +27,7 @@ import fi.codecrew.moya.model.ReaderType;
import fi.codecrew.moya.model.Role; import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.User; import fi.codecrew.moya.model.User;
import fi.codecrew.moya.utilities.SearchQuery; import fi.codecrew.moya.utilities.SearchQuery;
import fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.shop.UserCardWrapper; import fi.codecrew.moya.web.cdiview.shop.UserCardWrapper;
import fi.codecrew.moya.web.cdiview.user.UserView; import fi.codecrew.moya.web.cdiview.user.UserView;
...@@ -148,7 +149,7 @@ public class ReaderView extends GenericCDIView { ...@@ -148,7 +149,7 @@ public class ReaderView extends GenericCDIView {
if (usersearch == null || usersearch.length() < 2) { if (usersearch == null || usersearch.length() < 2) {
super.addFaceMessage("user.tooShortSearch"); super.addFaceMessage("user.tooShortSearch");
} else { } else {
userlist = UserCardWrapper.initWrapper(userbean.getUsers(new SearchQuery(0, 0, null, usersearch, false)).getResults(), userbean); userlist = UserCardWrapper.initWrapper(userbean.getUsers(new SearchQuery(0, 20, null, usersearch, QuerySortOrder.DESCENDING)).getResults(), userbean);
} }
return null; return null;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!