返回作品

问题反馈系统

创建于 2025 年 7 月 10 日

标签
  • Java
  • Spring Boot 3
  • MyBatis-Plus
  • MySQL
  • Redis
  • Vue 3
  • Element Plus
  • TypeScript
  • Vite

项目介绍

问题反馈系统是一个面向幼儿园/学校场景的家长问题反馈与工单管理系统。项目以芋道 RuoYi-Vue-Pro(yudao 2.6.0-SNAPSHOT)为底座,在其上扩展出独立的 yudao-module-imut 业务模块,围绕”学校主数据 → 问题类型与预设问题 → 家长反馈工单 → 处理状态跟踪”的完整业务链路组织功能:管理员先维护树形的学校信息(如”呼和浩特 → 新城区 → 各幼儿园”)与问题类型(食堂、宿舍、校园)及其预设问题标题,家长端按类型选题、选择学校并填写联系方式与反馈内容提交工单,管理后台则按学校、类型、处理状态对工单进行查询、跟进与导出。系统同时内置了字段丰富的员工培训记录管理模块,用于培训档案的登记与审批留痕。

项目后端采用 Java 17 + Spring Boot 3.4.5,数据访问层使用 MyBatis-Plus 3.5.10.1,数据库为 MySQL(ruoyi-vue-pro-new.sql 完整导出框架系统表与 5 张 imut_* 业务表及演示数据);管理后台前端基于 Vue 3.5.12 + TypeScript 5.3.3 + Vite 5.1.4 + Element Plus 2.9.1 + Pinia 构建,src/views/imut 下按 school、question、questionrecord、trainingrecord 四个业务域组织了列表、表单、详情与树形组件页面。

项目架构

项目沿用芋道框架经典的模块化单体结构,核心模块如下:

模块技术栈说明
yudao-module-imutSpring Boot 3.4.5、MyBatis-Plus 3.5.10.1、Spring Security反馈业务模块,按 controller → service → dal 分层,含学校、问题类型、预设问题、家长反馈、培训记录五个子域
yudao-module-systemSpring Security、OAuth2框架内置:用户、角色、菜单、部门、字典、操作日志、数据权限等基础能力
yudao-module-infraKnife4j 4.6.0、定时任务、文件存储框架内置:接口文档、代码生成、任务调度、文件管理等基础设施
yudao-serverSpring Boot 3.4.5启动主服务,端口 48080,集成 imut/infra/system 三个模块
yudao-ui-admin-vue3Vue 3.5.12、TypeScript 5.3.3、Vite 5.1.4、Element Plus 2.9.1、Pinia 2.1.7管理后台前端,src/views/imut 为反馈业务页面,src/api/imut 按域封装接口
ruoyi-vue-pro-new.sqlMySQL 8全量初始化脚本:框架系统表 + imut_questionimut_question_recordimut_question_typeimut_schoolimut_training_record 五张业务表 + 演示数据

业务模块代码分层清晰:controller/admin 提供管理后台接口(SchoolControllerQuestionTypeControllerQuestionRecordControllerTrainingRecordController),其中家长反馈同时提供 controller/app/AppQuestionRecordController 面向家长端;service 层承载业务规则;dal/mysql 下的 Mapper 配合 resources/mapper 的 XML 完成数据访问。框架能力被大量复用:@PreAuthorize("@ss.hasPermission(...)") 做接口权限控制、TenantBaseDO/tenant_id 多租户隔离、@ApiAccessLog 操作日志、ExcelUtils Excel 导出、AreaUtils 省市区名称格式化、getStrDictOptions 字典渲染(IMUT_RECORD_VISIT 是否回访、IMUT_RECORD_AUDIT 处理状态)。

核心功能

家长反馈工单管理。 反馈记录表 imut_question_record 登记家长姓名、手机号、是否接受回访(字典 IMUT_RECORD_VISIT)、问题类型、预设问题标题、所属学校、处理状态(字典 IMUT_RECORD_AUDIT)、反馈内容与提交用户 ID。管理后台列表支持按创建时间、家长姓名、手机号、是否回访、问题类型、问题标题、学校(树形选择器)、处理状态组合筛选,提供新增、编辑、详情、单删/批量删除与 Excel 导出(/export-excel,导出文件”家长反馈问题.xls”);详情与分页接口通过 Map 批量关联学校、类型、问题的名称字段(getSchoolMap/getMap),避免 N+1 查询。APP 端 AppQuestionRecordController 提供 createpage 两个接口,创建时通过 getLoginUserId() 自动记录当前登录用户,支撑家长 H5/小程序端提交反馈。

