项目方案:Java 积分商城设计

1. 项目背景与需求分析

积分商城是一个在线购物平台,用户可以通过参与活动、购买商品等方式获取积分,然后使用积分在商城中兑换商品。本项目主要需求如下:

  • 用户可以注册、登录、查看个人信息
  • 用户可以浏览商品、查看商品详情、加入购物车、下单购买商品
  • 用户可以使用积分进行抵扣或兑换商品
  • 管理员可以管理商品信息、活动信息、用户信息等

2. 技术选型

本项目使用Java作为主要开发语言,采用Spring Boot框架进行开发。数据库选择MySQL,前端使用HTML/CSS/JavaScript进行开发。

3. 系统设计与实现

3.1 数据库设计

本项目需要设计以下几个主要的数据表:

3.1.1 用户表(User)
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `points` int(11) DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.1.2 商品表(Product)
CREATE TABLE `product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  `description` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.1.3 商品订单表(Order)
CREATE TABLE `order` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL,
  `total_price` decimal(10,2) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`),
  CONSTRAINT `order_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `order_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.2 后端设计与实现

3.2.1 用户管理模块

用户管理模块实现用户注册、登录、个人信息查看等功能。

注册功能
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public String register(@RequestBody User user) {
        if (userService.checkUsername(user.getUsername())) {
            return "Username already exists";
        }
        userService.register(user);
        return "Register success";
    }
}
登录功能
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public String login(@RequestBody User user) {
        if (!userService.checkUsername(user.getUsername())) {
            return "Username does not exist";
        }
        if (!userService.checkPassword(user.getUsername(), user.getPassword())) {
            return "Incorrect password";
        }
        return "Login success";
    }
}
查看个人信息功能
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") int id) {
        return userService.getUserById(id);
    }
}
3.2.2 商品管理模块

商品管理模块实现商品的浏览、详情查看、加入购物车等功能。

浏览商品列表
@RestController
public class ProductController {

    @Autowired
    private ProductService productService;

    @GetMapping("/products")
    public List<Product> getProductList() {
        return productService.getProductList();
    }
}
查看商品详情
@RestController
public class ProductController {

    @Autowired
    private ProductService productService;

    @GetMapping("/product/{id}")
    public Product getProduct(@PathVariable("id") int id) {
        return productService.getProductById(id);
    }
}
加入购物车
@RestController
public class CartController {

    @Autowired
    private CartService cartService;

    @PostMapping("/add-to-cart")
    public String addToCart(@RequestBody CartItem cartItem) {
        cartService.addToCart(cartItem);