# agricultural **Repository Path**: Jioc/agricultural ## Basic Information - **Project Name**: agricultural - **Description**: 特色农产品电商平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-24 - **Last Updated**: 2025-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, Vue, MySQL ## README # 特色农产品电商平台 基于Spring Boot + Vue3 + MySQL构建的特色农产品电商平台,提供农产品展示、购买、订单管理等完整电商功能。 ## 技术架构 ### 后端技术栈 - **框架**: Spring Boot 3.2.0 - **安全认证**: Spring Security + JWT - **数据持久化**: Spring Data JPA - **数据库**: MySQL 8.0+ - **Java版本**: JDK 17 ### 前端技术栈 - **框架**: Vue 3.3.4 - **路由**: Vue Router 4.2.4 - **状态管理**: Pinia 2.1.6 - **UI组件库**: Element Plus 2.3.8 - **构建工具**: Vite 4.3.9 ## 系统功能模块 ### 用户管理模块 - 用户注册/登录(手机号+密码) - 用户信息管理 - 角色权限控制(USER/ADMIN) ### 商品管理模块 - 农产品展示(名称、价格、库存、图片) - 商品分类和产地筛选 - 促销商品管理 - 商品详情查看 ### 购物车模块 - 商品添加/删除 - 数量调整 - 实时价格计算 ### 订单管理模块 - 订单创建和支付 - 订单状态跟踪(待支付、已支付、已发货、已完成、已取消) - 订单历史查看 ### 地址管理模块 - 收货地址添加/编辑/删除 - 默认地址设置 ### 评价系统模块 - 商品评价和评分 - 评价内容管理 ### 优惠券模块 - 优惠券发放和使用 - 优惠券有效期管理 ### 后台管理模块 - 用户管理 - 商品管理 - 订单管理 - 数据统计 ## 核心接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 ### 用户接口 - `GET /api/user/profile` - 获取用户信息 - `PUT /api/user/profile` - 更新用户信息 ### 商品接口 - `GET /api/products` - 获取商品列表 - `GET /api/products/{id}` - 获取商品详情 - `POST /api/products` - 创建商品(管理员) - `PUT /api/products/{id}` - 更新商品(管理员) ### 购物车接口 - `GET /api/cart` - 获取购物车 - `POST /api/cart` - 添加商品到购物车 - `DELETE /api/cart/{id}` - 删除购物车商品 ### 订单接口 - `POST /api/orders` - 创建订单 - `GET /api/orders` - 获取订单列表 - `GET /api/orders/{id}` - 获取订单详情 ### 地址接口 - `GET /api/addresses` - 获取地址列表 - `POST /api/addresses` - 添加地址 - `PUT /api/addresses/{id}` - 更新地址 ## 数据库表结构 ### users (用户表) - id, username, password, phone, email, nickname, avatar - role, status, create_time, update_time, deleted ### products (商品表) - id, name, description, price, stock, image, category, origin - growth_cycle, environment_info, status, is_promotion, promotion_price ### orders (订单表) - id, order_no, user_id, total_amount, status, payment_method - shipping_address, receiver_name, receiver_phone ### order_items (订单项表) - id, order_id, product_id, product_name, product_image - product_price, quantity, total_price ### coupons (优惠券表) - id, name, code, discount_amount, min_purchase_amount - status, valid_from, valid_to, user_id ### reviews (评价表) - id, product_id, user_id, order_id, rating, content ### cart_items (购物车表) - id, user_id, product_id, quantity ### addresses (地址表) - id, user_id, recipient, phone, province, city, district, detail - is_default, create_time, update_time ## 环境依赖 ### 后端依赖 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ ### 前端依赖 - Node.js 16+ - npm 8+ ## 部署步骤 ### 1. 数据库准备 ```sql -- 创建数据库 CREATE DATABASE agricultural_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 执行建表脚本 USE agricultural_db; SOURCE database/schema.sql; SOURCE database/test_data.sql; ``` ### 2. 后端部署 ```bash cd agricultural-platform/backend # 配置数据库连接 # 修改 src/main/resources/application.yml 中的数据库配置 # 编译打包 mvn clean package # 运行项目 java -jar target/agricultural-platform-1.0.0.jar ``` ### 3. 前端部署 ```bash cd agricultural-platform/frontend # 安装依赖 npm install # 开发环境运行 npm run dev # 生产环境构建 npm run build ``` ### 4. 配置文件 后端配置文件 `application.yml` 需要配置: - 数据库连接信息 - JWT密钥 - 文件上传路径 - 服务器端口 ## 项目结构 ``` agricultural-platform/ ├── backend/ # Spring Boot后端 │ ├── src/ │ │ ├── main/java/com/agricultural/ │ │ │ ├── controller/ # 控制器层 │ │ │ ├── service/ # 服务层 │ │ │ ├── repository/ # 数据访问层 │ │ │ ├── entity/ # 实体类 │ │ │ └── config/ # 配置类 │ │ └── resources/ # 配置文件 ├── frontend/ # Vue3前端 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # 组件 │ │ ├── views/ # 页面视图 │ │ ├── stores/ # 状态管理 │ │ └── router/ # 路由配置 └── database/ # 数据库脚本 ├── schema.sql # 建表脚本 └── test_data.sql # 测试数据 ``` ## 启动说明 项目提供了快速启动脚本: - `start-dev.bat` - Windows开发环境启动 - `start-dev.ps1` - PowerShell开发环境启动 - `test-integration.bat` - 集成测试脚本 - `test-integration.ps1` - PowerShell集成测试脚本 ## 注意事项 1. 确保MySQL服务已启动并配置正确 2. 后端默认运行在端口8080,前端运行在5173 3. 文件上传功能需要配置正确的上传路径权限 4. JWT密钥需要在生产环境中进行安全配置