diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java b/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java index 05280ab..45c4d32 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java @@ -3,7 +3,6 @@ package org.hso.ecommerce.controller; import org.hso.ecommerce.action.user.CreateDeliveryData; import org.hso.ecommerce.action.user.UpdateUserSettingsAction; import org.hso.ecommerce.api.RestServiceForDelivery; -import org.hso.ecommerce.entities.shop.Address; import org.hso.ecommerce.entities.shop.CustomerOrder; import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.repos.shop.CustomerOrderRepository; @@ -12,16 +11,11 @@ import org.hso.ecommerce.uimodel.DeliveryData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.util.List; -import java.util.Map; -import java.util.function.Function; import java.util.stream.Collectors; @Controller @@ -44,32 +38,48 @@ public class UserController { @GetMapping("/settings") public String userSettings(Model model, - HttpSession session + @RequestAttribute("user") User user ) { - long userId = (long) session.getAttribute("userId"); - User user = userRepository.findById(userId).get(); - if(user.defaultDeliveryAddress == null){ - user.defaultDeliveryAddress = new Address(); - } model.addAttribute("user", user); return "user/settings"; } @GetMapping("/orders/") - public String userOrders(HttpSession session, - Model model + public String userOrders( + @RequestAttribute("user") User user, + Model model ) { - List orders = customerOrderRepository.getAllOrders(); + List orders = customerOrderRepository.getOrdersByUserId(user.id); - Map customerOrderDeliveryDataMap = orders.stream(). - collect(Collectors.toMap(Function.identity(), c -> CreateDeliveryData.getDeliveryDataFromCustomerOrder(c, customerOrderRepository, restServiceForDelivery))); + List customerOrderDeliveryDataMap = orders + .stream() + .map(o -> new CustomerOrderDelivery(o, CreateDeliveryData.getDeliveryDataFromCustomerOrder(o, customerOrderRepository, restServiceForDelivery))) + .collect(Collectors.toList()); model.addAttribute("orderDeliveryDataMap", customerOrderDeliveryDataMap); return "user/orders/index"; } + static class CustomerOrderDelivery { + private CustomerOrder customerOrder; + private DeliveryData deliveryData; + + public CustomerOrderDelivery(CustomerOrder customerOrder, DeliveryData deliveryData) { + this.customerOrder = customerOrder; + this.deliveryData = deliveryData; + } + + public CustomerOrder getCustomerOrder() { + return customerOrder; + } + + public DeliveryData getDeliveryData() { + return deliveryData; + } + } + @PostMapping("/settings/changeMail") public String changeMail(HttpSession session, @RequestParam("email") String email, diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/customers/CustomerOrderController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/customers/CustomerOrderController.java index 1ab17b9..76020cd 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/customers/CustomerOrderController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/customers/CustomerOrderController.java @@ -12,8 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; -import java.util.*; -import java.util.function.Function; +import java.util.List; import java.util.stream.Collectors; @Controller @@ -27,22 +26,42 @@ public class CustomerOrderController { @GetMapping("") public String internCustomerOrder(Model model) { - List orders = customerOrderRepository.getAllOrders(); + List orders = customerOrderRepository.getAllOrders(); - Map customerOrderDeliveryDataMap = orders.stream().collect - (Collectors.toMap - (Function.identity(), c-> CreateDeliveryData.getDeliveryDataFromCustomerOrder(c,customerOrderRepository,restServiceForDelivery))); + List customerOrderDeliveryDataMap = orders + .stream() + .map(o -> new CustomerOrderDelivery(o, CreateDeliveryData.getDeliveryDataFromCustomerOrder(o, customerOrderRepository, restServiceForDelivery))) + .collect(Collectors.toList()); model.addAttribute("orderDeliveryDataMap", customerOrderDeliveryDataMap); + return "intern/customerOrders/index"; } + static class CustomerOrderDelivery { + private CustomerOrder customerOrder; + private DeliveryData deliveryData; + + public CustomerOrderDelivery(CustomerOrder customerOrder, DeliveryData deliveryData) { + this.customerOrder = customerOrder; + this.deliveryData = deliveryData; + } + + public CustomerOrder getCustomerOrder() { + return customerOrder; + } + + public DeliveryData getDeliveryData() { + return deliveryData; + } + } + @GetMapping("/{id}") public String internCustomerOrdersId(Model model, @PathVariable("id") String id ) { CustomerOrder order = customerOrderRepository.findById(Long.parseLong(id)).get(); - DeliveryData deliveryData = CreateDeliveryData.getDeliveryDataFromCustomerOrder(order, customerOrderRepository,restServiceForDelivery); + DeliveryData deliveryData = CreateDeliveryData.getDeliveryDataFromCustomerOrder(order, customerOrderRepository, restServiceForDelivery); model.addAttribute("order", order); model.addAttribute("deliveryData", deliveryData); diff --git a/prototype/src/main/resources/templates/intern/customerOrders/index.html b/prototype/src/main/resources/templates/intern/customerOrders/index.html index e682721..71a530a 100644 --- a/prototype/src/main/resources/templates/intern/customerOrders/index.html +++ b/prototype/src/main/resources/templates/intern/customerOrders/index.html @@ -41,14 +41,16 @@ - 101 - - - - - Bestellung wurde elektronisch angekündigt - DHL-Server ist gerade nicht erreichbar - Details + 101 + + + + + Bestellung wurde elektronisch angekündigt + DHL-Server ist gerade nicht erreichbar + Details +

diff --git a/prototype/src/main/resources/templates/user/orders/index.html b/prototype/src/main/resources/templates/user/orders/index.html index a55beae..d54074e 100644 --- a/prototype/src/main/resources/templates/user/orders/index.html +++ b/prototype/src/main/resources/templates/user/orders/index.html @@ -29,23 +29,30 @@ - - - + + + - - - + + + - + -
LieferstatusBestellung wurde elektronisch angekündigtDHL-Server ist gerade nicht erreichbar + Bestellung wurde elektronisch angekündigtDHL-Server ist gerade nicht erreichbar
Vorraussichtliche Ankunft: Vorraussichtliche Ankunft: --:--:----Angekommen Ankunft: + Vorraussichtliche Ankunft: + + Vorraussichtliche Ankunft: --:--:---- + + Angekommen Ankunft: +
Sendeverfolgungsnummer
+
@@ -56,11 +63,13 @@ Menge Preis (Brutto) - - - - - + + + + + @@ -72,13 +81,13 @@ Artikel (Netto) - + Umsatzsteuer - + @@ -87,7 +96,7 @@

Gesammtpreis

-

+