# ConveShop **Repository Path**: fly_do/conve-shop ## Basic Information - **Project Name**: ConveShop - **Description**: 便利店采购系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-09-23 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Conve-Shop 项目说明文档 ## 项目简介 Conve-Shop 是一个基于 Spring Boot 的后台管理系统,主要用于管理商品、订单、库存、员工、供应商等信息。系统集成了 MyBatis Plus、WebSocket、定时任务、钉钉消息推送等功能,适用于电商或零售行业的后台管理场景。 ## 功能模块 - **商品管理**:支持商品的增删改查、分类管理、图片上传等功能。 - **订单管理**:支持订单的创建、发货、收货、退货等操作,并支持订单分页查询。 - **库存管理**:实时监控库存数量,支持库存预警功能,当库存低于安全库存时,通过钉钉发送预警消息。 - **员工管理**:支持员工登录、员工信息管理、密码重置等功能。 - **供应商管理**:支持供应商信息的管理,以及供应商订单的分组查询。 - **采购结算**:支持采购订单的结算功能,可生成结算单并查询结算记录。 - **钉钉消息推送**:当库存不足时,自动通过钉钉机器人发送预警消息。 - **WebSocket 实时通知**:通过 WebSocket 实现实时库存预警通知。 ## 技术栈 - **Spring Boot**:快速构建微服务架构。 - **MyBatis Plus**:简化数据库操作,提高开发效率。 - **Spring MVC**:处理 HTTP 请求,构建 RESTful API。 - **Spring Data JPA**:用于部分数据访问层。 - **Spring WebSocket**:实现实时通信,推送库存预警消息。 - **Spring Scheduler**:定时任务,用于定期检查库存。 - **DingTalk Bot**:钉钉机器人,用于发送库存预警消息。 - **Swagger UI**:API 文档生成工具,方便接口调试。 - **PageHelper**:分页插件,简化分页查询。 - **Lombok**:减少样板代码,提高代码可读性。 - **Logback**:日志记录工具。 - **RestTemplate**:用于调用外部服务或发送 HTTP 请求。 ## 项目结构 - **`src/main/java/com/cc/controller`**:控制器层,处理 HTTP 请求。 - **`src/main/java/com/cc/service`**:服务接口层,定义业务逻辑。 - **`src/main/java/com/cc/service/impl`**:服务实现层,具体业务逻辑实现。 - **`src/main/java/com/cc/mapper`**:数据访问层接口,使用 MyBatis Plus。 - **`src/main/java/com/cc/model/entity`**:实体类,对应数据库表。 - **`src/main/java/com/cc/model/dto`**:数据传输对象,用于接收请求参数。 - **`src/main/java/com/cc/model/vo`**:视图对象,用于返回给前端的数据。 - **`src/main/java/com/cc/comm`**:通用工具类、异常处理、统一返回结果类。 - **`src/main/java/com/cc/dingtalk`**:钉钉消息推送相关类。 - **`src/main/java/com/cc/scheduler`**:定时任务类,用于库存预警。 - **`src/main/java/com/cc/config`**:配置类,如 CORS、WebSocket、MyBatis Plus 等配置。 - **`src/main/resources`**:配置文件、SQL 脚本、Mapper XML 文件等。 ## 启动方式 1. 确保已安装 JDK 1.8 或更高版本。 2. 确保已安装 MySQL 数据库,并导入 `DB/749shopping_db.sql` 和 `DB/updateSql.sql`。 3. 修改 `application.yml` 中的数据库连接信息。 4. 执行 `mvn clean install` 安装依赖。 5. 运行 `HxgShoppingApplication.java` 启动项目。 ## 接口文档 项目集成了 Swagger UI,启动项目后访问 `/swagger-ui.html` 查看 API 文档。 ## 钉钉消息推送配置 在 `application.yml` 中配置钉钉机器人的 Webhook 和 Secret: ```yaml ding: robot: webhook: https://oapi.dingtalk.com/robot/send?access_token=your_token secret: your_secret ``` ## 文件上传配置 在 `application.yml` 中配置文件上传路径: ```yaml file: upload-path: /path/to/upload/directory ``` ## 定时任务 项目中有一个定时任务 `InventoryScheduler.java`,每分钟检查库存,当库存低于安全库存时,发送钉钉消息预警。 ## WebSocket 实时通知 通过 `InventoryWebSocketHandler.java` 实现实时库存预警通知,前端可以通过 WebSocket 连接获取实时预警信息。 ## 异常处理 项目使用 `GlobalExceptionHandler.java` 统一处理异常,返回统一格式的错误信息。 ## 统一返回结果 所有接口返回结果都封装在 `R.java` 中,包含状态码、消息和数据。 ## 分页支持 项目使用 PageHelper 实现分页查询,返回结果封装在 `PageResult.java` 中,包含总记录数、当前页数据、页码、每页数量等信息。 ## 依赖管理 项目使用 Maven 进行依赖管理,主要依赖包括: - Spring Boot Starter Web - MyBatis Plus Boot Starter - Spring Boot Starter Data JPA - Spring Boot Starter WebSocket - Swagger UI - Lombok - MySQL Connector Java - Fastjson - RestTemplate ## 测试 项目包含单元测试,位于 `src/test/java` 目录下,使用 SpringBootTest 进行集成测试。 ## 许可证 本项目遵循 MIT 许可证,您可以自由使用、修改和分发本项目代码。