diff --git a/Boot2018.sql b/Boot2018.sql new file mode 100644 index 0000000..2737e0e --- /dev/null +++ b/Boot2018.sql @@ -0,0 +1,190 @@ +CREATE DATABASE IF NOT EXISTS `boot2018` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */; +USE `boot2018`; +-- MySQL dump 10.13 Distrib 8.0.11, for Win64 (x86_64) +-- +-- Host: localhost Database: boot2018 +-- ------------------------------------------------------ +-- Server version 8.0.11 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; + SET NAMES utf8 ; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `client` +-- + +DROP TABLE IF EXISTS `client`; +/*!40101 SET @saved_cs_client = @@character_set_client */; + SET character_set_client = utf8mb4 ; +CREATE TABLE `client` ( + `idClient` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(45) DEFAULT NULL, + `lastName` varchar(45) DEFAULT NULL, + `description` varchar(45) DEFAULT NULL, + PRIMARY KEY (`idClient`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client` +-- + +LOCK TABLES `client` WRITE; +/*!40000 ALTER TABLE `client` DISABLE KEYS */; +/*!40000 ALTER TABLE `client` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `discount` +-- + +DROP TABLE IF EXISTS `discount`; +/*!40101 SET @saved_cs_client = @@character_set_client */; + SET character_set_client = utf8mb4 ; +CREATE TABLE `discount` ( + `idDiscount` int(11) NOT NULL AUTO_INCREMENT, + `idItem` int(11) DEFAULT NULL, + `quantity` int(11) DEFAULT NULL, + `price` decimal(10,2) DEFAULT NULL, + `description` varchar(45) DEFAULT NULL, + PRIMARY KEY (`idDiscount`), + KEY `Item_idx` (`idItem`), + CONSTRAINT `Item` FOREIGN KEY (`idItem`) REFERENCES `item` (`iditem`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `discount` +-- + +LOCK TABLES `discount` WRITE; +/*!40000 ALTER TABLE `discount` DISABLE KEYS */; +INSERT INTO `discount` VALUES (1,4,5,5.00,NULL); +/*!40000 ALTER TABLE `discount` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `item` +-- + +DROP TABLE IF EXISTS `item`; +/*!40101 SET @saved_cs_client = @@character_set_client */; + SET character_set_client = utf8mb4 ; +CREATE TABLE `item` ( + `idItem` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(45) DEFAULT NULL, + `price` decimal(10,2) DEFAULT NULL, + PRIMARY KEY (`idItem`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `item` +-- + +LOCK TABLES `item` WRITE; +/*!40000 ALTER TABLE `item` DISABLE KEYS */; +INSERT INTO `item` VALUES (2,'Sprite',46.00),(3,'Coke',45.50),(4,'Potato',2.00); +/*!40000 ALTER TABLE `item` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `order` +-- + +DROP TABLE IF EXISTS `order`; +/*!40101 SET @saved_cs_client = @@character_set_client */; + SET character_set_client = utf8mb4 ; +CREATE TABLE `order` ( + `idOrder` int(11) NOT NULL AUTO_INCREMENT, + `idPayment` int(11) NOT NULL, + PRIMARY KEY (`idOrder`), + KEY `Payment_Order_idx` (`idPayment`), + CONSTRAINT `Payment_Order` FOREIGN KEY (`idPayment`) REFERENCES `payment` (`idpayment`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order` +-- + +LOCK TABLES `order` WRITE; +/*!40000 ALTER TABLE `order` DISABLE KEYS */; +/*!40000 ALTER TABLE `order` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `orderdetail` +-- + +DROP TABLE IF EXISTS `orderdetail`; +/*!40101 SET @saved_cs_client = @@character_set_client */; + SET character_set_client = utf8mb4 ; +CREATE TABLE `orderdetail` ( + `idOrder` int(11) DEFAULT NULL, + `idItem` int(11) DEFAULT NULL, + `quantity` int(11) DEFAULT NULL, + `price` decimal(10,2) DEFAULT NULL, + `idOrderDetail` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`idOrderDetail`), + KEY `idItem_idx` (`idItem`), + KEY `OrderxDetail_idx` (`idOrder`), + CONSTRAINT `OrderxDetail` FOREIGN KEY (`idOrder`) REFERENCES `order` (`idorder`) ON DELETE CASCADE, + CONSTRAINT `idItem` FOREIGN KEY (`idItem`) REFERENCES `item` (`iditem`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `orderdetail` +-- + +LOCK TABLES `orderdetail` WRITE; +/*!40000 ALTER TABLE `orderdetail` DISABLE KEYS */; +/*!40000 ALTER TABLE `orderdetail` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `payment` +-- + +DROP TABLE IF EXISTS `payment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; + SET character_set_client = utf8mb4 ; +CREATE TABLE `payment` ( + `idPayment` int(11) NOT NULL AUTO_INCREMENT, + `idOrder` int(11) DEFAULT NULL, + `idClient` int(11) DEFAULT NULL, + `amount` decimal(10,2) DEFAULT NULL, + PRIMARY KEY (`idPayment`), + KEY `idClient_idx` (`idClient`), + CONSTRAINT `Client_Payment` FOREIGN KEY (`idClient`) REFERENCES `client` (`idclient`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `payment` +-- + +LOCK TABLES `payment` WRITE; +/*!40000 ALTER TABLE `payment` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-06-29 12:55:41 diff --git a/pom.xml b/pom.xml index c35a6bb..19cf55e 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,7 @@ BootCamp2018 Juan 1.0-SNAPSHOT + war @@ -14,24 +15,6 @@ mysql-connector-java 8.0.11 - - javax.servlet - javax.servlet-api - 3.1.0 - - - - javax.servlet.jsp - javax.servlet.jsp-api - 2.3.1 - - - - javax.servlet - jstl - 1.2 - - commons-logging commons-logging @@ -43,6 +26,7 @@ spring-webmvc 5.0.6.RELEASE + org.springframework spring-tx @@ -53,11 +37,36 @@ spring-orm 5.0.6.RELEASE + - com.fasterxml.jackson.dataformat - jackson-dataformat-xml + com.fasterxml.jackson.core + jackson-databind + 2.9.6 + + + + com.mchange + c3p0 + 0.9.2.1 + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + javax.servlet.jsp + javax.servlet.jsp-api + 2.3.1 + + + javax.servlet + jstl + 1.2 + 1.8 diff --git a/src/main/java/com/bootcamp2018/Main.java b/src/main/java/com/bootcamp2018/Main.java deleted file mode 100644 index 895eda0..0000000 --- a/src/main/java/com/bootcamp2018/Main.java +++ /dev/null @@ -1,357 +0,0 @@ -package com.bootcamp2018; - -import com.bootcamp2018.dao.*; - -import com.bootcamp2018.model.*; -import com.bootcamp2018.service.DiscountService; -import com.bootcamp2018.service.ItemService; -import com.bootcamp2018.util.Utility; - - -import java.util.ArrayList; -import java.util.Scanner; - - -public class Main { - - public static void main(String[] Arg) { - int op = 0; - boolean ban = false; - String menu; - ItemDAO itemDAO = new ItemDAO(); - Scanner scanner = new Scanner(System.in); - ArrayList listOfItems; - ItemService is; - try { - while (op != 3) { - System.out.println("Menu"); - System.out.println("1.Enter as Admin"); - System.out.println("2.Enter as Client"); - System.out.println("3.Exit"); - ban = false; - menu = scanner.next(); - if (Utility.isInt(menu)) { - op = Integer.parseInt(menu); - switch (op) { - case 1: - op = 0; - while (op != 5) { - System.out.println("Admin Menu"); - System.out.println("1.Item Menu"); - System.out.println("2.Discount Menu"); - System.out.println("3.Payment Menu"); - System.out.println("4.Clients Menu"); - System.out.println("5.Exit"); - menu = scanner.next(); - if (Utility.isInt(menu)) { - op = Integer.parseInt(menu); - switch (op) { - case 1: - op = 0; - while (op != 5) { - System.out.println("Item Menu"); - System.out.println("1.Create Item"); - System.out.println("2.Retrieve Items"); - System.out.println("3.Update Item"); - System.out.println("4.Delete Item"); - System.out.println("5.Exit"); - menu = scanner.next(); - if (Utility.isInt(menu)) { - op = Integer.parseInt(menu); - switch (op) { - case 1: - while (!ban) { - System.out.println("Enter item name: "); - String name = scanner.next(); - if (name != null) { - while (!ban) { - System.out.println("Enter item price: "); - String prices = scanner.next(); - if (Utility.isDouble(prices)) { - double price = Double.parseDouble(prices); - is = new ItemService(); - Item created = is.create(new Item(name, price)); - if (created == null) { - System.out.println("Error"); - } - ban = true; - - } else { - System.out.println("Please enter a valid value."); - } - } - } else { - System.out.println("Please enter a valid value."); - } - } - break; - case 2: - System.out.println("List of Items: "); - is = new ItemService(); - listOfItems = is.getList(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - scanner.next(); - break; - case 3: - ban = false; - while (!ban) { - System.out.println("List of Items: "); - listOfItems = itemDAO.retriveItems(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - System.out.println("Enter Item Code to modify: "); - String code = scanner.next(); - if (Utility.isInt(code) && listOfItems.contains(new Item(Integer.parseInt(code), "", 0))) { - while (!ban) { - Item updateItem = listOfItems.get(listOfItems.indexOf(new Item(Integer.parseInt(code), "", 0))); - System.out.println("Item current name is: " + updateItem.getName() + ", enter new name: "); - String name = scanner.next(); - if (name != null) { - updateItem.setName(name); - while (!ban) { - System.out.println("Enter item price: "); - String prices = scanner.next(); - if (Utility.isDouble(prices)) { - - updateItem.setPrice(Double.parseDouble(prices)); - is = new ItemService(); - is.update(updateItem); - - if (!ban) { - System.out.println("Error"); - ban = true; - } - } else { - System.out.println("Please enter a valid value."); - } - } - } else { - System.out.println("Please enter a valid value."); - } - - } - } - } - break; - case 4: - System.out.println("List of Items: "); - is = new ItemService(); - listOfItems = is.getList(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - System.out.println("Enter the code of the item you want to delete: "); - String code = scanner.next(); - if (Utility.isInt(code)) { - is = new ItemService(); - is.delete(new Item(Integer.parseInt(code), "", 0)); - } - break; - case 5: - break; - default: - System.out.println("Number must be between 1 and 5"); - break; - } - } - } - break; - case 2: - op = 0; - while (op != 5) { - System.out.println("Discount Menu"); - System.out.println("1.Create Discount"); - System.out.println("2.Retrieve Discount"); - System.out.println("3.Update Discount"); - System.out.println("4.Delete Discount"); - System.out.println("5.Exit"); - menu = scanner.next(); - if (Utility.isInt(menu)) { - op = Integer.parseInt(menu); - switch (op) { - case 1: - while (!ban) { - System.out.println("List of Items: "); - is = new ItemService(); - listOfItems = is.getList(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - System.out.println("Enter code of the item for the discount: "); - String code = scanner.next(); - if (Utility.isInt(code) && listOfItems.contains(new Item(Integer.parseInt(code), "", 0))) { - Item discountItem = listOfItems.get(listOfItems.indexOf(new Item(Integer.parseInt(code), "", 0))); - while (!ban) { - System.out.println("Enter the price for each " + discountItem.getName() + ": "); - String prices = scanner.next(); - if (Utility.isDouble(prices)) { - double price = Double.parseDouble(prices); - while (!ban) { - System.out.println("Enter the quantity of " + discountItem.getName() + ": "); - String quantities = scanner.next(); - if (Utility.isInt(quantities)) { - int quantity = Integer.parseInt(quantities); - DiscountService ds = new DiscountService(); - Discount discount = ds.create(new Discount(discountItem, quantity, price)); - if (discount.getId() == 0) { - System.out.println("error"); - - } - ban = true; - } else { - System.out.println("Please enter a valid value."); - } - } - - } else { - System.out.println("Please enter a valid value."); - } - } - } else { - System.out.println("Please enter a valid value."); - } - } - break; - case 2: - System.out.println("List of Items: "); - is = new ItemService(); - listOfItems = is.getList(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - scanner.next(); - break; - case 3: - ban = false; - while (!ban) { - System.out.println("List of Items: "); - listOfItems = itemDAO.retriveItems(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - System.out.println("Enter Item Code to modify: "); - String code = scanner.next(); - if (Utility.isInt(code) && listOfItems.contains(new Item(Integer.parseInt(code), "", 0))) { - while (!ban) { - Item updateItem = listOfItems.get(listOfItems.indexOf(new Item(Integer.parseInt(code), "", 0))); - System.out.println("Item current name is: " + updateItem.getName() + ", enter new name: "); - String name = scanner.next(); - if (name != null) { - updateItem.setName(name); - while (!ban) { - System.out.println("Enter item price: "); - String prices = scanner.next(); - if (Utility.isDouble(prices)) { - - updateItem.setPrice(Double.parseDouble(prices)); - is = new ItemService(); - is.update(updateItem); - - if (!ban) { - System.out.println("Error"); - ban = true; - } - } else { - System.out.println("Please enter a valid value."); - } - } - } else { - System.out.println("Please enter a valid value."); - } - - } - } - } - break; - case 4: - System.out.println("List of Items: "); - is = new ItemService(); - listOfItems = is.getList(new Item()); - for (Item i : listOfItems - ) { - System.out.println(i.toString()); - } - System.out.println("Enter the code of the item you want to delete: "); - String code = scanner.next(); - if (Utility.isInt(code)) { - is = new ItemService(); - is.delete(new Item(Integer.parseInt(code), "", 0)); - } - break; - case 5: - break; - default: - System.out.println("Number must be between 1 and 5"); - break; - } - } - } - break; - case 3: - break; - case 4: - break; - case 5: - break; - default: - System.out.println("Number must be between 1 and 5"); - break; - } - } - } - break; - case 2: - - break; - case 3: - break; - default: - System.out.println("Number must be between 1 and 3 "); - break; - } - - } - - - } - - } catch (Exception e) { - - } - - - } - - private static boolean isInt(String s) { - try { - Integer.parseInt(s); - } catch (NumberFormatException e) { - return false; - } catch (NullPointerException e) { - return false; - } - return true; - } - - private static boolean isDouble(String s) { - try { - Double.parseDouble(s); - } catch (NumberFormatException e) { - return false; - } catch (NullPointerException e) { - return false; - } - return true; - } - - -} diff --git a/src/main/java/com/bootcamp2018/control/ClientControl.java b/src/main/java/com/bootcamp2018/control/ClientControl.java index 8cd6a6e..c93cecb 100644 --- a/src/main/java/com/bootcamp2018/control/ClientControl.java +++ b/src/main/java/com/bootcamp2018/control/ClientControl.java @@ -1,36 +1,58 @@ package com.bootcamp2018.control; +import com.bootcamp2018.dto.*; import com.bootcamp2018.model.Client; +import com.bootcamp2018.model.Discount; +import com.bootcamp2018.service.ClientService; +import com.bootcamp2018.util.DTOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import java.util.ArrayList; - +@Controller +@RequestMapping("/client") public class ClientControl { + @Autowired + ClientService cs; - public Client create(Client Object) { - return null; - } - + @RequestMapping(value="/create",method = RequestMethod.PUT) + public ResponseEntity create(@RequestBody Client client) { - public Client get(Client Object) { - return null; + return new ResponseEntity<>(DTOUtils.toClientDTO(cs.create(client)),HttpStatus.OK); } - - public ArrayList getList(Client Objact) { - return null; + @RequestMapping(value="/get",method = RequestMethod.POST) + public ResponseEntity get(Client client) { + return new ResponseEntity<>(DTOUtils.toClientDTO(cs.get(client)),HttpStatus.OK); } - public Client update(Client Object) { - return null; + @RequestMapping(value="/get",method = RequestMethod.GET) + public ResponseEntity> getList(@RequestBody Client client) { + ArrayList list = new ArrayList<>(); + for (Client clients:cs.getList(client) + ) { + list.add(DTOUtils.toClientDTO(clients)); + } + return new ResponseEntity<>(list,HttpStatus.OK); } + @RequestMapping(value="/update",method = RequestMethod.POST) + public ResponseEntity update(@RequestBody Client client) { + return new ResponseEntity<>(DTOUtils.toClientDTO(cs.update(client)),HttpStatus.OK); + } - public void delete(Client Object) { - + @RequestMapping(value="/delete",method = RequestMethod.DELETE) + public void delete(@RequestBody Client client) { + cs.delete(client); } //DTO class ver patron } diff --git a/src/main/java/com/bootcamp2018/control/DiscountControl.java b/src/main/java/com/bootcamp2018/control/DiscountControl.java index 0ecaf2c..271c4b3 100644 --- a/src/main/java/com/bootcamp2018/control/DiscountControl.java +++ b/src/main/java/com/bootcamp2018/control/DiscountControl.java @@ -1,34 +1,54 @@ package com.bootcamp2018.control; -import com.bootcamp2018.dao.DiscountDAO; +import com.bootcamp2018.dto.*; import com.bootcamp2018.model.Discount; +import com.bootcamp2018.service.DiscountService; +import com.bootcamp2018.util.DTOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + import java.util.ArrayList; +@Controller +@RequestMapping("/discount") public class DiscountControl { + @Autowired + private DiscountService ds; - public Discount create(Discount object) { - DiscountDAO dDAO = new DiscountDAO(); - return dDAO.createDiscount(object); + @RequestMapping(value="/create",method = RequestMethod.PUT) + public ResponseEntity create(@RequestBody Discount object) { + return new ResponseEntity<>(DTOUtils.toDiscountDTO(ds.create(object)),HttpStatus.OK); } - - public Discount get(Discount object) { - return null; + @RequestMapping(value="/get",method = RequestMethod.POST) + public ResponseEntity get(@RequestBody Discount object) { + return new ResponseEntity<>(DTOUtils.toDiscountDTO(ds.get(object)),HttpStatus.OK); } - - public ArrayList getList(Discount object) { - return null; + @RequestMapping(value="/list",method = RequestMethod.GET) + public ResponseEntity> getList() { + ArrayList list = new ArrayList<>(); + for (Discount discount:ds.getList(new Discount()) + ) { + list.add(DTOUtils.toDiscountDTO(discount)); + } + return new ResponseEntity<>(list,HttpStatus.OK); } + @RequestMapping(value="/update",method = RequestMethod.POST) + public ResponseEntity update(@RequestBody Discount object) { - public Discount update(Discount object) { - return null; + return new ResponseEntity<>(DTOUtils.toDiscountDTO(ds.update(object)), HttpStatus.OK); } - - public void delete(Discount object) { - + @RequestMapping(value="/delete",method = RequestMethod.POST) + public void delete(@RequestBody Discount object) { + ds.delete(object); } } diff --git a/src/main/java/com/bootcamp2018/control/ItemControl.java b/src/main/java/com/bootcamp2018/control/ItemControl.java index 7104a29..7c59b00 100644 --- a/src/main/java/com/bootcamp2018/control/ItemControl.java +++ b/src/main/java/com/bootcamp2018/control/ItemControl.java @@ -1,53 +1,59 @@ package com.bootcamp2018.control; import com.bootcamp2018.dao.ItemDAO; +import com.bootcamp2018.dto.ItemDTO; import com.bootcamp2018.model.Item; -import com.sun.org.glassfish.gmbal.ParameterNames; + +import com.bootcamp2018.service.ItemService; +import com.bootcamp2018.util.DTOUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import javax.annotation.PostConstruct; -import java.lang.reflect.Parameter; import java.util.ArrayList; -@Controller +@RestController @RequestMapping("/item") public class ItemControl { + @Autowired + private ItemService is; - @RequestMapping - public Item create(Item object) { - ItemDAO itemDAO = new ItemDAO(); - return itemDAO.createItem(object); + @RequestMapping(value="/create",method = RequestMethod.PUT) + public ResponseEntity create(@RequestBody Item object) { + Item item = is.create(object); + return new ResponseEntity<>(DTOUtils.toItemDTO(item),HttpStatus.OK); } - @RequestMapping(value="/") - public ResponseEntity get(@RequestBody Item item) { - ItemDAO itemDAO = new ItemDAO(); - item = itemDAO.retriveItem(item.getId()); - return new ResponseEntity(item,HttpStatus.OK); - } - public ArrayList getList(Item object) { - ItemDAO itemDAO = new ItemDAO(); - return itemDAO.retriveItems(object); + @RequestMapping(value="/get",method = RequestMethod.POST) + public ResponseEntity get(@RequestBody Item item) { + Item response = is.get(item); + return new ResponseEntity<>(DTOUtils.toItemDTO(response),HttpStatus.OK); } - - - public Item update(Item object) { - ItemDAO itemDAO = new ItemDAO(); - return itemDAO.updateItem(object); + @RequestMapping(value="/list",method = RequestMethod.POST) + public ResponseEntity> getList(@RequestBody Item object) { + ArrayList list = new ArrayList<>(); + for (Item item :is.getList(object) + ) { + list.add(DTOUtils.toItemDTO(item)); + } + return new ResponseEntity<>(list,HttpStatus.OK); } + @RequestMapping(value="/update",method = RequestMethod.PUT) + public ResponseEntity update(@RequestBody Item object) { + ItemDTO itemDTO; + itemDTO = DTOUtils.toItemDTO(is.update(object)); + return new ResponseEntity(itemDTO,HttpStatus.OK); + } - public void delete(Item object) { - ItemDAO itemDAO = new ItemDAO(); - itemDAO.deleteItem(object); - + @RequestMapping(value="/delete",method = RequestMethod.POST) + public void delete(@RequestBody Item object) { + is.delete(object.getId()); } } diff --git a/src/main/java/com/bootcamp2018/control/OrderControl.java b/src/main/java/com/bootcamp2018/control/OrderControl.java index 9cc3888..14b6dfe 100644 --- a/src/main/java/com/bootcamp2018/control/OrderControl.java +++ b/src/main/java/com/bootcamp2018/control/OrderControl.java @@ -1,33 +1,9 @@ package com.bootcamp2018.control; -import com.bootcamp2018.dto.OrderDTO; - -import java.util.ArrayList; public class OrderControl { - public OrderDTO create(OrderDTO Object) { - return null; - } - - - public OrderDTO get(OrderDTO Object) { - return null; - } - - - public ArrayList getList(OrderDTO Object) { - return null; - } - - public OrderDTO update(OrderDTO Object) { - return null; - } - - - public void delete(OrderDTO Object) { - - } } + diff --git a/src/main/java/com/bootcamp2018/control/OrderDetailControl.java b/src/main/java/com/bootcamp2018/control/OrderDetailControl.java index 14445c7..b070c30 100644 --- a/src/main/java/com/bootcamp2018/control/OrderDetailControl.java +++ b/src/main/java/com/bootcamp2018/control/OrderDetailControl.java @@ -1,32 +1,39 @@ package com.bootcamp2018.control; import com.bootcamp2018.dto.OrderDetailDTO; - +import com.bootcamp2018.model.*; +import com.bootcamp2018.model.OrderDetail; +import com.bootcamp2018.service.OrderDetailService; +import com.bootcamp2018.util.DTOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import java.util.ArrayList; +@Controller +@RequestMapping("/orderDetail") public class OrderDetailControl { + @Autowired + private OrderDetailService ods; - public OrderDetailDTO create(OrderDetailDTO Object) { - - return Object; - } - - - public OrderDetailDTO get(OrderDetailDTO Object) { - return null; - } - - - public ArrayList getList(OrderDetailDTO Object) { - return null; - } - + @RequestMapping(value="/create",method = RequestMethod.PUT) + public ResponseEntity create(@RequestBody OrderDetail object) { - public OrderDetailDTO update(OrderDetailDTO Object) { - return null; - } + return new ResponseEntity<>(DTOUtils.toDiscountDTO(ods.create(object)),HttpStatus.OK); + } + @RequestMapping(value="/List",method = RequestMethod.GET) + public ResponseEntity> getList(@RequestBody Order object) { + ArrayList list = new ArrayList<>(); + for (OrderDetail orderDetail: ods.getList(object.getId()) + ) { + list.add(DTOUtils.toDiscountDTO(orderDetail)); + } + return new ResponseEntity<>(list,HttpStatus.OK); + } - public void delete(OrderDetailDTO Object) { - } } diff --git a/src/main/java/com/bootcamp2018/control/PaymentControl.java b/src/main/java/com/bootcamp2018/control/PaymentControl.java index eba41fa..7c4f93f 100644 --- a/src/main/java/com/bootcamp2018/control/PaymentControl.java +++ b/src/main/java/com/bootcamp2018/control/PaymentControl.java @@ -1,39 +1,60 @@ package com.bootcamp2018.control; +import com.bootcamp2018.dao.PaymentDAO; +import com.bootcamp2018.dto.OrderDetailDTO; import com.bootcamp2018.dto.PaymentDTO; - -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; +import com.bootcamp2018.model.Client; +import com.bootcamp2018.model.OrderDetail; +import com.bootcamp2018.model.Payment; +import com.bootcamp2018.service.PaymentService; +import com.bootcamp2018.util.DTOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; - - +import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; -@Controller -@RequestMapping("/") + +@RestController +@RequestMapping("/payment") public class PaymentControl { + @Autowired + PaymentService ps; - @RequestMapping(value = "/", method = RequestMethod.GET) - public PaymentDTO create(PaymentDTO Object) { - return Object; - } + + @RequestMapping(value="/create",method = RequestMethod.PUT) + public ResponseEntity create(@RequestBody Payment object, @RequestBody Client client) { + PaymentDTO paymentDTO; + paymentDTO= DTOUtils.toPaymentDTO(ps.create(object,client.getId())); + return new ResponseEntity<>(paymentDTO,HttpStatus.OK); - public PaymentDTO get(PaymentDTO Object) { - return null; } + @RequestMapping(value="/get",method = RequestMethod.POST) + public ResponseEntity get(@RequestBody Payment Object) { + PaymentDTO paymentDTO; + paymentDTO= DTOUtils.toPaymentDTO(ps.get(Object.getId())); + return new ResponseEntity<>(paymentDTO,HttpStatus.OK); - public ArrayList getList(PaymentDTO Object) { - return null; } - - public PaymentDTO update(PaymentDTO Object) { - return null; + @RequestMapping(value="/list",method = RequestMethod.POST) + public ResponseEntity> getList(@RequestBody Client object) { + ArrayList list = new ArrayList<>(); + for (Payment payment: ps.getList(object.getId()) + ) { + list.add(DTOUtils.toPaymentDTO(payment)); + } + return new ResponseEntity<>(list,HttpStatus.OK); } - public void delete(PaymentDTO Object) { + + @RequestMapping(value="/delete",method = RequestMethod.DELETE) + public void delete(@RequestBody PaymentDTO object) { + ps.delete(object.getId()); } } diff --git a/src/main/java/com/bootcamp2018/dao/ClientDAO.java b/src/main/java/com/bootcamp2018/dao/ClientDAO.java index bc03155..03383f3 100644 --- a/src/main/java/com/bootcamp2018/dao/ClientDAO.java +++ b/src/main/java/com/bootcamp2018/dao/ClientDAO.java @@ -2,13 +2,14 @@ import com.bootcamp2018.db.DBConnection; import com.bootcamp2018.model.*; - +import org.springframework.stereotype.Repository; import java.sql.*; import java.util.ArrayList; +@Repository public class ClientDAO { - public Client createClient(Client client) { + public Client create(Client client) { try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; pstmt = con.prepareStatement("INSERT INTO client (name,lastName, description) VALUES (?,?,?)", Statement.RETURN_GENERATED_KEYS); @@ -28,7 +29,7 @@ public Client createClient(Client client) { return new Client(); } - public ArrayList getClients() throws SQLException { + public ArrayList list() { ArrayList list = new ArrayList<>(); try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; @@ -42,7 +43,7 @@ public ArrayList getClients() throws SQLException { return list; } - public Client getClient(Client cli) throws SQLException { + public Client get(Client cli){ Client client = new Client(); try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; @@ -56,24 +57,34 @@ public Client getClient(Client cli) throws SQLException { } return client; } + public Client get(int id){ + Client client = new Client(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("SELECT idClient, name, lastName, description FROM client WHERE idClient=?"); + pstmt.setInt(1, id); + ResultSet rs = pstmt.executeQuery(); + while (rs.next()) { + client = ClientCreator.mapClient(rs); + } + } catch (Exception e) { + } + return client; + } - public Client deleteItem(Client client) { + public void delete(int id) { try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; pstmt = con.prepareStatement("DELETE FROM client WHERE idClient = ?"); - pstmt.setInt(1, client.getId()); + pstmt.setInt(1, id); int resp = pstmt.executeUpdate(); - if (resp == 0) client = new Client(); + } catch (Exception e) { } - } catch (Exception e) { - client = new Client(); - } - return client; } - public Client updateItem(Client client) throws SQLException { + public Client update(Client client) { try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; diff --git a/src/main/java/com/bootcamp2018/dao/DiscountDAO.java b/src/main/java/com/bootcamp2018/dao/DiscountDAO.java index f677e28..b04881e 100644 --- a/src/main/java/com/bootcamp2018/dao/DiscountDAO.java +++ b/src/main/java/com/bootcamp2018/dao/DiscountDAO.java @@ -2,13 +2,14 @@ import com.bootcamp2018.db.DBConnection; import com.bootcamp2018.model.Discount; -import com.bootcamp2018.model.Item; - +import org.springframework.stereotype.Repository; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; +@Repository public class DiscountDAO { @@ -19,7 +20,6 @@ public Discount createDiscount(Discount discount) { pstmt.setInt(1, discount.getItem().getId()); pstmt.setInt(2, discount.getQuantity()); pstmt.setDouble(3, discount.getPrice()); - pstmt.executeUpdate(); ResultSet rs = pstmt.getGeneratedKeys(); if (rs.next()) { @@ -28,11 +28,72 @@ public Discount createDiscount(Discount discount) { discount = new Discount(); } pstmt.close(); - } catch (Exception e) { + } catch (Exception e) {} + return discount; + } - } + public Discount get(int id){ + Discount discount = new Discount(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("SELECT idDiscount,idItem, quantity, price FROM discount WHERE idDiscount = ?", Statement.RETURN_GENERATED_KEYS); + pstmt.setInt(1, id); + ResultSet rs = pstmt.executeQuery(); + if (rs.next()) { + discount.setPrice(rs.getInt(4)); + discount.setQuantity(rs.getInt(3)); + ItemDAO itemDAO = new ItemDAO(); + discount.setItem(itemDAO.retriveItem(rs.getInt(2))); + } else { + discount = new Discount(); + } + pstmt.close(); + } catch (Exception e) {} return discount; } + public ArrayList retriveItems(Discount objects) { + ArrayList list = new ArrayList<>(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("SELECT idDiscount,idItem, quantity, price FROM discount"); + ResultSet rs = pstmt.executeQuery(); + while (rs.next()) { + ItemDAO itemDAO= new ItemDAO(); + list.add(new Discount(rs.getInt(1), itemDAO.retriveItem(rs.getInt(2)), rs.getInt(3),rs.getDouble(4))); + } + pstmt.close(); + } catch (Exception e) {} + return list; + } + + public Discount update(Discount discount){ + Discount respDiscount = new Discount(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("UPDATE discount SET quantity = ?, price= ? WHERE idDiscount = ?", Statement.RETURN_GENERATED_KEYS); + pstmt.setInt(1, discount.getQuantity()); + pstmt.setDouble(2, discount.getPrice()); + int resp = pstmt.executeUpdate(); + if (resp == 0) respDiscount = new Discount(); + else{ + respDiscount = get(discount.getId()); + } + pstmt.close(); + } catch (Exception e) {} + return respDiscount; + } + + public void delete(int id) { + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("DELETE FROM Discount WHERE idDiscount = ?"); + pstmt.setInt(1, id); + pstmt.executeUpdate(); + pstmt.close(); + } catch (Exception e) {} + } + + } diff --git a/src/main/java/com/bootcamp2018/dao/ItemDAO.java b/src/main/java/com/bootcamp2018/dao/ItemDAO.java index ecce0ed..a3f2b74 100644 --- a/src/main/java/com/bootcamp2018/dao/ItemDAO.java +++ b/src/main/java/com/bootcamp2018/dao/ItemDAO.java @@ -2,11 +2,13 @@ import com.bootcamp2018.db.DBConnection; import com.bootcamp2018.model.Item; +import org.springframework.stereotype.Repository; + import java.sql.*; import java.util.ArrayList; - +@Repository public class ItemDAO { @@ -24,10 +26,7 @@ public Item createItem(Item item) { item = new Item(); } pstmt.close(); - } catch (Exception e) { - - } - + } catch (Exception e) {} return item; } @@ -40,39 +39,37 @@ public ArrayList retriveItems(Item objects) { while (rs.next()) { list.add(new Item(rs.getInt(1), rs.getString(2), rs.getDouble(3))); } - } catch (Exception e) { - } - + pstmt.close(); + } catch (Exception e) {} return list; } - public Item retriveItem(int id) { + public Item retriveItem(int id) { Item list = new Item(); try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; - pstmt = con.prepareStatement("SELECT idItem, name, price FROM item"); - + pstmt = con.prepareStatement("SELECT idItem, name, price FROM item WHERE idItem = ?"); + pstmt.setInt(1, id); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { list = new Item(rs.getInt(1), rs.getString(2), rs.getDouble(3)); } - } catch (Exception e) { - } + pstmt.close(); + } catch (Exception e) {} return list; } - public void deleteItem(Item item) { + public void deleteItem(int id) { try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; pstmt = con.prepareStatement("DELETE FROM item WHERE idItem = ?"); - pstmt.setInt(1, item.getId()); + pstmt.setInt(1, id); pstmt.executeUpdate(); - } catch (Exception e) { - - } + pstmt.close(); + } catch (Exception e) {} } public Item updateItem(Item item) { @@ -83,10 +80,9 @@ public Item updateItem(Item item) { pstmt.setString(1, item.getName()); pstmt.setDouble(2, item.getPrice()); pstmt.setInt(3, item.getId()); - int resp = pstmt.executeUpdate(); if (resp == 0) item = new Item(); - + pstmt.close(); } catch (Exception e) { item = new Item(); } diff --git a/src/main/java/com/bootcamp2018/dao/OrderDAO.java b/src/main/java/com/bootcamp2018/dao/OrderDAO.java index f7a18ea..09a45ae 100644 --- a/src/main/java/com/bootcamp2018/dao/OrderDAO.java +++ b/src/main/java/com/bootcamp2018/dao/OrderDAO.java @@ -1,41 +1,61 @@ package com.bootcamp2018.dao; import com.bootcamp2018.db.DBConnection; -import com.bootcamp2018.dto.OrderDTO; - -import com.bootcamp2018.dto.OrderDetailDTO; import com.bootcamp2018.model.Order; import com.bootcamp2018.model.OrderDetail; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Statement; +import java.sql.*; +import java.util.ArrayList; public class OrderDAO { - public Order createOrder(OrderDTO order) { + public Order create(Order order, int idPayment) { + Order respOrder = new Order(); try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { - PreparedStatement pstmt; - pstmt = con.prepareStatement("INSERT INTO Order (idPayment) VALUES (?)", Statement.RETURN_GENERATED_KEYS); - pstmt.setInt(1, order.getIdPayment()); + pstmt.setInt(1, idPayment); pstmt.executeUpdate(); ResultSet rs = pstmt.getGeneratedKeys(); if (rs.next()) { - order.getOrder().setId(rs.getInt(1)); - for (OrderDetail od : order.getOrder().getOrderDetails() + respOrder.setId(rs.getInt(1)); + OrderDetail respOrderDetail; + for (OrderDetail od : order.getOrderDetails() ) { OrderDetailDAO odd = new OrderDetailDAO(); - od = odd.createOrderDetail(new OrderDetailDTO(order.getOrder().getId(), od)); + respOrderDetail = odd.create(od,respOrder.getId()); + respOrder.getOrderDetails().add(respOrderDetail); } } else { - order.setOrder(new Order()); + respOrder = new Order(); } pstmt.close(); } catch (Exception e) { - order.setOrder(new Order()); + respOrder = new Order(); } - return order.getOrder(); + return respOrder; } + + public Order get(int idPayment) { + Order respOrder = new Order(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("SELECT idOrder FROM 'order' WHERE idPayment = ?"); + pstmt.setInt(1, idPayment); + pstmt.executeQuery(); + ResultSet rs = pstmt.getResultSet(); + if (rs.next()) { + respOrder.setId(rs.getInt(1)); + ArrayList list; + OrderDetailDAO odd = new OrderDetailDAO(); + list = odd.get(respOrder.getId()); + respOrder.setOrderDetails(list); + } else { + respOrder = new Order(); + } + pstmt.close(); + } catch (Exception e) { + respOrder = new Order(); + } + return respOrder; + } + } diff --git a/src/main/java/com/bootcamp2018/dao/OrderDetailDAO.java b/src/main/java/com/bootcamp2018/dao/OrderDetailDAO.java index 0179022..3c31d4a 100644 --- a/src/main/java/com/bootcamp2018/dao/OrderDetailDAO.java +++ b/src/main/java/com/bootcamp2018/dao/OrderDetailDAO.java @@ -4,34 +4,55 @@ import com.bootcamp2018.dto.OrderDetailDTO; import com.bootcamp2018.dto.PaymentDTO; import com.bootcamp2018.model.OrderDetail; +import org.springframework.stereotype.Repository; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; +@Repository public class OrderDetailDAO { - public OrderDetail createOrderDetail(OrderDetailDTO orderDetail) { + public OrderDetail create(OrderDetail orderDetail, int idOrder) { + OrderDetail respOrderDetail = new OrderDetail(orderDetail.getItem(),orderDetail.getQuantity(),orderDetail.getPrice()); try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("INSERT INTO OrderDetail (idItem,idOrder,quantity, price) VALUES (?,?,?,?)"); + pstmt.setInt(1, orderDetail.getItem().getId()); + pstmt.setInt(2, idOrder); + pstmt.setInt(3, orderDetail.getQuantity()); + pstmt.setDouble(4, orderDetail.getPrice()); + int ok = pstmt.executeUpdate(); + pstmt.close(); + if (ok == 0){respOrderDetail= new OrderDetail();} + } catch (Exception e) { + respOrderDetail=new OrderDetail(); + } + return respOrderDetail; + } + public ArrayList get(int idOrder) { + ArrayList list = new ArrayList<>(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; + pstmt = con.prepareStatement("SELECT idItem, idOrder, quantity, price FROM orderdetail WHERE idOrder = ?", Statement.RETURN_GENERATED_KEYS); + pstmt.setInt(1, idOrder); - pstmt = con.prepareStatement("INSERT INTO OrderDetail (idItem,idOrder,quantity, price) VALUES (?,?,?,?)", Statement.RETURN_GENERATED_KEYS); - pstmt.setInt(1, orderDetail.getOrderDetail().getItem().getId()); - pstmt.setInt(2, orderDetail.getIdOrder()); - pstmt.setInt(2, orderDetail.getOrderDetail().getQuantity()); - pstmt.setDouble(2, orderDetail.getOrderDetail().getPrice()); - pstmt.executeUpdate(); - ResultSet rs = pstmt.getGeneratedKeys(); - if (!rs.next()) { - orderDetail.setOrderDetail(new OrderDetail()); + ResultSet rs = pstmt.executeQuery(); + while (rs.next()) { + ItemDAO itemDAO = new ItemDAO(); + list.add(new OrderDetail(itemDAO.retriveItem(rs.getInt(2)), rs.getInt(3),rs.getDouble(4))); } pstmt.close(); } catch (Exception e) { - orderDetail.setOrderDetail(new OrderDetail()); + list = new ArrayList<>(); } - return orderDetail.getOrderDetail(); + return list; } + + + } diff --git a/src/main/java/com/bootcamp2018/dao/PaymentDAO.java b/src/main/java/com/bootcamp2018/dao/PaymentDAO.java index 18068e5..9615041 100644 --- a/src/main/java/com/bootcamp2018/dao/PaymentDAO.java +++ b/src/main/java/com/bootcamp2018/dao/PaymentDAO.java @@ -1,35 +1,71 @@ package com.bootcamp2018.dao; import com.bootcamp2018.db.DBConnection; -import com.bootcamp2018.dto.OrderDTO; -import com.bootcamp2018.dto.PaymentDTO; import com.bootcamp2018.model.Payment; +import org.springframework.stereotype.Repository; import java.sql.*; - +@Repository public class PaymentDAO { - public Payment createPayment(PaymentDTO payment) { + public Payment create(Payment payment,int idClient) { + Payment respPayment = new Payment(); try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { PreparedStatement pstmt; pstmt = con.prepareStatement("INSERT INTO payment (idClient, amount) VALUES (?,?)", Statement.RETURN_GENERATED_KEYS); - pstmt.setInt(1, payment.getIdClient()); - pstmt.setDouble(2, payment.getPayment().getAmount()); + pstmt.setInt(1, idClient); + pstmt.setDouble(2, payment.getAmount()); pstmt.executeUpdate(); ResultSet rs = pstmt.getGeneratedKeys(); if (rs.next()) { - payment.getPayment().setId(rs.getInt(1)); - OrderDAO od = new OrderDAO(); - od.createOrder(new OrderDTO(payment.getPayment().getId(), payment.getPayment().getOrder())); + respPayment.setId(rs.getInt(1)); + OrderDAO orderDAO = new OrderDAO(); + respPayment.setOrder(orderDAO.create(payment.getOrder(),respPayment.getId())); + } else { + respPayment = new Payment(); + } + pstmt.close(); + } catch (Exception e) { + respPayment = new Payment(); + } + return respPayment; + } + + + public Payment get(int idPayment){ + Payment respPayment = new Payment(); + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("SELECT idPayment, amount FROM payment WHERE idPaymet = ?", Statement.RETURN_GENERATED_KEYS); + pstmt.setInt(1, idPayment); + pstmt.executeQuery(); + ResultSet rs = pstmt.getResultSet(); + if (rs.next()) { + respPayment.setId(rs.getInt(1)); + respPayment.setAmount(rs.getDouble(2)); + OrderDAO orderDAO = new OrderDAO(); + respPayment.setOrder(orderDAO.get(respPayment.getId())); } else { - payment = new PaymentDTO(); + respPayment = new Payment(); } pstmt.close(); } catch (Exception e) { - payment = new PaymentDTO(); + respPayment = new Payment(); } - return payment.getPayment(); + return respPayment; + + } + + public void delete(int id) { + + try (Connection con = DBConnection.getInstance().getDataSource().getConnection()) { + PreparedStatement pstmt; + pstmt = con.prepareStatement("DELETE FROM payment WHERE idPayment = ?"); + pstmt.setInt(1, id); + pstmt.executeUpdate(); + pstmt.close(); + } catch (Exception e) {} } } diff --git a/src/main/java/com/bootcamp2018/db/DBConnection.java b/src/main/java/com/bootcamp2018/db/DBConnection.java index 0f7078d..35c289e 100644 --- a/src/main/java/com/bootcamp2018/db/DBConnection.java +++ b/src/main/java/com/bootcamp2018/db/DBConnection.java @@ -1,7 +1,7 @@ package com.bootcamp2018.db; import com.mysql.cj.jdbc.MysqlDataSource; -import org.graalvm.compiler.serviceprovider.ServiceProvider; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/bootcamp2018/dto/ClientDTO.java b/src/main/java/com/bootcamp2018/dto/ClientDTO.java new file mode 100644 index 0000000..e26b677 --- /dev/null +++ b/src/main/java/com/bootcamp2018/dto/ClientDTO.java @@ -0,0 +1,65 @@ +package com.bootcamp2018.dto; + +import com.bootcamp2018.model.Payment; + +import java.util.ArrayList; + +public class ClientDTO { + private int id; + private String name; + private String lastName; + private String description; + private ArrayList Payments; + + public ClientDTO(int id, String name, String lastName, String description, ArrayList payments) { + this.id = id; + this.name = name; + this.lastName = lastName; + this.description = description; + Payments = payments; + } + + public ClientDTO() { + } + + public int getId() { + + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ArrayList getPayments() { + return Payments; + } + + public void setPayments(ArrayList payments) { + Payments = payments; + } +} diff --git a/src/main/java/com/bootcamp2018/dto/DiscountDTO.java b/src/main/java/com/bootcamp2018/dto/DiscountDTO.java new file mode 100644 index 0000000..29ad563 --- /dev/null +++ b/src/main/java/com/bootcamp2018/dto/DiscountDTO.java @@ -0,0 +1,48 @@ +package com.bootcamp2018.dto; + +public class DiscountDTO { + private int id; + private int idItem; + private int quantity; + private double price; + + + public DiscountDTO(int id,int idItem, int quantity, double price) { + this.idItem = idItem; + this.quantity = quantity; + this.price = price; + this.id = id; + } + + public int getIdItem() { + return idItem; + } + + public void setIdItem(int iditem) { + this.idItem = iditem; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } +} diff --git a/src/main/java/com/bootcamp2018/dto/ItemDTO.java b/src/main/java/com/bootcamp2018/dto/ItemDTO.java new file mode 100644 index 0000000..e3d7fca --- /dev/null +++ b/src/main/java/com/bootcamp2018/dto/ItemDTO.java @@ -0,0 +1,37 @@ +package com.bootcamp2018.dto; + +public class ItemDTO { + private int id; + private String name; + private double price; + + public ItemDTO(int id, String name, double price) { + this.id = id; + this.name = name; + this.price = price; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } +} diff --git a/src/main/java/com/bootcamp2018/dto/OrderDTO.java b/src/main/java/com/bootcamp2018/dto/OrderDTO.java index 98d7777..08562ca 100644 --- a/src/main/java/com/bootcamp2018/dto/OrderDTO.java +++ b/src/main/java/com/bootcamp2018/dto/OrderDTO.java @@ -2,29 +2,33 @@ import com.bootcamp2018.model.Order; +import com.bootcamp2018.model.OrderDetail; + +import java.util.ArrayList; public class OrderDTO { - private int idPayment; - private Order order; - public OrderDTO(int idPayment, Order order) { - this.idPayment = idPayment; - this.order = order; + private int Id; + private ArrayList orderDetails; + + public OrderDTO(int id, ArrayList orderDetails) { + Id = id; + this.orderDetails = orderDetails; } - public int getIdPayment() { - return idPayment; + public int getId() { + return Id; } - public void setIdPayment(int idPayment) { - this.idPayment = idPayment; + public void setId(int id) { + Id = id; } - public Order getOrder() { - return order; + public ArrayList getOrderDetails() { + return orderDetails; } - public void setOrder(Order order) { - this.order = order; + public void setOrderDetails(ArrayList orderDetails) { + this.orderDetails = orderDetails; } } diff --git a/src/main/java/com/bootcamp2018/dto/OrderDetailDTO.java b/src/main/java/com/bootcamp2018/dto/OrderDetailDTO.java index 4f3f675..c5807f3 100644 --- a/src/main/java/com/bootcamp2018/dto/OrderDetailDTO.java +++ b/src/main/java/com/bootcamp2018/dto/OrderDetailDTO.java @@ -1,29 +1,42 @@ package com.bootcamp2018.dto; +import com.bootcamp2018.model.Item; import com.bootcamp2018.model.OrderDetail; + public class OrderDetailDTO { - private int idOrder; - private OrderDetail orderDetail; - public OrderDetailDTO(int idOrder, OrderDetail orderDetail) { - this.idOrder = idOrder; - this.orderDetail = orderDetail; + private int idItem; + private int quantity; + private double price; + + public OrderDetailDTO(int idItem, int quantity, double price) { + this.idItem = idItem; + this.quantity = quantity; + this.price = price; + } + + public int getIdItem() { + return idItem; + } + + public void setIdItem(int idItem) { + this.idItem = idItem; } - public int getIdOrder() { - return idOrder; + public int getQuantity() { + return quantity; } - public void setIdOrder(int idOrder) { - this.idOrder = idOrder; + public void setQuantity(int quantity) { + this.quantity = quantity; } - public OrderDetail getOrderDetail() { - return orderDetail; + public double getPrice() { + return price; } - public void setOrderDetail(OrderDetail orderDetail) { - this.orderDetail = orderDetail; + public void setPrice(double price) { + this.price = price; } } diff --git a/src/main/java/com/bootcamp2018/dto/PaymentDTO.java b/src/main/java/com/bootcamp2018/dto/PaymentDTO.java index b590b80..3a95ffe 100644 --- a/src/main/java/com/bootcamp2018/dto/PaymentDTO.java +++ b/src/main/java/com/bootcamp2018/dto/PaymentDTO.java @@ -1,34 +1,40 @@ package com.bootcamp2018.dto; +import com.bootcamp2018.model.Order; import com.bootcamp2018.model.Payment; public class PaymentDTO { - private Payment payment; - private int idClient; - - public PaymentDTO() { - payment = new Payment(); + private int Id; + private int idOrder; + private double amount; + + public PaymentDTO(int id, int idOrder, double amount) { + Id = id; + this.idOrder = idOrder; + this.amount = amount; + } + public int getId() { + return Id; } - public PaymentDTO(Payment payment, int idClient) { - this.payment = payment; - this.idClient = idClient; + public void setId(int id) { + Id = id; } - public Payment getPayment() { - return payment; + public int getIdOrder() { + return idOrder; } - public void setPayment(Payment payment) { - this.payment = payment; + public void setIdOrder(int idOrder) { + this.idOrder = idOrder; } - public int getIdClient() { - return idClient; + public double getAmount() { + return amount; } - public void setIdClient(int idClient) { - this.idClient = idClient; + public void setAmount(double amount) { + this.amount = amount; } } diff --git a/src/main/java/com/bootcamp2018/model/Client.java b/src/main/java/com/bootcamp2018/model/Client.java index 512006b..8471eab 100644 --- a/src/main/java/com/bootcamp2018/model/Client.java +++ b/src/main/java/com/bootcamp2018/model/Client.java @@ -1,16 +1,12 @@ package com.bootcamp2018.model; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - import java.util.ArrayList; -@Component + public class Client { private int id; private String name; private String lastName; private String description; - @Autowired private ArrayList Payments; public Client(int id) { @@ -21,6 +17,14 @@ public Client(int id) { this.Payments = new ArrayList<>(); } + public Client(int id, String name, String lastName, String description, ArrayList payments) { + this.id = id; + this.name = name; + this.lastName = lastName; + this.description = description; + Payments = payments; + } + public Client() { this.id = 0; this.name = ""; diff --git a/src/main/java/com/bootcamp2018/model/Discount.java b/src/main/java/com/bootcamp2018/model/Discount.java index 0ebb927..3d6549a 100644 --- a/src/main/java/com/bootcamp2018/model/Discount.java +++ b/src/main/java/com/bootcamp2018/model/Discount.java @@ -1,9 +1,8 @@ package com.bootcamp2018.model; -import org.springframework.stereotype.Component; -@Component public class Discount { + private Item item; private int quantity; private double price; @@ -16,6 +15,13 @@ public Discount() { this.price = 0; this.id = 0; } + public Discount(int id) { + + this.item = new Item(); + this.quantity = 0; + this.price = 0; + this.id = id; + } public Discount(Item item, int quantity, double price) { this.item = item; @@ -23,6 +29,13 @@ public Discount(Item item, int quantity, double price) { this.price = price; } + public Discount(int id,Item item, int quantity, double price) { + this.item = item; + this.quantity = quantity; + this.price = price; + this.id = id; + } + public int getId() { return id; } @@ -66,4 +79,9 @@ public boolean equals(Object obj) { } return ban; } + + @Override + public String toString() { + return "ID:"+id+", Quantity:"+quantity+", Price:"+price+", Item= "+item.toString(); + } } diff --git a/src/main/java/com/bootcamp2018/model/Item.java b/src/main/java/com/bootcamp2018/model/Item.java index 529b2a7..d3dd0fd 100644 --- a/src/main/java/com/bootcamp2018/model/Item.java +++ b/src/main/java/com/bootcamp2018/model/Item.java @@ -1,8 +1,6 @@ package com.bootcamp2018.model; -import org.springframework.stereotype.Component; -@Component public class Item { private int Id; private String name; diff --git a/src/main/java/com/bootcamp2018/model/Order.java b/src/main/java/com/bootcamp2018/model/Order.java index a8def4b..13a8271 100644 --- a/src/main/java/com/bootcamp2018/model/Order.java +++ b/src/main/java/com/bootcamp2018/model/Order.java @@ -1,13 +1,11 @@ package com.bootcamp2018.model; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import java.util.ArrayList; -@Component + public class Order { + private int Id; - @Autowired private ArrayList orderDetails; public Order() { diff --git a/src/main/java/com/bootcamp2018/model/OrderDetail.java b/src/main/java/com/bootcamp2018/model/OrderDetail.java index c919eb4..5b9dedb 100644 --- a/src/main/java/com/bootcamp2018/model/OrderDetail.java +++ b/src/main/java/com/bootcamp2018/model/OrderDetail.java @@ -1,11 +1,9 @@ package com.bootcamp2018.model; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -@Component public class OrderDetail { - @Autowired + + private Item item; private int quantity; private double price; @@ -21,6 +19,11 @@ public OrderDetail(Item item, int quantity) { this.quantity = quantity; this.price = item.getPrice(); } + public OrderDetail(Item item, int quantity, double price) { + this.item = item; + this.quantity = quantity; + this.price = price; + } public Item getItem() { return item; diff --git a/src/main/java/com/bootcamp2018/model/Payment.java b/src/main/java/com/bootcamp2018/model/Payment.java index 3c1afd6..808e769 100644 --- a/src/main/java/com/bootcamp2018/model/Payment.java +++ b/src/main/java/com/bootcamp2018/model/Payment.java @@ -1,22 +1,17 @@ package com.bootcamp2018.model; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component public class Payment { - private int Id; - @Autowired + private int id; private Order order; private double amount; public int getId() { - return Id; + return id; } public void setId(int id) { - Id = id; + this.id = id; } public Order getOrder() { @@ -36,18 +31,18 @@ public void setAmount(double amount) { } public Payment(int id) { - Id = id; + this.id = id; } public Payment(int id, Order order, double amount) { - this.Id = id; + this.id = id; this.order = order; this.amount = amount; } public Payment() { - this.Id = 0; + this.id = 0; this.order = new Order(); this.amount = 0; } @@ -70,7 +65,7 @@ public boolean equals(Object obj) { @Override public String toString() { - return "Payment Id: " + getId() + ", \n" + getOrder().toString() + "\nAmount: $" + getAmount(); + return "Payment id: " + getId() + ", \n" + getOrder().toString() + "\nAmount: $" + getAmount(); } } diff --git a/src/main/java/com/bootcamp2018/service/ClientService.java b/src/main/java/com/bootcamp2018/service/ClientService.java index 0ac711b..1549e0c 100644 --- a/src/main/java/com/bootcamp2018/service/ClientService.java +++ b/src/main/java/com/bootcamp2018/service/ClientService.java @@ -1,33 +1,49 @@ package com.bootcamp2018.service; +import com.bootcamp2018.dao.ClientDAO; import com.bootcamp2018.model.Client; +import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; +@org.springframework.stereotype.Service public class ClientService implements Service { + @Autowired + private ClientDAO clientDAO; + @Override - public Client create(Client Object) { - return null; + public Client get(int id) { + return clientDAO.get(id); } @Override - public Client get(Client Object) { - return null; + public ArrayList getList(int id) { + return clientDAO.list(); } @Override - public ArrayList getList(Client Objact) { - return null; + public Client create(Client object) { + return clientDAO.create(object); } - @Override - public Client update(Client Object) { - return null; + + public Client get(Client object) { + return clientDAO.get(object); + } + + + public ArrayList getList(Client object) { + return clientDAO.list(); } @Override - public void delete(Client Object) { + public Client update(Client object) { + return clientDAO.update(object); + } + @Override + public void delete(int id) { + clientDAO.delete(id); } //DTO class ver patron } diff --git a/src/main/java/com/bootcamp2018/service/DiscountService.java b/src/main/java/com/bootcamp2018/service/DiscountService.java index f4d4608..4758ff5 100644 --- a/src/main/java/com/bootcamp2018/service/DiscountService.java +++ b/src/main/java/com/bootcamp2018/service/DiscountService.java @@ -2,33 +2,47 @@ import com.bootcamp2018.dao.DiscountDAO; import com.bootcamp2018.model.Discount; +import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; +@org.springframework.stereotype.Service public class DiscountService implements Service { + @Autowired + private DiscountDAO dDAO; + @Override public Discount create(Discount object) { - DiscountDAO dDAO = new DiscountDAO(); return dDAO.createDiscount(object); } @Override - public Discount get(Discount object) { - return null; + public Discount get(int id) { + return dDAO.get(id); } @Override - public ArrayList getList(Discount object) { + public ArrayList getList(int id) { return null; } + + public Discount get(Discount object) { + return dDAO.get(object.getId()); + } + + + public ArrayList getList(Discount object) { + return dDAO.retriveItems(object); + } + @Override public Discount update(Discount object) { - return null; + return dDAO.update(object); } @Override - public void delete(Discount object) { - + public void delete(int id) { + dDAO.delete(id); } } diff --git a/src/main/java/com/bootcamp2018/service/ItemService.java b/src/main/java/com/bootcamp2018/service/ItemService.java index aa80c6d..572fe2a 100644 --- a/src/main/java/com/bootcamp2018/service/ItemService.java +++ b/src/main/java/com/bootcamp2018/service/ItemService.java @@ -2,39 +2,57 @@ import com.bootcamp2018.dao.ItemDAO; import com.bootcamp2018.model.Item; +import org.springframework.beans.factory.annotation.Autowired; -import java.sql.SQLException; import java.util.ArrayList; +@org.springframework.stereotype.Service public class ItemService implements Service { + @Autowired + private ItemDAO itemDAO; @Override public Item create(Item object) { - ItemDAO itemDAO = new ItemDAO(); return itemDAO.createItem(object); } @Override - public Item get(Item Object) { - return null; + public Item get(int id) { + Item item ; + + item = itemDAO.retriveItem(id); + return item; } @Override + public ArrayList getList(int id) { + + return itemDAO.retriveItems(new Item()); + } + + + public Item get(Item Object) { + + Object = itemDAO.retriveItem(Object.getId()); + return Object; + } + + public ArrayList getList(Item object) { - ItemDAO itemDAO = new ItemDAO(); + return itemDAO.retriveItems(object); } @Override public Item update(Item object) { - ItemDAO itemDAO = new ItemDAO(); + return itemDAO.updateItem(object); } @Override - public void delete(Item object) { - ItemDAO itemDAO = new ItemDAO(); - itemDAO.deleteItem(object); + public void delete(int id) { + + itemDAO.deleteItem(id); } } diff --git a/src/main/java/com/bootcamp2018/service/OrderDetailService.java b/src/main/java/com/bootcamp2018/service/OrderDetailService.java index de65d49..904aa3f 100644 --- a/src/main/java/com/bootcamp2018/service/OrderDetailService.java +++ b/src/main/java/com/bootcamp2018/service/OrderDetailService.java @@ -1,32 +1,41 @@ package com.bootcamp2018.service; -import com.bootcamp2018.dto.OrderDetailDTO; + + +import com.bootcamp2018.dao.OrderDetailDAO; +import com.bootcamp2018.model.OrderDetail; +import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; +@org.springframework.stereotype.Service -public class OrderDetailService implements Service { - @Override - public OrderDetailDTO create(OrderDetailDTO Object) { +public class OrderDetailService implements Service { + @Autowired + private OrderDetailDAO orderDetailDAO; - return Object; + @Override + public OrderDetail create(OrderDetail object) { + OrderDetail od; + return null; } @Override - public OrderDetailDTO get(OrderDetailDTO Object) { + public OrderDetail get(int id) { return null; } @Override - public ArrayList getList(OrderDetailDTO Object) { + public ArrayList getList(int id) { return null; } @Override - public OrderDetailDTO update(OrderDetailDTO Object) { + public OrderDetail update(OrderDetail object) { return null; } @Override - public void delete(OrderDetailDTO Object) { + public void delete(int id) { + } } diff --git a/src/main/java/com/bootcamp2018/service/OrderService.java b/src/main/java/com/bootcamp2018/service/OrderService.java index 46737bd..382a626 100644 --- a/src/main/java/com/bootcamp2018/service/OrderService.java +++ b/src/main/java/com/bootcamp2018/service/OrderService.java @@ -1,32 +1,35 @@ package com.bootcamp2018.service; -import com.bootcamp2018.dto.OrderDTO; - +import com.bootcamp2018.model.Order; import java.util.ArrayList; -public class OrderService implements Service { +public class OrderService implements Service { + + @Override - public OrderDTO create(OrderDTO Object) { + public Order create(Order object) { return null; } @Override - public OrderDTO get(OrderDTO Object) { + public Order get(int id) { return null; } @Override - public ArrayList getList(OrderDTO Object) { + public ArrayList getList(int id) { return null; } @Override - public OrderDTO update(OrderDTO Object) { + public Order update(Order object) { return null; } @Override - public void delete(OrderDTO Object) { + public void delete(int id) { } + } + diff --git a/src/main/java/com/bootcamp2018/service/PaymentService.java b/src/main/java/com/bootcamp2018/service/PaymentService.java index 1ea10fc..9ed4c9e 100644 --- a/src/main/java/com/bootcamp2018/service/PaymentService.java +++ b/src/main/java/com/bootcamp2018/service/PaymentService.java @@ -1,33 +1,38 @@ package com.bootcamp2018.service; -import com.bootcamp2018.dto.PaymentDTO; - +import com.bootcamp2018.dao.PaymentDAO; +import com.bootcamp2018.model.Payment; +import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; -public class PaymentService implements Service { - @Override - public PaymentDTO create(PaymentDTO Object) { +@org.springframework.stereotype.Service +public abstract class PaymentService implements Service { + @Autowired + private PaymentDAO paymentDAO; + - return Object; + public Payment create(Payment object, int idClient) { + return paymentDAO.create(object,idClient); } @Override - public PaymentDTO get(PaymentDTO Object) { + public Payment get(int id) { return null; } @Override - public ArrayList getList(PaymentDTO Object) { + public ArrayList getList(int id) { return null; } @Override - public PaymentDTO update(PaymentDTO Object) { + public Payment update(Payment object) { return null; } @Override - public void delete(PaymentDTO Object) { - + public void delete(int id) { + paymentDAO.delete(id); } } + diff --git a/src/main/java/com/bootcamp2018/service/Service.java b/src/main/java/com/bootcamp2018/service/Service.java index 83a2fe4..1751beb 100644 --- a/src/main/java/com/bootcamp2018/service/Service.java +++ b/src/main/java/com/bootcamp2018/service/Service.java @@ -5,11 +5,11 @@ public interface Service { T create(T object); - T get(T object); + T get(int id); - ArrayList getList(T object); + ArrayList getList(int id); T update(T object); - void delete(T object); + void delete(int id); } diff --git a/src/main/java/com/bootcamp2018/util/DTOUtils.java b/src/main/java/com/bootcamp2018/util/DTOUtils.java new file mode 100644 index 0000000..7e0d6c5 --- /dev/null +++ b/src/main/java/com/bootcamp2018/util/DTOUtils.java @@ -0,0 +1,57 @@ +package com.bootcamp2018.util; + +import com.bootcamp2018.dto.*; +import com.bootcamp2018.model.*; + +import java.util.ArrayList; + +public final class DTOUtils { + + public static ItemDTO toItemDTO(Item item ){ + ItemDTO itemDTO = new ItemDTO(item.getId(),item.getName(),item.getPrice()); + return itemDTO; + } + + public static ClientDTO toClientDTO(Client client){ + ClientDTO respClientDTO; + ArrayList payments = new ArrayList<>(); + for (Payment payment: client.getPayments() + ) { + payments.add(payment.getId()); + } + respClientDTO = new ClientDTO(client.getId(),client.getName(),client.getLastName(),client.getDescription(),payments); + return respClientDTO; + } + + public static OrderDetailDTO toDiscountDTO(OrderDetail orderDetail){ + OrderDetailDTO respOrderDetailDTO; + respOrderDetailDTO = new OrderDetailDTO(orderDetail.getItem().getId(),orderDetail.getQuantity(),orderDetail.getPrice()); + return respOrderDetailDTO; + } + + public static DiscountDTO toDiscountDTO(Discount discount){ + DiscountDTO respDiscountDTO; + respDiscountDTO = new DiscountDTO(discount.getId(),discount.getItem().getId(),discount.getQuantity(),discount.getPrice()); + return respDiscountDTO; + } + + + public static PaymentDTO toPaymentDTO(Payment payment){ + PaymentDTO respPaymentDTO; + respPaymentDTO = new PaymentDTO(payment.getId(),payment.getOrder().getId(),payment.getAmount()); + return respPaymentDTO; + } + + public static OrderDTO toOrderDTO(Order order){ + OrderDTO respOrderDTO; + ArrayList list = new ArrayList<>(); + for (OrderDetail orderDetail: order.getOrderDetails() + ) { + list.add(toDiscountDTO(orderDetail)); + } + respOrderDTO = new OrderDTO(order.getId(),list); + return respOrderDTO; + } + + +} diff --git a/src/main/java/com/bootcamp2018/util/ModelUtils.java b/src/main/java/com/bootcamp2018/util/ModelUtils.java new file mode 100644 index 0000000..5afd35e --- /dev/null +++ b/src/main/java/com/bootcamp2018/util/ModelUtils.java @@ -0,0 +1,70 @@ +package com.bootcamp2018.util; + +import com.bootcamp2018.dao.ItemDAO; +import com.bootcamp2018.dao.OrderDAO; +import com.bootcamp2018.dao.PaymentDAO; +import com.bootcamp2018.dto.*; +import com.bootcamp2018.model.*; + +import java.util.ArrayList; + +public class ModelUtils { + + public static Item toItem (ItemDTO itemDTO ){ + Item item = new Item(itemDTO.getId(),itemDTO.getName(),itemDTO.getPrice()); + return item; + } + public static Client toClient (ClientDTO clientDTO ){ + ArrayList payments = new ArrayList<>(); + PaymentDAO paymentDAO = new PaymentDAO(); + for (Integer idPayment: clientDTO.getPayments() + ) { + Payment payment; + payment = paymentDAO.get(new Payment(idPayment)); + payments.add(payment); + } + Client client = new Client(clientDTO.getId(),clientDTO.getName(),clientDTO.getLastName(),clientDTO.getDescription(),payments); + return client; + } + + public static OrderDetail toOrderDetail(OrderDetailDTO orderDetailDTO){ + OrderDetail respOrederDetail; + ItemDAO itemDAO = new ItemDAO(); + Item item; + item = itemDAO.retriveItem(orderDetailDTO.getIdItem()); + respOrederDetail = new OrderDetail(item,orderDetailDTO.getQuantity(),orderDetailDTO.getPrice()); + return respOrederDetail; + } + + public static Discount toDiscount(DiscountDTO discountDTO){ + Discount respDiscount; + ItemDAO itemDAO = new ItemDAO(); + Item item; + item = itemDAO.retriveItem(discountDTO.getIdItem()); + respDiscount = new Discount(discountDTO.getId(),item,discountDTO.getQuantity(),discountDTO.getPrice()); + return respDiscount; + } + + public static Payment toPayment(PaymentDTO paymentDTO){ + Payment respPayment; + OrderDAO orderDAO = new OrderDAO(); + Order order; + order = orderDAO.get(paymentDTO.getId()); + respPayment = new Payment(paymentDTO.getId(),order,paymentDTO.getAmount()); + return respPayment; + } + + public static Order toOrder(OrderDTO orderDTO){ + Order respOrder= new Order(); + respOrder.setId(orderDTO.getId()); + for (OrderDetailDTO orderDetailDTO: orderDTO.getOrderDetails() + ) { + OrderDetail orderDetail; + orderDetail = toOrderDetail(orderDetailDTO); + respOrder.getOrderDetails().add(orderDetail); + } + return respOrder; + } + + +} diff --git a/src/main/java/com/bootcamp2018/util/Utility.java b/src/main/java/com/bootcamp2018/util/Utility.java deleted file mode 100644 index 563be9b..0000000 --- a/src/main/java/com/bootcamp2018/util/Utility.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bootcamp2018.util; - -public class Utility { - public static boolean isInt(String s) { - try { - Integer.parseInt(s); - } catch (NumberFormatException e) { - return false; - } catch (NullPointerException e) { - return false; - } - return true; - } - - public static boolean isDouble(String s) { - try { - Double.parseDouble(s); - } catch (NumberFormatException e) { - return false; - } catch (NullPointerException e) { - return false; - } - return true; - } -} diff --git a/src/main/webapp/WEB-INF/beans.xml b/src/main/webapp/WEB-INF/beans.xml index 08160bf..e0bb9c9 100644 --- a/src/main/webapp/WEB-INF/beans.xml +++ b/src/main/webapp/WEB-INF/beans.xml @@ -11,7 +11,7 @@ http://www.springframework.org/schema/mvc/spring-mvc.xsd"> - + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index a0328fc..cd91e16 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -4,19 +4,22 @@ xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> - spring-mvc-demo + juan + - MyDispatcher + dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation - /WEB-INF/spring-mvc-demo-servlet.xml + /WEB-INF/beans.xml 1 + + - MyDispatcher + dispatcher /