FEEDBACK_SUMMARY.md 5.0 KB

问题/建议功能实现总结

已创建的文件

1. 实体类 (Domain)

  • TblDzbcFeedback.java - 问题建议实体

2. 业务对象

  • TblDzbcFeedbackBo.java - 问题建议业务对象
  • FeedbackSubmitBo.java - 提交问题建议业务对象(支持文件上传)

3. 视图对象

  • TblDzbcFeedbackVo.java - 问题建议视图对象

4. Mapper 接口

  • TblDzbcFeedbackMapper.java - 问题建议 Mapper

5. Service 接口和实现

  • ITblDzbcFeedbackService.java - 问题建议服务接口
  • TblDzbcFeedbackServiceImpl.java - 问题建议服务实现

6. Controller

  • TblDzbcFeedbackController.java - 问题建议控制器

7. Mapper XML

  • TblDzbcFeedbackMapper.xml - 问题建议 SQL

8. SQL 脚本和文档

  • script/sql/feedback.sql - 建表 SQL
  • script/sql/FEEDBACK_README.md - 接口文档

主要功能

1. 用户功能

  • 提交问题/建议:支持文字内容和多图片上传
  • 查询我的问题建议:查看自己的历史记录

2. 管理员功能

  • 查看所有问题建议:分页查询,支持多条件筛选
  • 查看详情:查看完整的问题建议内容
  • 回复问题建议:管理员可以回复用户问题
  • 修改状态:更新问题处理状态
  • 删除记录:删除无效或重复的记录
  • 导出数据:导出问题建议列表到 Excel

技术特点

1. 图片上传

  • 使用 OSS 服务存储图片
  • 支持多图片同时上传
  • 自动将图片 URL 以逗号分隔存储
  • 依赖 ruoyi-common-oss 模块

2. 用户信息

  • 自动获取当前登录用户信息
  • 自动填充用户姓名和电话
  • 登录用户只能查看自己的记录

3. 状态管理

  • 0-待处理
  • 1-处理中
  • 2-已完成(回复后自动标记为已完成)

4. 类型区分

  • 1-问题
  • 2-建议

接口列表

用户接口

  • POST /system/dzbc/feedback/submit - 提交问题/建议(支持图片)
  • GET /system/dzbc/feedback/my/list - 查询我的问题建议列表

管理员接口

  • GET /system/dzbc/feedback/list - 查询问题建议列表(分页)
  • GET /system/dzbc/feedback/{id} - 查询问题建议详情
  • POST /system/dzbc/feedback/reply/{id} - 回复问题建议
  • PUT /system/dzbc/feedback - 修改问题建议
  • DELETE /system/dzbc/feedback/{ids} - 删除问题建议
  • POST /system/dzbc/feedback/export - 导出问题建议

数据库设计

tbl_dzbc_feedback 表结构

  • 主键:id
  • 用户信息:user_id, user_name, user_phone
  • 内容:content, image_urls
  • 分类:type(1-问题,2-建议)
  • 状态:status(0-待处理,1-处理中,2-已完成)
  • 回复:reply_content, reply_user_id, reply_user_name, reply_time
  • 备注:remark, ext1, ext2
  • 审计字段:create_dept, create_by, create_time, update_by, update_time

索引

  • idx_user_id:用户ID索引
  • idx_type:类型索引
  • idx_status:状态索引

使用示例

1. 提交问题(含图片)

Postman 配置:

  • 方法:POST
  • URL:http://localhost:8080/system/dzbc/feedback/submit
  • Headers:
    • Authorization: Bearer YOUR_TOKEN
  • Body(form-data):
    • content: 班车晚点了,希望能准时发车
    • type: 1
    • images: 选择图片文件(可添加多个)

2. 查询我的问题

curl -X GET "http://localhost:8080/system/dzbc/feedback/my/list" \
  -H "Authorization: Bearer YOUR_TOKEN"

3. 管理员回复问题

curl -X POST "http://localhost:8080/system/dzbc/feedback/reply/1" \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -d "replyContent=感谢您的反馈,我们会加强调度管理"

部署步骤

  1. 执行建表 SQL

    mysql -u root -p khyznh < script/sql/feedback.sql
    
  2. 配置 OSS 服务

    • 确保 ruoyi-common-oss 模块已正确配置
    • 检查 OSS 连接参数
  3. 重启应用

    • 重新编译并启动应用
  4. 测试接口

    • 使用 Postman 测试提交接口
    • 验证图片上传功能
    • 测试管理功能

注意事项

  1. 文件上传限制

    • 单文件大小限制:10MB(在 application.yml 中配置)
    • 总上传大小限制:20MB
  2. 图片格式

    • 支持常见图片格式(jpg, png, gif 等)
    • 建议上传前压缩图片
  3. 权限控制

    • 用户接口已放行,无需特殊权限
    • 管理员接口建议添加权限注解
  4. 图片存储

    • 图片上传到 OSS,返回 URL
    • 多个图片 URL 用逗号分隔存储
    • 前端需要根据逗号分割显示
  5. 用户信息

    • 必须先登录才能提交问题
    • 自动从登录用户获取信息
    • 确保用户表包含电话号码字段

扩展建议

  1. 消息通知

    • 提交问题后发送通知给管理员
    • 回复后发送通知给用户
  2. 图片管理

    • 删除问题时同时删除 OSS 中的图片
    • 提供图片预览功能
  3. 评价功能

    • 用户对回复进行评价
    • 统计问题解决率
  4. 统计分析

    • 问题类型统计
    • 处理时长统计
    • 问题趋势分析

详细接口文档请参考:script/sql/FEEDBACK_README.md