Advertised Articles now shown correctly
This commit is contained in:
		@ -0,0 +1,20 @@
 | 
			
		||||
package org.hso.ecommerce.action.shop;
 | 
			
		||||
 | 
			
		||||
import org.hso.ecommerce.entities.shop.Article;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class GetRandomArticlesAction {
 | 
			
		||||
 | 
			
		||||
    public static List<Article> getRandomArticles(int quantity, List<Article> advertisedArticles) {
 | 
			
		||||
        List<Article> randomisedArticles = new ArrayList<Article>();
 | 
			
		||||
        for (int i = 0; i < quantity; i++) {
 | 
			
		||||
            int index = (int) (Math.random() * advertisedArticles.size());
 | 
			
		||||
            randomisedArticles.add(advertisedArticles.remove(index));
 | 
			
		||||
            if(advertisedArticles.size() == 0)
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        return randomisedArticles;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
package org.hso.ecommerce.controller.shop;
 | 
			
		||||
 | 
			
		||||
import org.apache.tomcat.util.http.fileupload.IOUtils;
 | 
			
		||||
import org.hso.ecommerce.action.shop.GetRandomArticlesAction;
 | 
			
		||||
import org.hso.ecommerce.entities.shop.Article;
 | 
			
		||||
import org.hso.ecommerce.entities.shop.ShoppingCart;
 | 
			
		||||
import org.hso.ecommerce.repos.shop.ArticleRepository;
 | 
			
		||||
@ -16,6 +17,7 @@ import javax.servlet.http.HttpSession;
 | 
			
		||||
import java.io.FileInputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@Controller
 | 
			
		||||
@ -36,7 +38,7 @@ public class ShopArticleController {
 | 
			
		||||
        Article article = articleRepository.findArticleById(id);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if(article == null) {
 | 
			
		||||
        if (article == null) {
 | 
			
		||||
            request.setAttribute("error", "Der Artikel wurde nicht gefunden.");
 | 
			
		||||
            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
 | 
			
		||||
            return "error/404";
 | 
			
		||||
@ -51,7 +53,7 @@ public class ShopArticleController {
 | 
			
		||||
            model.addAttribute("inStock", false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        List<Article> commercialArticles = articleRepository.getAdvertisedArticles();
 | 
			
		||||
        List<Article> commercialArticles = GetRandomArticlesAction.getRandomArticles(4, articleRepository.getAdvertisedArticles());
 | 
			
		||||
        model.addAttribute("commercialArticles", commercialArticles);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
package org.hso.ecommerce.controller.shop;
 | 
			
		||||
 | 
			
		||||
import org.hso.ecommerce.action.shop.GetRandomArticlesAction;
 | 
			
		||||
import org.hso.ecommerce.entities.shop.Article;
 | 
			
		||||
import org.hso.ecommerce.repos.shop.ArticleRepository;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpSession;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@Controller
 | 
			
		||||
@ -26,7 +28,7 @@ public class ShopIndexController {
 | 
			
		||||
    @GetMapping("/shop/")
 | 
			
		||||
    public String shop(Model model, HttpSession session) {
 | 
			
		||||
 | 
			
		||||
        List<Article> commercialArticles = articleRepository.getAdvertisedArticles();
 | 
			
		||||
        List<Article> commercialArticles = GetRandomArticlesAction.getRandomArticles(8, articleRepository.getAdvertisedArticles());
 | 
			
		||||
        model.addAttribute("commercialArticles", commercialArticles);
 | 
			
		||||
 | 
			
		||||
        //check if logged in
 | 
			
		||||
@ -39,7 +41,7 @@ public class ShopIndexController {
 | 
			
		||||
 | 
			
		||||
        if (isLoggedIn) {
 | 
			
		||||
            List<Article> suggestedArticles = articleRepository.getLastOrderedArticles("4");
 | 
			
		||||
            if(suggestedArticles.size() > 0) {
 | 
			
		||||
            if (suggestedArticles.size() > 0) {
 | 
			
		||||
                model.addAttribute("suggestedArticles", suggestedArticles);
 | 
			
		||||
                hasOrders = true;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@
 | 
			
		||||
                    <p th:text="${article.description}"></p>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="s">
 | 
			
		||||
                    <img th:src="@{/shop/articles/{id}/image.jpg(id=${article.id})}" class="s"/>
 | 
			
		||||
                    <img th:src="@{/shop/articles/{id}/image.jpg(id=${article.id})}"/>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="s"></div>
 | 
			
		||||
                <form class="s" method="POST">
 | 
			
		||||
@ -56,7 +56,7 @@
 | 
			
		||||
            <h1>Weitere Schnäppchen</h1>
 | 
			
		||||
            <div class='grid m base shadow'>
 | 
			
		||||
                <section th:each="article: ${commercialArticles}"><a th:href="@{/shop/articles/{id}(id = ${article.id})}" class="section">
 | 
			
		||||
                    <img th:src="@{/shop/articles/{id}/image.jpg(id=${article.id})}" class="s"/>
 | 
			
		||||
                    <img th:src="@{/shop/articles/{id}/image.jpg(id=${article.id})}"/>
 | 
			
		||||
                    <h2 th:text="${article.title}"></h2>
 | 
			
		||||
                    <p class='price' th:text="${article.shopPricePerUnitNetCent}"></p>
 | 
			
		||||
                    <p th:text="${article.description}"></p>
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@
 | 
			
		||||
                <section th:each="article: ${commercialArticles}">
 | 
			
		||||
                    <a th:href="@{/shop/articles/{id}(id=${article.id})}" class="section">
 | 
			
		||||
 | 
			
		||||
                        <img th:src="@{/shop/articles/{id}/image.jpg(id=${article.id})}" class="s"/>
 | 
			
		||||
                        <img th:src="@{/shop/articles/{id}/image.jpg(id=${article.id})}"/>
 | 
			
		||||
                        <h2 th:text="${article.title}" />
 | 
			
		||||
                        <p class='price' th:text="${article.shopPricePerUnitNetCent}" />
 | 
			
		||||
                        <p th:text="${article.description}" />
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user