# repair **Repository Path**: kule111/repair ## Basic Information - **Project Name**: repair - **Description**: 一个面向社区的维修服务小程序平台,支持用户报修、维修工人接单、在线支付和评价,集成AI问答功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-01-17 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 社区维修服务平台 ## 项目简介 本项目是一个面向社区的维修服务平台小程序。平台支持用户提交维修工单、维修工人接单抢单、服务完成后的评价反馈等核心业务场景,同时集成了 AI 智能问答功能,为用户提供便捷的维修服务体验。 平台采用前后端分离架构,后端基于 Spring Boot 3 构建,前端基于 Uni-app 框架开发微信小程序,数据存储使用 MySQL 8.0。系统设计遵循模块化原则,核心功能包括工单管理、用户管理、评价系统、消息通知等,能够满足社区维修场景的日常运营需求。 ## 功能特性 ### 用户端功能 普通用户可通过小程序完成以下操作:查看维修分类并选择服务类型、填写报修信息并上传故障图片、实时查看工单进度状态、接收工单状态变更通知、对已完成的服务进行评价、在线咨询 AI 助手获取维修建议。用户报修时需要填写详细的故障描述、选择上门地址,系统会根据用户位置智能匹配可服务的维修工人。 ### 维修工端功能 维修工人可以在平台上接单并完成维修任务:浏览可接单的维修工单、抢单并开始服务、上传维修过程图片、标记工单完成并发起收款、查看历史维修记录和收入统计。维修工人需要通过平台认证后才能接单,系统会记录每位工人的服务质量评分。 ### 管理后台功能 管理员拥有系统的最高权限,可以管理所有维修工单的状态、处理用户投诉、审核维修工人资质、查看平台运营数据、配置 AI 问答参数、管理系统参数设置。管理后台采用 RESTful API 接入,可根据需要自行开发 Web 管理界面。 ### AI 智能问答 平台集成了 DeepSeek AI 接口,为用户提供 7×24 小时的智能咨询服务。用户可以在线咨询常见的维修问题,AI 会根据知识库给出专业的维修建议和初步诊断方案。AI 问答功能有效降低了人工客服的成本,同时提升了用户的服务体验。 ## 技术栈 ### 后端技术 后端项目使用 Java 17 和 Spring Boot 3.1.5 框架开发,采用 Maven 作为构建工具。持久层使用 MyBatis-Plus 3.5.3.1,提供了便捷的 CRUD 操作封装。数据库选用 MySQL 8.0,存储工单数据、用户信息、评价记录等核心业务数据。系统依赖的主要工具库包括 Hutool 5.8.26(工具包)和 Lombok(简化代码编写)。 ### 前端技术 前端小程序基于 Uni-app 框架开发,采用 Vue 3 语法,能够同时编译到微信小程序等多个平台。小程序页面采用组件化设计,封装了通用的业务组件以提高代码复用率。样式方案采用 CSS 预处理器,支持全局主题变量配置。 ### 外部服务 系统集成了以下外部服务:DeepSeek AI API 提供智能问答能力、微信支付处理维修费用结算、微信登录实现用户身份认证、文件存储服务保存维修图片。 ## 项目结构 ``` repair/demo/ ├── community_repair_db.sql # 数据库初始化脚本 ├── .spec-workflow/ # 规范工作流配置 ├── repair/ # Spring Boot 后端项目 │ ├── pom.xml # Maven 配置 │ ├── src/main/java/ │ │ └── com/repair/ # 源代码根包 │ │ ├── config/ # 配置类 │ │ ├── controller/ # REST 控制器 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # MyBatis 映射器 │ │ ├── service/ # 服务层 │ │ └── utils/ # 工具类 │ └── src/main/resources/ │ ├── application.yml # 应用配置 │ └── mapper/ # SQL 映射文件 └── repair-mini/ # Uni-app 小程序前端 ├── src/ # 源代码 ├── static/ # 静态资源 ├── manifest.json # 应用配置 ├── pages.json # 页面配置 └── App.vue # 应用入口 ``` ## 快速开始 ### 环境要求 后端开发环境需要 JDK 17 或以上版本、Maven 3.6 或以上版本、MySQL 8.0 数据库、Redis 可选(用于缓存)。前端开发需要 Node.js 14 或以上版本、HBuilderX 或 VS Code 编辑器。开发操作系统推荐 Windows 10/11 或 macOS,文件存储路径在配置中设置为 `D:/repair_images/`。 ### 数据库配置 执行以下命令创建数据库并导入初始化脚本。脚本中包含系统所需的全部数据表结构和初始数据,请确保执行前已创建对应的数据库实例。数据库字符集建议使用 utf8mb4,以支持表情符号等特殊字符的存储。 ```bash mysql -u root -p < community_repair_db.sql ``` ### 后端启动 进入 `repair` 目录,执行 Maven 编译和启动命令。首次启动时 Maven 会自动下载项目依赖,耗时可能较长。启动成功后,服务默认监听 8080 端口,可通过浏览器访问 `http://localhost:8080/swagger-ui.html` 查看 API 文档。 ```bash cd repair mvn clean install mvn spring-boot:run ``` ### 前端运行 使用 HBuilderX 打开 `repair-mini` 目录,选择「运行到微信开发者工具」即可启动小程序调试。在微信开发者工具中,可以预览小程序的运行效果,并使用 Chrome 开发者工具进行断点调试。 ## API 接口 ### 认证接口 系统使用 JWT 令牌进行身份认证,用户登录成功后服务端返回访问令牌,后续请求需要在 Header 中携带该令牌。认证相关的接口包括用户注册、登录、登出、令牌刷新等,所有认证接口均支持微信授权登录方式。 ### 工单接口 工单接口是系统的核心功能模块,提供的接口包括:创建维修工单、查询工单列表、获取工单详情、工人接单、开始服务、完工提交、工单取消、工单支付。工单状态流转遵循「待接单 → 已接单 → 服务中 → 待支付 → 已完成」的流程设计。 ### 评价接口 用户可在工单完成后对维修服务进行评价,评价内容包括星级评分、文字评价、服务标签等。系统会统计维修工人的平均评分并展示在个人主页,评价发布后不可修改但可以删除。 ### 消息接口 消息接口用于管理系统的通知推送,包括查询消息列表、标记消息已读、删除消息等操作。工单状态变更时会自动生成相应的系统消息,用户可在小程序的消息中心查看。 ### AI 问答接口 AI 问答接口对接 DeepSeek 的 Chat API,支持流式和非流式两种调用方式。用户在咨询时可以选择历史工单作为上下文,AI 会基于工单信息提供更有针对性的建议。 ## 数据库设计 ### 核心数据表 系统包含以下核心数据表,各表之间通过外键关联维护数据完整性: - `sys_user` 存储用户和维修工人的账号信息,包括角色类型、认证状态、评分等字段 - `repair_order` 存储维修工单的核心数据,记录工单状态、费用、位置等业务信息 - `order_comment` 存储用户对维修服务的评价,包含评分、标签、评价内容等字段 - `sys_address` 存储用户的地址簿信息,支持多个地址的管理 - `sys_message` 存储系统通知消息,记录消息类型、关联工单等关联信息 - `repair_order_log` 存储工单的状态变更日志,用于追溯工单处理过程 ### ER 关系 用户与工单之间是一对多关系,一个用户可以创建多个维修工单。工单与评价是一对一关系,每个工单对应一条评价记录。工单与消息是一对多关系,工单状态变更会产生多条消息通知。 ### 监控与日志 系统使用 SLF4J 作为日志门面,默认为 Logback 实现。日志文件保存在 `logs/repair/` 目录下,建议配置日志收集和分析工具进行统一管理。生产环境建议开启健康检查端点 `/actuator/health`,方便运维监控。