Commit 1e8b4ec2 authored by Bhargava Rellu's avatar Bhargava Rellu

test

parent dfd9e214
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
This application is for a retailstore to manage customers orders and to check the stock and availability of products. This application is for a retailstore using OOP concepts to manage customers orders and to check the stock and availability of products.
\ No newline at end of file
...@@ -47,7 +47,8 @@ public class OrderManagement { ...@@ -47,7 +47,8 @@ public class OrderManagement {
gap.placeOrder(); gap.placeOrder();
logger.info("Please enter 5 for menu\n To exit please enter 4"); logger.info("Please enter 5 for menu\n To exit please enter 4");
break; break;
case 3:
break;
case 4: case 4:
flag = false; flag = false;
break; break;
......
...@@ -10,9 +10,6 @@ import java.util.Map; ...@@ -10,9 +10,6 @@ import java.util.Map;
public interface ProductFilter { public interface ProductFilter {
// public List<T> getListFromMap(Map<K, V> products);
public Map<Integer, Category> getCategoriesByGender(Gender gender); public Map<Integer, Category> getCategoriesByGender(Gender gender);
public Map<Integer, Color> getColorsByGenderAndCategory(Gender gender, Category category); public Map<Integer, Color> getColorsByGenderAndCategory(Gender gender, Category category);
...@@ -20,12 +17,4 @@ public interface ProductFilter { ...@@ -20,12 +17,4 @@ public interface ProductFilter {
public Map<Integer, Product> getProductsByGenderAndCategory(Gender gender, Category category); public Map<Integer, Product> getProductsByGenderAndCategory(Gender gender, Category category);
public Map<Integer, Product> getProductsByGenderAndColor(Collection<Product> productList, Color color); public Map<Integer, Product> getProductsByGenderAndColor(Collection<Product> productList, Color color);
// public Map<K, V> getProductsByCategory(List<T> products, Category category);
//
// public Map<K, V> getProductsByColor(List<T> products, Color color);
//
// public Map<K, V> getProductsBySize(List<T> products, Size size);
} }
...@@ -5,18 +5,14 @@ import com.retail_store.order_management.model.OrderedProduct; ...@@ -5,18 +5,14 @@ import com.retail_store.order_management.model.OrderedProduct;
import com.retail_store.order_management.model.Product; import com.retail_store.order_management.model.Product;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Collection; import java.util.Collection;
public interface RetailStore { public interface RetailStore {
public boolean addProduct(); public boolean addProduct();
public Collection<OrderedProduct> createOrder(Connection connection);
public boolean placeOrder(); public boolean placeOrder();
public boolean addProductToCart(Collection<OrderedProduct> cart, Product product, Connection connection); public Collection<OrderedProduct> createOrder(Connection connection);
public boolean addProductToCart(Collection<OrderedProduct> cart, Product product, PreparedStatement preparedStatement);
public boolean addProductToCart(Collection<OrderedProduct> cart, Product product, Connection connection);
} }
...@@ -20,11 +20,8 @@ import static com.retail_store.order_management.utils.Database.getConnection; ...@@ -20,11 +20,8 @@ import static com.retail_store.order_management.utils.Database.getConnection;
public class RetailStoreService extends Validate implements RetailStore, ProductFilter { public class RetailStoreService extends Validate implements RetailStore, ProductFilter {
// private Connection connection;
public List<Product> products;
public RetailStoreService(Scanner scanner, Logger logger) { public RetailStoreService(Scanner scanner, Logger logger) {
this.products = new ArrayList<>();
this.scanner = scanner; this.scanner = scanner;
this.logger = logger; this.logger = logger;
} }
...@@ -228,12 +225,6 @@ public class RetailStoreService extends Validate implements RetailStore, Product ...@@ -228,12 +225,6 @@ public class RetailStoreService extends Validate implements RetailStore, Product
} }
} }
@Override
public boolean addProductToCart(Collection<OrderedProduct> cart, Product product, PreparedStatement preparedStatement) {
return false;
}
@Override @Override
public Map<Integer, Category> getCategoriesByGender(Gender gender) { public Map<Integer, Category> getCategoriesByGender(Gender gender) {
Map<Integer, Category> categoryMap = new LinkedHashMap<>(); Map<Integer, Category> categoryMap = new LinkedHashMap<>();
...@@ -261,63 +252,63 @@ public class RetailStoreService extends Validate implements RetailStore, Product ...@@ -261,63 +252,63 @@ public class RetailStoreService extends Validate implements RetailStore, Product
} }
@Override @Override
public Map<Integer, Color> getColorsByGenderAndCategory(Gender gender, Category category) { public Map<Integer, Product> getProductsByGenderAndCategory(Gender gender, Category category) {
Map<Integer, Color> colorMap = new LinkedHashMap<>(); Map<Integer, Product> productMap = new LinkedHashMap<>();
AtomicInteger number = new AtomicInteger(0); AtomicInteger number = new AtomicInteger(0);
Connection connection = getConnection(); Connection connection = getConnection();
try { try {
PreparedStatement preparedStatement = connection.prepareStatement("select color from gap.products where gender=? and category=? group by color"); PreparedStatement preparedStatement = connection.prepareStatement("select * from gap.products where gender=? and category =?");
preparedStatement.setString(1, gender.getGender()); preparedStatement.setString(1, gender.getGender());
preparedStatement.setString(2, category.toString()); preparedStatement.setString(2, category.toString());
ResultSet resultSet = preparedStatement.executeQuery(); ResultSet resultSet = preparedStatement.executeQuery();
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
while (resultSet.next()) { while (resultSet.next()) {
colorMap.put(number.incrementAndGet(), Color.valueOf(resultSet.getString(1))); Product product = new Product(resultSet.getString(1), resultSet.getString(2), Category.valueOf(resultSet.getString(3)), Color.valueOf(resultSet.getString(4)), resultSet.getDouble(5), Gender.valueOf(resultSet.getString(6).toUpperCase()), getProductSizes(resultSet.getInt(7), resultSet.getInt(8), resultSet.getInt(9), resultSet.getInt(10), resultSet.getInt(11)));
productMap.put(number.incrementAndGet(), product);
} }
} catch (SQLException e) { } catch (SQLException e) {
logger.info(e.getMessage()); logger.info(e.getMessage());
logger.info("got error while fetching the gender. please try again"); logger.info("got error while fetching the gender. please try again");
return getColorsByGenderAndCategory(gender, category); return getProductsByGenderAndCategory(gender, category);
} }
if (colorMap.isEmpty()) { if (productMap.isEmpty()) {
logger.info("Colors not found in " + category + " for " + gender); logger.info("Products not found in " + category);
} else { } else {
String menu = colorMap.entrySet().stream().map(entry -> entry.getKey() + ". " + entry.getValue()).reduce("", (colors, color) -> colors + "\n" + color); String menu = productMap.entrySet().stream().map(entry -> entry.getKey() + ". " + entry.getValue().productShowcaseInMenu()).reduce("", (products, product) -> products + "\n" + product);
logger.info(menu); logger.info(menu);
} }
return colorMap; return productMap;
} }
@Override @Override
public Map<Integer, Product> getProductsByGenderAndCategory(Gender gender, Category category) { public Map<Integer, Color> getColorsByGenderAndCategory(Gender gender, Category category) {
Map<Integer, Product> productMap = new LinkedHashMap<>(); Map<Integer, Color> colorMap = new LinkedHashMap<>();
AtomicInteger number = new AtomicInteger(0); AtomicInteger number = new AtomicInteger(0);
Connection connection = getConnection(); Connection connection = getConnection();
try { try {
PreparedStatement preparedStatement = connection.prepareStatement("select * from gap.products where gender=? and category =?"); PreparedStatement preparedStatement = connection.prepareStatement("select color from gap.products where gender=? and category=? group by color");
preparedStatement.setString(1, gender.getGender()); preparedStatement.setString(1, gender.getGender());
preparedStatement.setString(2, category.toString()); preparedStatement.setString(2, category.toString());
ResultSet resultSet = preparedStatement.executeQuery(); ResultSet resultSet = preparedStatement.executeQuery();
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
while (resultSet.next()) { while (resultSet.next()) {
Product product = new Product(resultSet.getString(1), resultSet.getString(2), Category.valueOf(resultSet.getString(3)), Color.valueOf(resultSet.getString(4)), resultSet.getDouble(5), Gender.valueOf(resultSet.getString(6).toUpperCase()), getProductSizes(resultSet.getInt(7), resultSet.getInt(8), resultSet.getInt(9), resultSet.getInt(10), resultSet.getInt(11))); colorMap.put(number.incrementAndGet(), Color.valueOf(resultSet.getString(1)));
productMap.put(number.incrementAndGet(), product);
} }
} catch (SQLException e) { } catch (SQLException e) {
logger.info(e.getMessage()); logger.info(e.getMessage());
logger.info("got error while fetching the gender. please try again"); logger.info("got error while fetching the gender. please try again");
return getProductsByGenderAndCategory(gender, category); return getColorsByGenderAndCategory(gender, category);
} }
if (productMap.isEmpty()) { if (colorMap.isEmpty()) {
logger.info("Products not found in " + category); logger.info("Colors not found in " + category + " for " + gender);
} else { } else {
String menu = productMap.entrySet().stream().map(entry -> entry.getKey() + ". " + entry.getValue().productShowcaseInMenu()).reduce("", (products, product) -> products + "\n" + product); String menu = colorMap.entrySet().stream().map(entry -> entry.getKey() + ". " + entry.getValue()).reduce("", (colors, color) -> colors + "\n" + color);
logger.info(menu); logger.info(menu);
} }
return productMap; return colorMap;
} }
@Override @Override
public Map<Integer, Product> getProductsByGenderAndColor(Collection<Product> productList, Color color) { public Map<Integer, Product> getProductsByGenderAndColor(Collection<Product> productList, Color color) {
return null; return null;
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment