WIP feature/listedArticles #15
|
@ -6,6 +6,7 @@ import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -20,11 +21,32 @@ public class ShopIndexController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/shop/")
|
@GetMapping("/shop/")
|
||||||
public String shop(Model model) {
|
public String shop(Model model, HttpSession session) {
|
||||||
|
|
||||||
ArrayList<Article> dummyArticles = getArticles();
|
//TODO: get commercialised Articles
|
||||||
|
ArrayList<Article> commercialArticles = getArticles();
|
||||||
|
model.addAttribute("commercialArticles", commercialArticles);
|
||||||
|
|
||||||
|
//check if logged in
|
||||||
|
boolean isLoggedIn = false;
|
||||||
|
boolean hasOrders = false;
|
||||||
|
if (session != null && session.getAttribute("id") != null) {
|
||||||
|
long userId = (long) session.getAttribute("id");
|
||||||
|
isLoggedIn = true;
|
||||||
|
if (false) {
|
||||||
|
hasOrders = true; //TODO: Find out whether user has orders!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
model.addAttribute("isLoggedIn", isLoggedIn);
|
||||||
|
model.addAttribute("hasOrders", hasOrders);
|
||||||
|
|
||||||
|
|
||||||
|
if (hasOrders) {
|
||||||
|
//TODO: get up to last 4 Orders
|
||||||
|
ArrayList<Article> suggestedArticles = getArticles();
|
||||||
|
model.addAttribute("suggestedArticles", suggestedArticles);
|
||||||
|
}
|
||||||
|
|
||||||
model.addAttribute("articles", dummyArticles);
|
|
||||||
return "shop/index";
|
return "shop/index";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,8 +66,7 @@ public class ShopIndexController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ArrayList<Article> getArticles() {
|
||||||
public ArrayList<Article> getArticles(){
|
|
||||||
ArrayList<Article> dummyArticles = new ArrayList<Article>();
|
ArrayList<Article> dummyArticles = new ArrayList<Article>();
|
||||||
|
|
||||||
Article d1 = new Article();
|
Article d1 = new Article();
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<script th:src="@{/js/back.js}"></script>
|
<script th:src="@{/js/back.js}"></script>
|
||||||
<div class="back" data-group="shop" data-name="Zurück zur Startseite." data-insert="false"></div>
|
<div class="back" data-group="shop" data-name="Zurück zur Startseite." data-insert="false"></div>
|
||||||
<div class='grid m base shadow'>
|
<div class='grid m base shadow'>
|
||||||
<section th:each="article: ${articles}">
|
<section th:each="article: ${commercialArticles}">
|
||||||
<a th:href="@{/shop/articles/{id}(id=${article.id})}" class="section">
|
<a th:href="@{/shop/articles/{id}(id=${article.id})}" class="section">
|
||||||
|
|
||||||
<img th:src="@{/img/product-1.jpg}"/>
|
<img th:src="@{/img/product-1.jpg}"/>
|
||||||
|
@ -38,7 +38,9 @@
|
||||||
<div class=''>
|
<div class=''>
|
||||||
<div class='content-width'>
|
<div class='content-width'>
|
||||||
<h1>Personalisierte Empfehlungen</h1>
|
<h1>Personalisierte Empfehlungen</h1>
|
||||||
<div class="grid l">
|
|
||||||
|
<!-- if a User is NOT logged in-->
|
||||||
|
<div class="grid l" th:if="${isLoggedIn == false}">
|
||||||
<img th:src="@{/img/undraw_successful_purchase_secondary.svg}"/>
|
<img th:src="@{/img/undraw_successful_purchase_secondary.svg}"/>
|
||||||
<div>
|
<div>
|
||||||
<h2>Werde jetzt Kunde</h2>
|
<h2>Werde jetzt Kunde</h2>
|
||||||
|
@ -49,6 +51,26 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- If User is logged in but hasn't ordered anything yet-->
|
||||||
|
<div th:if="$isLoggedIn == true and $hasOrders == false">
|
||||||
|
<h1>Jetzt Shoppen und Empfehlungen erhalten!</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- If User is logged in and has ordered something before-->
|
||||||
|
<div th:if="$hasOrders == true">
|
||||||
|
<div class='grid m base shadow'>
|
||||||
|
<section th:each="article: ${suggestedArticles}">
|
||||||
|
<a th:href="@{/shop/articles/{id}(id=${article.id})}" class="section">
|
||||||
|
|
||||||
|
<img th:src="@{/img/product-1.jpg}"/>
|
||||||
|
<h2 th:text="${article.title}" />
|
||||||
|
<p class='price' th:text="${article.shopPricePerUnitNetCent}" />
|
||||||
|
<p th:text="${article.description}" />
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="vertical-spacer s"></div>
|
<div class="vertical-spacer s"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Reference in New Issue