Skip to content

Self4215/JavaWebDesignLesson_Exp_Ecommerce_02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

254 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中小型电商系统

23网络工程 尹智灏

基于 Spring Boot 3.5 + Thymeleaf + Spring Security + JPA + Flyway + MySQL 8.4 的电商实验项目。

核心功能:用户注册/登录(含省份城市画像)、商品浏览与购物车、下单/支付/取消(含库存扣减与乐观锁)、三级角色权限(CUSTOMER / SALES / ADMIN)。 Sales 支持商品与类目 CRUD、CSV 导出、操作日志查看;Admin 管理 Sales 账号、订单管理、批量数据导入导出(CSV/TOML/ZIP)、数据分析中心(RFM 画像、趋势预测、异常监控、排行榜)、推荐系统(浏览关联 + Item-Based CF)。

已实现阶段

  • Phase 1-5:用户认证授权、角色权限、商品类目管理、订单工作流、行为数据采集
  • Phase 6:数据分析与推荐系统 — RFM 用户画像、销售趋势与预测、异常检测、排行榜、浏览关联推荐 + Item-Based 协同过滤、ECharts 可视化大屏
  • Phase 7:完整数据导入/导出(13 种数据,含 6 张分析结果表),批量 ZIP 导出/导入,TOML 映射导入

项目结构

src/main/java/org/self4215/
├── config/          # SecurityConfig、MethodSecurity、全局异常、时间配置
├── controller/      # MVC 控制器 + REST API(Product/Cart/Order/Profile + Export + Analytics + Recommendation)
├── entity/          # JPA 实体(User/Product/Order/CartItem/Category/OperationLog + 6 分析实体)
├── exception/       # AppException + AppErrorCode 枚举
├── repository/      # Spring Data JPA 仓库(含分页查询、聚合统计、分析结果表)
├── service/         # 业务逻辑(User/Order/Product/Cart/Log + Analytics + Recommendation + DataImport)
└── util/            # ClientIpResolver(支持 X-Forwarded-For 反向代理)

src/main/resources/
├── db/migration/    # Flyway 迁移脚本 (V1~V8)
├── import-templates/# CSV/TOML 导入模板(13 种数据)
├── templates/       # Thymeleaf 模板(顾客端、admin/、sales/、error/、fragments、products/detail)
└── application.properties

运行步骤

  1. 拉取镜像

    在终端中运行以下命令:

docker pull ghcr.io/self4215/javawebdesignlesson_exp_ecommerce_02:latest
  1. 创建配置文件

(1) 创建 .env 文件

为了安全起见,我们将敏感配置放入环境变量中。

在任意目录下创建一个名为 .env 的文件,并填入以下内容(或者参考源码内的 .env.example 文件):

# 务必在生产环境中修改以下密码

# Database Configuration
MYSQL_DATABASE=ecommerce_db
MYSQL_ROOT_PASSWORD=your_secure_password

# Application Database Connection
DB_HOST=mysql
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=your_secure_password

(2) 第二步:创建 docker-compose.yml 文件

在同一目录下创建一个名为 docker-compose.yml 的文件,并填入以下内容:

version: '3.8'

services:
  mysql:
    image: mysql:8.4
    container_name: ecommerce-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
    volumes:
      - mysql-data:/var/lib/mysql
    networks:
      - ecommerce-network

  app:
    image: ghcr.io/self4215/javawebdesignlesson_exp_ecommerce_02:latest 
    container_name: ecommerce-app
    restart: always
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=${DB_HOST}
      - DB_PASSWORD=${DB_PASSWORD}
    depends_on:
      - mysql
    networks:
      - ecommerce-network

networks:
  ecommerce-network:

volumes:
  mysql-data:
  1. 启动服务

    在该目录下,运行以下命令:

docker-compose up -d
  1. 访问项目

    等待服务启动完成后,访问地址:http://localhost:8080


许可证

本项目采用 MIT 许可证

About

《网络应用架构设计与开发》课程项目 - 智能电商交易与数据分析平台

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors