WIP feature/listedArticles #15
|
@ -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