//欢迎来到(模拟)京东商城代码编辑
//商城接口类:定义查询和添加商品的方法(修改和删除暂不写)
package shopping.dao;
import shopping.entity.Product;
import java.util.List;
public interface ProductDao {
void add(Product product);
List<Product> findAll();
Product findById(int id);
}
//商品类 定义初始化数据,实现商品接口类中的方法
package shopping.dao.impl;
import shopping.dao.ProductDao;
import shopping.entity.Product;
import java.util.ArrayList;
import java.util.List;
public class ProductDaoImpl implements ProductDao {
private static List<Product> productList = new ArrayList<Product>();
static {
productList.add(new Product(1111,"蜘蛛王皮鞋 ",238,"黑色",44,100000));
productList.add(new Product(3333,"Thinkpad x240 ",5938,"黑色",42,9999));
productList.add(new Product(2222,"皮卡丘抱枕 ",238,"白色",34,5000));
}
@Override
public void add(Product product) {
boolean flag = false;
for (int i=0;i<productList.size();i++){
Product p = productList.get(i);
if (p.getId()==product.getId()){
flag=true;
break;
}
}
if (flag){
System.out.println("该商品已经存在");
}else {
productList.add(product);
System.out.println("添加成功");
}
}
@Override
public List<Product> findAll() {
return productList;
}
@Override
public Product findById(int id) {
for (int i=0; i<productList.size();i++){
Product product = productList.get(i);
if (product.getId()==id){
return product;
}
}
return null;
}
}
//购物车接口类 定义购物车的添加商品和查看购物车的方法
package shopping.dao;
import shopping.entity.CartItem;
import java.util.LinkedHashMap;
public interface CartItemDao {
public void addCartItem(CartItem item);
public LinkedHashMap<Integer,CartItem> findCart();
}
//购物车类实现购物车接口
package shopping.dao.impl;
import shopping.dao.CartItemDao;
import shopping.entity.CartItem;
import java.util.LinkedHashMap;
public class CartItemDaoImpl implements CartItemDao {
private static LinkedHashMap<Integer,CartItem> shoppingCart = new LinkedHashMap<>();
static{
}
@Override
public void addCartItem(CartItem item) {
CartItem item2 = shoppingCart.get(item.getId());
if (item2==null){
shoppingCart.put(item.getId(),item);
}else {
// int num1 = item2.getAmount();
// int num2 = item.getAmount();
// int num = num1+num2;
// item2.setAmount(num);
item2.setAmount(item2.getAmount()+item.getAmount());
}
}
@Override
public LinkedHashMap<Integer, CartItem> findCart() {
return shoppingCart;
}
}
//测试类 测试商城添加商品,查看商品,和购物车添加商品,查看购物车功能
package shopping.test;
import shopping.dao.CartItemDao;
import shopping.dao.ProductDao;
import shopping.dao.impl.CartItemDaoImpl;
import shopping.dao.impl.ProductDaoImpl;
import shopping.entity.CartItem;
import shopping.entity.Product;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
do {
System.out.println();
System.out.println("******欢迎进如京东商城******");
System.out.println("\t1.添加商品");
System.out.println("\t2.查看所有商品");
System.out.println("\t3.查看指定商品编号");
System.out.println("\t4.添加到购物车");
System.out.println("\t5.显示购物车");
System.out.println("\t6.退出");
System.out.println("****************************");
System.out.print("请选择菜单:");
int choice = sc.nextInt();
switch (choice){
case 1:
addProduct();
break;
case 2:
showAll();
break;
case 3:
showById();
break;
case 4:
// System.out.println("添加到购物车");
addCartItem();
break;
case 5:
// System.out.println("显示购物车");
showCartItem();
break;
case 6:
System.out.println("谢谢使用");
return;
default :
System.out.println("输入错误,请输入(1-6):");
}
}while (true);
}
private static void showCartItem() {
CartItemDao cartItemDao = new CartItemDaoImpl();
Map<Integer,CartItem> shoppingCart = cartItemDao.findCart();
Collection<CartItem> items = shoppingCart.values();
System.out.println("编号\t商品名称 \t\t价格\t数量\t小计");
double total = 0;
for (CartItem item:items){
System.out.println(item.getId()+"\t"+item.getName()+"\t"+item.getPrice()+"\t"+item.getAmount()+"\t"+item.getPrice()*item.getAmount());
total = total+item.getPrice()*item.getAmount();
}
System.out.println("总价"+total);
}
private static void addCartItem() {
System.out.print("请输入要购买的商品编号:");
Scanner sc = new Scanner(System.in);
int id = sc.nextInt();
System.out.print("请输入要购买的商品数量:");
int amount = sc.nextInt();
ProductDao productDao = new ProductDaoImpl();
Product product = productDao.findById(id);
CartItem item = new CartItem();
item.setId(id);
item.setName(product.getName());
item.setPrice(product.getPrice());
item.setAmount(amount);
CartItemDao cartItemDao = new CartItemDaoImpl();
cartItemDao.addCartItem(item);
}
private static void showById() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入要查询的商品编号:");
int id = sc.nextInt();
ProductDao productDao = new ProductDaoImpl();
Product product = productDao.findById(id);
System.out.println("编号\t商品名称 \t\t价格\t 颜色 \t 尺寸 \t 库存");
if (product==null){
System.out.println("该编号的商品不存在");
}else {
System.out.println(product.getId()+"\t"+product.getName()+"\t"+product.getPrice()+"\t"+
product.getColor()+"\t"+product.getSize()+"\t"+product.getStock());
}
}
private static void showAll() {
ProductDao productDao = new ProductDaoImpl();
List<Product> productList = productDao.findAll();
System.out.println("编号\t商品名称 \t\t价格\t 颜色 \t 尺寸 \t 库存");
for (Product product:productList){
System.out.println(product.getId()+"\t"+product.getName()+" \t"+product.getPrice()+"\t"+
product.getColor()+"\t"+product.getSize()+"\t"+product.getStock());
}
}
private static void addProduct() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入商品编号:");
int id = sc.nextInt();
System.out.print("请输入商品名称:");
String name = sc.next();
System.out.print("请输入商品价格:");
double price = sc.nextDouble();
System.out.print("请输入商品颜色:");
String color = sc.next();
System.out.print("请输入商品尺寸:");
int size = sc.nextInt();
System.out.print("请输入商品库存:");
int stock = sc.nextInt();
Product product = new Product(id,name,price,color,size,stock);
ProductDao productDao = new ProductDaoImpl();
productDao.add(product);
}
}
模拟商城添加、查看商品和添加商品到购物车、查看购物车
最新推荐文章于 2024-04-23 18:52:22 发布