fix better quantities for UI

This commit is contained in:
Hannes Huber 2020-05-08 13:01:29 +02:00 committed by localhorst
parent bb4aa79243
commit 143a53acf5
4 changed files with 14 additions and 10 deletions

View File

@ -9,11 +9,10 @@ public class GetRandomArticlesAction {
public static List<Article> getRandomArticles(int quantity, List<Article> advertisedArticles) { public static List<Article> getRandomArticles(int quantity, List<Article> advertisedArticles) {
List<Article> randomisedArticles = new ArrayList<Article>(); List<Article> randomisedArticles = new ArrayList<Article>();
for (int i = 0; i < quantity; i++) { int loopcount = quantity > advertisedArticles.size() ? advertisedArticles.size() : quantity;
for (int i = 0; i < loopcount; i++) {
int index = (int) (Math.random() * advertisedArticles.size()); int index = (int) (Math.random() * advertisedArticles.size());
randomisedArticles.add(advertisedArticles.remove(index)); randomisedArticles.add(advertisedArticles.remove(index));
if(advertisedArticles.size() == 0)
break;
} }
return randomisedArticles; return randomisedArticles;
} }

View File

@ -4,7 +4,9 @@ import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.hso.ecommerce.action.shop.GetRandomArticlesAction; import org.hso.ecommerce.action.shop.GetRandomArticlesAction;
import org.hso.ecommerce.entities.shop.Article; import org.hso.ecommerce.entities.shop.Article;
import org.hso.ecommerce.entities.shop.ShoppingCart; import org.hso.ecommerce.entities.shop.ShoppingCart;
import org.hso.ecommerce.entities.warehouse.WarehouseBookingPositionSlotEntry;
import org.hso.ecommerce.repos.shop.ArticleRepository; import org.hso.ecommerce.repos.shop.ArticleRepository;
import org.hso.ecommerce.repos.warehouse.WarehouseBookingPositionSlotEntryRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -27,6 +29,9 @@ public class ShopArticleController {
@Autowired @Autowired
private final ArticleRepository articleRepository = null; private final ArticleRepository articleRepository = null;
@Autowired
private final WarehouseBookingPositionSlotEntryRepository warehouseBookingPositionSlotEntryRepository = null;
@GetMapping("/{id}") @GetMapping("/{id}")
public String shopArticlesById(Model model, public String shopArticlesById(Model model,
@PathVariable("id") Long id, @PathVariable("id") Long id,
@ -46,14 +51,15 @@ public class ShopArticleController {
model.addAttribute("article", article); model.addAttribute("article", article);
//TODO: Check if in Stock
if (false) { //if (warehouseBookingPositionSlotEntryRepository.getByArticle(id).get(0).newSumSlot > 0) { //TODO: use this as soon as warehouse works
if (true) {
model.addAttribute("inStock", true); model.addAttribute("inStock", true);
} else { } else {
model.addAttribute("inStock", false); model.addAttribute("inStock", false);
} }
List<Article> commercialArticles = GetRandomArticlesAction.getRandomArticles(4, articleRepository.getAdvertisedArticles()); List<Article> commercialArticles = GetRandomArticlesAction.getRandomArticles(3, articleRepository.getAdvertisedArticles());
model.addAttribute("commercialArticles", commercialArticles); model.addAttribute("commercialArticles", commercialArticles);

View File

@ -32,7 +32,6 @@ public class ShopIndexController {
List<Article> commercialArticles = GetRandomArticlesAction.getRandomArticles(8, articleRepository.getAdvertisedArticles()); List<Article> commercialArticles = GetRandomArticlesAction.getRandomArticles(8, articleRepository.getAdvertisedArticles());
model.addAttribute("commercialArticles", commercialArticles); model.addAttribute("commercialArticles", commercialArticles);
boolean isLoggedIn = false; boolean isLoggedIn = false;
boolean hasOrders = false; boolean hasOrders = false;
if (session != null && session.getAttribute("id") != null) { if (session != null && session.getAttribute("id") != null) {
@ -41,8 +40,8 @@ public class ShopIndexController {
} }
if (isLoggedIn) { if (isLoggedIn) {
List<Article> suggestedArticles = articleRepository.getLastOrderedArticles(); List<Article> suggestedArticles = articleRepository.getOrderedArticles();
suggestedArticles = suggestedArticles.size() > 3 ? suggestedArticles.subList(0,3) : suggestedArticles; //only latest 4 articles suggestedArticles = suggestedArticles.size() > 3 ? suggestedArticles.subList(0,4) : suggestedArticles; //only latest 4 articles
if (suggestedArticles.size() > 0) { if (suggestedArticles.size() > 0) {
model.addAttribute("suggestedArticles", suggestedArticles); model.addAttribute("suggestedArticles", suggestedArticles);
hasOrders = true; hasOrders = true;

View File

@ -22,7 +22,7 @@ public interface ArticleRepository extends JpaRepository<Article, Long> {
@Query("SELECT a FROM CustomerOrderPosition cop JOIN cop.order co JOIN co.customer c JOIN cop.article a ORDER BY co.id DESC") @Query("SELECT a FROM CustomerOrderPosition cop JOIN cop.order co JOIN co.customer c JOIN cop.article a ORDER BY co.id DESC")
List<Article> getLastOrderedArticles(); List<Article> getOrderedArticles();
} }