# dkd-parent **Repository Path**: daiting-wei/dkd-parent ## Basic Information - **Project Name**: dkd-parent - **Description**: 帝可得后台管理系统 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 5398 - **Created**: 2025-07-28 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 帝可得智能售货机管理系统 **前端仓库**: [dkd-vue](https://gitee.com/daiting-wei/dkd-vue) ## 项目简介 帝可得智能售货机管理系统是一个基于 RuoYi 框架构建的企业级智能售货机运营管理解决方案,采用 Spring Boot + Vue 前后端分离架构。系统集成物联网和互联网技术,为智能售货机的运营管理提供全方位支持,包括设备监控、任务调度、区域管理、商品管理等核心功能,有效提升运营效率和用户体验。 ### 技术栈 - **后端**:Spring Boot 2.x、MyBatis-Plus、Redis 6.x、Quartz、Spring Security 5.x - **前端**:Vue.js 3.x、Element Plus、Vite - **数据库**:MySQL 5.7+、Druid 连接池 - **缓存与消息**:Redis、本地缓存 - **API 文档**:SpringDoc OpenAPI 3.0 (Swagger 3) - **工具类库**:Hutool、Apache Commons - **部署支持**:多数据源、动态路由、容器化部署 ### 核心功能模块 - **用户与权限管理**:权限控制、多角色支持、部门管理、岗位管理、数据权限隔离 - **设备与货道管理**:智能售货机基础信息管理、货道配置、设备状态实时监控、远程控制 - **工单与任务管理**:故障报修、补货工单自动/手动创建、工单流转、执行状态跟踪、工单统计 - **区域与点位管理**:多级区域结构管理、点位信息维护、区域数据统计分析 - **商品与库存管理**:商品分类、商品信息维护、实时库存监控、库存预警 - **运营策略管理**:动态定价策略、促销活动配置、自动补货规则设置 - **系统监控与日志**:操作审计日志、登录日志、系统运行状态监控、异常报警 --- ## 快速开始 ### 环境要求 - **JDK**: 1.8 或更高版本 - **Maven**: 3.6.0 或更高版本 - **MySQL**: 5.7 或更高版本(推荐 8.0) - **Redis**: 6.0 或更高版本 - **Node.js**: 14.x 或更高版本(前端开发需要) - **Git**: 任意版本 - **开发工具**: IntelliJ IDEA / Eclipse(推荐 IDEA) ### 后端部署 1. **克隆项目** ```bash git clone https://gitee.com/daiting-wei/dkd-parent.git cd dkd-parent ``` 2. **初始化数据库** - 创建数据库:`CREATE DATABASE dkd CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;` - 导入数据库脚本:依次执行 `sql/ry_20231130.sql` 和 `sql/quartz.sql` 3. **配置数据源** 修改 `dkd-admin/src/main/resources/application.yml` 文件中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/dkd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai username: root password: your_password # 请修改为实际密码 ``` 4. **配置 Redis** 确保 Redis 服务已启动,并在 `application.yml` 中配置 Redis 连接: ```yaml spring: redis: host: localhost port: 6379 password: # Redis 密码,无密码则为空 database: 0 ``` 5. **构建与启动** 使用 Maven 构建并运行项目: ```bash # 安装依赖并编译 mvn clean install # 启动后端服务 cd dkd-admin mvn spring-boot:run ``` 或者在 IDE 中直接运行 `com.dkd.DkdApplication` 类的 main 方法。 6. **验证服务** - 服务启动后访问:`http://localhost:8080` - 默认登录账号:admin,密码:admin123 - API 文档地址:`http://localhost:8080/swagger-ui.html` ### 前端部署 请参考前端仓库 [dkd-vue](https://gitee.com/daiting-wei/dkd-vue) 的部署说明。 --- ## 功能模块说明 ### 1. 用户与权限管理 - **用户管理**:用户信息增删改查、密码重置、账号状态管理、个人信息维护 - **角色管理**:基于 RBAC 模型的角色定义、权限分配、角色继承关系 - **权限管理**:菜单权限、按钮权限、API 权限的精细化控制 - **数据权限**:支持部门、区域、用户组等多维度数据权限隔离 - **部门与岗位**:组织架构管理、多级部门结构、岗位信息维护 - **操作日志**:用户操作行为审计、关键操作记录、异常行为追踪 - **登录管理**:登录日志、在线用户管理、强制下线功能 ### 2. 设备与货道管理 - **设备基础信息**:设备编号、类型、型号、所属区域、安装点位等信息管理 - **设备实时监控**:设备在线状态、运行参数、故障报警实时监控 - **货道配置管理**:货道数量、容量、商品绑定关系的灵活配置 - **远程控制**:支持远程重启、参数下发、状态查询等操作 - **设备分组**:基于业务需求的设备分组管理,便于批量操作 - **设备统计**:设备数量、故障率、在线率等多维度统计分析 ### 3. 工单与任务管理 - **工单全生命周期**:工单创建、分配、执行、验收、归档的完整流程 - **多种工单类型**:故障报修、设备维护、商品补货、定期巡检等 - **智能分配机制**:基于地理位置、技能匹配、工作负载的智能派单 - **工单跟踪**:工单状态实时更新、处理进度可视化、超时提醒 - **任务调度系统**:基于 Quartz 的分布式任务调度,支持定时补货、数据同步等自动化任务 - **工单统计分析**:工单完成率、平均处理时间、故障率等关键指标分析 ### 4. 区域与点位管理 - **多级区域结构**:支持省市区街道的多级树形结构管理 - **区域数据统计**:各区域设备数量、工单数量、销售额等数据统计 - **点位信息管理**:点位地址、商圈类型、场地信息、合作商信息维护 - **点位评估**:基于销售数据、客流情况的点位价值评估 - **地图可视化**:支持在地图上直观查看设备分布和点位信息 ### 5. 商品与库存管理 - **商品分类管理**:多级商品分类、分类属性定义 - **商品信息维护**:商品名称、规格、价格、图片、供应商等信息管理 - **库存实时监控**:各设备实时库存状态、库存预警机制 - **库存盘点**:支持手动盘点、差异处理、盘点记录查询 - **商品关联**:商品与货道的绑定关系、同类型商品替代策略 ### 6. 运营策略管理 - **动态定价**:基于时段、季节、销量的动态价格调整策略 - **促销活动**:折扣、满减、买赠等多种促销活动配置和管理 - **自动补货规则**:基于销售数据和库存水平的智能补货阈值设置 - **运营分析报表**:销售报表、库存报表、设备利用率报表等多维度数据分析 --- ## API 接口文档 本项目使用 SpringDoc OpenAPI 3.0(Swagger 3)自动生成接口文档,便于前后端开发协作和API测试。 ### 访问接口文档 服务启动后,可通过以下地址访问完整的接口文档: ``` http://localhost:8080/swagger-ui.html ``` ### 接口文档使用指南 - **认证授权**:点击右上角「Authorize」按钮,输入用户名密码获取访问令牌 - **接口调试**:在接口详情页填写参数,点击「Try it out」进行在线接口测试 - **接口导出**:支持导出 OpenAPI 规范文件,可导入其他工具如 Postman --- ## 项目结构说明 项目采用模块化架构设计,各个模块职责明确,便于维护和扩展: ``` dkd-parent/ # 项目根目录,父 POM 管理 ├── dkd-admin/ # Spring Boot 主模块 │ └── src/main/java/com/dkd/admin/ # 应用启动类和主要配置 ├── dkd-common/ # 公共模块 │ └── src/main/java/com/dkd/common/ # 工具类、常量、异常处理、通用组件 ├── dkd-framework/ # 框架配置模块 │ └── src/main/java/com/dkd/framework/ # 安全、缓存、数据源、日志等配置 ├── dkd-generator/ # 代码生成器模块 │ └── src/main/java/com/dkd/generator/ # 自动生成代码工具 ├── dkd-manage/ # 业务核心模块 │ └── src/main/java/com/dkd/manage/ # 设备、货道、任务、区域等业务实现 ├── dkd-quartz/ # 定时任务模块 │ └── src/main/java/com/dkd/quartz/ # 任务调度配置和管理 ├── dkd-system/ # 系统管理模块 │ └── src/main/java/com/dkd/system/ # 用户、角色、菜单、日志等系统功能 ├── bin/ # 运行脚本目录 ├── sql/ # 数据库脚本目录 ├── docs/ # 项目文档目录 └── pom.xml # Maven 项目配置文件 ``` ### 核心模块职责 - **dkd-admin**: 应用入口,负责整合所有模块,提供 Web 服务 - **dkd-common**: 提供各模块共用的工具类、常量定义、异常处理等基础组件 - **dkd-framework**: 框架层,负责安全认证、缓存管理、数据源配置等基础功能 - **dkd-manage**: 业务核心,实现智能售货机管理的各项业务功能 - **dkd-system**: 实现用户、权限、菜单等系统管理功能 - **dkd-quartz**: 提供定时任务调度能力,支持复杂的调度策略 --- ## 开发与部署指南 ### 后端开发指南 #### 开发规范 - 遵循 Spring Boot 最佳实践和 Java 代码规范 - 使用 Lombok 简化代码编写 - 采用分层架构设计:Controller -> Service -> DAO - 接口返回统一格式,使用包装类处理成功/失败状态 - 异常处理统一化,避免直接抛出底层异常 #### 技术特性 - **RESTful API**: 遵循 RESTful 规范设计接口 - **动态数据源**: 支持多数据源配置,实现读写分离 - **缓存策略**: Redis + Caffeine 多级缓存设计 - **安全认证**: Spring Security + JWT 实现无状态认证 - **事务管理**: 基于注解的声明式事务控制 - **数据校验**: JSR-303 Bean Validation 实现输入验证 ### 前端开发指南 前端详细开发指南请参考 [dkd-vue](https://gitee.com/daiting-wei/dkd-vue) 仓库文档。 ### 部署方案 #### 开发环境部署 参考「快速开始」部分的步骤,适合开发和测试使用。 #### 生产环境部署 ##### 1. 后端部署 ```bash # 1. 编译打包 mvn clean package -Dmaven.test.skip=true # 2. 运行 jar 包 java -jar -Dspring.profiles.active=prod dkd-admin/target/dkd-admin.jar ``` ##### 2. 容器化部署 项目支持 Docker 容器化部署,示例 `Dockerfile`: ```dockerfile FROM openjdk:8-jdk-alpine WORKDIR /app COPY dkd-admin/target/dkd-admin.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=prod"] ``` ##### 3. 部署架构建议 - **负载均衡**: 使用 Nginx 或云服务负载均衡器 - **应用服务**: 多实例部署提高可用性 - **数据库**: 主从复制架构保证数据安全 - **缓存**: Redis 集群确保缓存高可用 - **文件存储**: 使用对象存储服务如 MinIO、OSS 等 - **监控告警**: 推荐使用 Prometheus + Grafana 监控系统运行状态 #### 配置优化建议 - 生产环境关闭开发模式和调试日志 - 调整连接池参数,优化数据库连接管理 - 配置适当的 JVM 参数,优化内存使用 - 开启 HTTPS 加密传输 - 设置合理的缓存过期时间和清理策略 --- ## 许可证 本项目采用 [MIT License](LICENSE) 开源协议。根据此协议,您可以自由使用、修改和分发本项目的代码,只需保留原始许可证声明。 MIT 许可证文本摘要: - 允许在任何目的下使用、复制、修改和分发本软件 - 允许将软件用于商业目的 - 提供软件「按原样」提供,不附带任何形式的保证 - 作者或版权持有人不对任何索赔、损害或其他责任负责 详细许可证内容请查看项目根目录下的 [LICENSE](LICENSE) 文件。 ---