模拟商城添加、查看商品和添加商品到购物车、查看购物车

//欢迎来到(模拟)京东商城代码编辑
//商城接口类:定义查询和添加商品的方法(修改和删除暂不写)
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);
    }
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值