电商项目是目前互联网行业中非常热门的一个领域,它涵盖了商品展示、购物车、订单管理、支付等多个功能模块。在实现一个电商项目时,我们通常会采用Java语言进行开发。本文将介绍一些常见的电商项目面试题,并提供相应的代码示例。

数据库设计

电商项目的数据库设计是非常重要的一步,它需要考虑到商品、用户、订单、支付等多个实体之间的关系。以下是一个简化的数据库设计示例:

表名 字段 类型 说明
商品 id int 商品ID
name varchar 商品名称
price double 商品价格
用户 id int 用户ID
name varchar 用户姓名
address varchar 用户地址
订单 id int 订单ID
user_id int 用户ID
create_time datetime 创建时间
status int 订单状态
total_price double 订单总金额
订单商品 id int 订单商品ID
order_id int 订单ID
product_id int 商品ID
quantity int 商品数量

状态图

以下是一个简化的电商项目状态图,用于展示订单的各种状态变化:

stateDiagram
    [*] --> 待支付
    待支付 --> 已支付: 支付成功
    已支付 --> 已发货: 发货
    已发货 --> 已签收: 签收
    已签收 --> 已完成: 完成
    已发货 --> 已取消: 取消

商品展示

在电商项目中,商品展示是用户浏览商品的入口。我们可以使用Java语言编写一个简单的商品展示功能的示例代码:

public class ProductService {
    private List<Product> productList;

    public ProductService() {
        // 初始化商品列表
        productList = new ArrayList<>();
        productList.add(new Product(1, "商品1", 10.0));
        productList.add(new Product(2, "商品2", 20.0));
        productList.add(new Product(3, "商品3", 30.0));
    }

    public List<Product> getAllProducts() {
        return productList;
    }

    public Product getProductById(int id) {
        for (Product product : productList) {
            if (product.getId() == id) {
                return product;
            }
        }
        return null;
    }
}

public class Product {
    private int id;
    private String name;
    private double price;

    public Product(int id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    // getters and setters
}

上述代码中,ProductService类用于管理商品列表,提供获取所有商品和根据ID获取商品的方法。Product类代表一个商品对象,包含ID、名称和价格等属性。

购物车

购物车是电商项目中非常重要的一个功能模块,它用于存放用户选择的商品以便后续结算。以下是一个简化的购物车功能的示例代码:

public class CartService {
    private Map<Integer, Integer> cart;

    public CartService() {
        cart = new HashMap<>();
    }

    public void addToCart(int productId, int quantity) {
        if (cart.containsKey(productId)) {
            int currentQuantity = cart.get(productId);
            cart.put(productId, currentQuantity + quantity);
        } else {
            cart.put(productId, quantity);
        }
    }

    public void removeFromCart(int productId, int quantity) {
        if (cart.containsKey(productId)) {
            int currentQuantity = cart.get(productId);
            if (currentQuantity <= quantity) {
                cart.remove(productId);
            } else {
                cart.put(productId, currentQuantity - quantity);
            }
        }
    }

    public void clearCart() {
        cart.clear();
    }

    public Map<Integer, Integer> getCartItems() {
        return cart;
    }
}

上述代码中,CartService类用于管理购物车,提供添加商品、删除商品、清空购物车和获取购物车商品列表等方法。