📜  迪士尼加 (1)

📅  最后修改于: 2023-12-03 15:28:20.385000             🧑  作者: Mango

迪士尼加

迪士尼加

迪士尼加是一个基于Spring Cloud的微服务架构的电商平台,旨在为用户提供优质的产品和服务。

技术栈
  • Spring Cloud
  • Spring Boot
  • MyBatis
  • Redis
  • RabbitMQ
  • Docker
功能模块
用户模块
  • 注册/登录
  • 个人信息管理
  • 购物车管理
  • 订单管理
商品模块
  • 商品浏览
  • 商品搜索
  • 商品详情
支付模块
  • Alipay支付
  • 微信支付
物流模块
  • 物流查询
  • 物流跟踪
数据库设计

数据库设计

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  `nickname` varchar(20) DEFAULT '用户',
  PRIMARY KEY (`id`)
);

CREATE TABLE `product` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `price` decimal(10,2) DEFAULT '0.00',
  `inventory` int DEFAULT '0',
  `description` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `order` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int DEFAULT NULL,
  `product_id` int DEFAULT NULL,
  `quantity` int DEFAULT '0',
  `amount` decimal(10,2) DEFAULT '0.00',
  `status` int DEFAULT '0',
  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
);

CREATE TABLE `cart` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int DEFAULT NULL,
  `product_id` int DEFAULT NULL,
  `quantity` int DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`),
  CONSTRAINT `cart_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `cart_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
API设计
用户模块
  • 注册API

    POST /api/user/register
    

    | 名称 | 必填 | 类型 | 描述 | | --------- | ---- | ------ | -------- | | username | 是 | string | 用户名 | | password | 是 | string | 密码 | | nickname | 否 | string | 昵称 |

  • 登录API

    POST /api/user/login
    

    | 名称 | 必填 | 类型 | 描述 | | -------- | ---- | ------ | ------ | | username | 是 | string | 用户名 | | password | 是 | string | 密码 |

  • 个人信息API

    GET /api/user/info
    
  • 购物车API

    GET /api/user/cart
    POST /api/user/cart
    PUT /api/user/cart
    DELETE /api/user/cart
    
商品模块
  • 商品浏览API

    GET /api/product
    
  • 商品搜索API

    GET /api/product/search
    

    | 名称 | 必填 | 类型 | 描述 | | ---- | ---- | ------ | ------ | | name | 是 | string | 商品名 |

  • 商品详情API

    GET /api/product/:id
    

    | 名称 | 必填 | 类型 | 描述 | | ---- | ---- | ---- | ---- | | id | 是 | int | ID |

支付模块
  • Alipay支付API

    POST /api/pay/alipay
    
  • 微信支付API

    POST /api/pay/wechat
    
物流模块
  • 物流查询API

    GET /api/logistics/query
    

    | 名称 | 必填 | 类型 | 描述 | | ------------ | ---- | ------ | ------ | | logistics_id | 是 | string | 物流单号 |

  • 物流跟踪API

    GET /api/logistics/trace
    

    | 名称 | 必填 | 类型 | 描述 | | ------------ | ---- | ------ | ------ | | logistics_id | 是 | string | 物流单号 |

项目架构

项目架构

  • 这是一个基于Spring Cloud的微服务架构,包括多个服务:用户服务、商品服务、支付服务、物流服务等。
  • 每个服务都是一个独立的Spring Boot应用,通过Eureka Server进行服务注册和发现。
  • 服务之间通过Feign Client进行通信,使用RabbitMQ实现异步消息传递。
  • 数据库使用MySQL,使用MyBatis进行ORM映射。
  • 使用Redis作为缓存,提高系统响应速度。
  • 服务部署使用Docker进行容器化,便于管理维护。