问题类型与预设问题联动。 问题类型表 imut_question_type 维护类型名称与状态(种子数据:食堂、宿舍、校园),预设问题表 imut_questiontype_id 挂接常见问题标题(如”食堂卫生不达标""宿舍没有空调""校园路灯没人修”)。管理端在问题类型页内嵌问题列表组件(QuestionList.vue)随类型切换联动加载;家长反馈表单选择类型后通过 getQuestionListByTypeId 动态刷新问题标题下拉选项,保证反馈选题规范、可统计。

学校树形主数据管理。 学校表 imut_schoolparent_id 组织树形结构(种子数据:呼和浩特 → 新城区 → 丽苑/博英阳光/爱德堡等幼儿园),登记学校名称、学校用户、学校类型(JSON 多选,JacksonTypeHandler 存储)、学校地区、地址与联系电话。服务层提供完整的树校验:存在子级不可删除(SCHOOL_EXITS_CHILDREN)、父级必须存在、不能设置自己或自己的子级为父级、学校名称不可重复;前端提供 SchoolTree.vue 树形列表组件与 el-tree-select 树形选择器,反馈表单按树选择学校。

员工培训记录管理。 培训记录表 imut_training_record 字段覆盖培训档案全生命周期:员工名称、培训名称/唯一编号、培训类型、技能标签(JSON 多选)、省市区与地区(AreaUtils 格式化显示)、培训日期/时长、状态开关、考核得分、是否通过、证书图片与证书编号、培训材料(多文件)、培训视频链接、联系电话/邮箱/身份证号(脱敏展示)、培训费用、培训纪要(富文本)、满意度评分、审批状态/审批人/审批时间/审批意见、地理位置(经纬度)与标签。创建与更新时校验证书编号唯一(TRAINING_RECORD_CERT_NUMBER_EXISTS,同记录自身编号放行),提供 update-status 启停切换与 Excel 导出接口。

框架能力集成。 所有管理端接口统一 CommonResult 返回与全局异常处理;新增/修改/删除/查询/导出均带 @PreAuthorize 权限点(imut:question-record:create 等);反馈与学校、培训记录均继承多租户基类,天然支持 SaaS 多租户隔离;操作日志、API 访问日志与 Excel 导出由框架统一记录与兜底。

功能截图

暂无运行截图。

快速上手

  1. 准备数据库:使用 MySQL 执行 ruoyi-vue-pro-new.sql 全量脚本(框架系统表 + 5 张 imut_* 业务表 + 演示数据均已包含),库名默认 ruoyi-vue-pro

  2. 启动后端:

cd yuejin-vue-pro-master
# 修改 yudao-server/src/main/resources/application-local.yaml 中的数据库地址、账号、密码
mvn -pl yudao-server -am package -DskipTests
java -jar yudao-server/target/yudao-server.jar   # 服务端口 48080
  1. 启动前端:
cd yudao-ui-admin-vue3
pnpm install
pnpm dev   # 本地端口 80,默认账号 admin / admin123
  1. 体验流程:在”问题反馈 → 家长反馈问题”页面按学校、问题类型、处理状态筛选与导出工单;在”学校信息”维护树形学校;在”问题类型”维护类型与预设问题;在”员工培训记录”登记培训档案并查看审批字段。

总结

问题反馈系统是在芋道 RuoYi-Vue-Pro 2.6.0(Spring Boot 3 分支)上快速落地的一体化反馈管理项目,最大特点是”框架打底、业务聚焦”:学校树、问题类型、预设问题、反馈工单、培训记录五个子域全部收敛在 yudao-module-imut 一个模块内,controller → service → dal 分层清晰,管理端与 APP 端双接口设计让家长提交与后台跟进各司其职。系统充分利用了框架的多租户、权限注解、字典、操作日志、Excel 导出与省市区工具等成熟能力,将主要精力集中在反馈链路本身——从选题规范化的类型联动,到树形学校的业务校验,再到工单的多条件检索与导出,形成了一条完整可用的”问题反馈 → 处理跟踪”闭环。项目适合作为中后台业务模块开发的参考范本,也印证了基于成熟低代码底座(芋道)快速交付行业业务系统的工程化路径。