diff --git a/src/main/java/org/s4s/dao/ShopDAO.java b/src/main/java/org/s4s/dao/ShopDAO.java index 740a95b35b6b62f45ec7ef78350c4f39aa48970c..6ff0f96553d91fbc8e48e226b5e71cf357adf1d8 100644 --- a/src/main/java/org/s4s/dao/ShopDAO.java +++ b/src/main/java/org/s4s/dao/ShopDAO.java @@ -5,10 +5,62 @@ */ package org.s4s.dao; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.s4s.modell.dto.User; +import org.s4s.services.db.JDBCConnection; + /** * - * @author Holger + * @author Benjamin */ -public interface ShopDAO { +public class ShopDAO { + public static ShopDAO dao = null; + private final Statement statement = JDBCConnection.getInstance().getStatement(); + private ShopDAO() { + + } + + public static ShopDAO getInstance() { + if (dao == null) { + dao = new ShopDAO(); + } + return dao; + } + + //Shop anhand von User/Besitzer auslesen + public boolean viewShop (User user) { + boolean result = true; + try { + ResultSet set = statement.executeQuery("SELECT *" + + "FROM ERR.shop" + + "WHERE besitzer = \'" + user.getBenutzername() + "\'"); + if (set != null) { + result = false; + } + } catch (SQLException ex) { + Logger.getLogger(ShopDAO.class.getName()).log(Level.SEVERE, null, ex); + } + return result; + } + + public boolean addShop (User user, String shopName, String shopDescription) { + //Shop via Benutzername anlegen da dieser idR eindeutig ist + try { + // vorausgesetzt ID wird automatisch gesetzt von der DB + statement.execute("INSERT INTO ERR.shop (name, besitzer, beschreibung) VALUES (" + + shopName + "," + + user.getBenutzername() + "," + + shopDescription + ");"); + return true; + } catch (SQLException ex) { + Logger.getLogger(ShopDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } + + } } diff --git a/src/main/java/org/s4s/dao/impl/ShopControl.java b/src/main/java/org/s4s/dao/impl/ShopControl.java new file mode 100644 index 0000000000000000000000000000000000000000..86bac45639bd0eda2908da6f80af098631ebc4c3 --- /dev/null +++ b/src/main/java/org/s4s/dao/impl/ShopControl.java @@ -0,0 +1,47 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.s4s.dao.impl; + +import com.vaadin.server.VaadinSession; +import com.vaadin.ui.UI; +import java.sql.SQLException; +import org.s4s.dao.ShopDAO; +import org.s4s.services.util.Roles; +import org.s4s.exceptions.OwnsAlreadyShop; +import org.s4s.modell.dto.User; +import org.s4s.services.util.Views; + +/** + * + * @author Benjamin + */ +public class ShopControl { + private static final User user = (User) VaadinSession.getCurrent().getAttribute(Roles.CURRENTUSER); + + //bekommt User aus der View übergeben und prüft ob dieser schon in der Shopdb vorhanden ist (= hat schon einen Shop). + public static void checkUserShop( String shopName, String shopBeschreibung) throws OwnsAlreadyShop, SQLException { + boolean test = ShopDAO.getInstance().viewShop(user); + //Shop mit dem Nutzer schon vorhanden + if (test == false) { + throw new OwnsAlreadyShop("Sie besitzen bereits einen Shop!"); + } //noch kein Shop vorhanden + else { + addUserShop(shopName, shopBeschreibung); + } + } + + private static void addUserShop(String shopName, String shopBeschreibung) throws SQLException { + boolean erstellung = ShopDAO.getInstance().addShop(user, shopName, shopBeschreibung); + + if (erstellung == true){ + //Weiterleitung zur Shopseite, wenn Shop erfolgreich erstellt + UI.getCurrent().getNavigator().navigateTo(Views.SHOP); + } else { + //Fehlerhandling + throw new SQLException("Fehler beim Anlegen des Shops bitte noch einmal versuchen oder Programmierer kontaktieren!"); + } + } +} diff --git a/src/main/java/org/s4s/exceptions/OwnsAlreadyShop.java b/src/main/java/org/s4s/exceptions/OwnsAlreadyShop.java new file mode 100644 index 0000000000000000000000000000000000000000..e7ea93de0b5d8f0ecb611f6f3457ac5272946b91 --- /dev/null +++ b/src/main/java/org/s4s/exceptions/OwnsAlreadyShop.java @@ -0,0 +1,28 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.s4s.exceptions; + +/** + * + * @author Benjamin + */ +public class OwnsAlreadyShop extends Exception { + + private String reason = null; + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public OwnsAlreadyShop (String reason) { + this.reason = reason; + } + +}