# 问题/建议功能实现总结 ## 已创建的文件 ### 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. 查询我的问题 ```bash curl -X GET "http://localhost:8080/system/dzbc/feedback/my/list" \ -H "Authorization: Bearer YOUR_TOKEN" ``` ### 3. 管理员回复问题 ```bash curl -X POST "http://localhost:8080/system/dzbc/feedback/reply/1" \ -H "Authorization: Bearer ADMIN_TOKEN" \ -d "replyContent=感谢您的反馈,我们会加强调度管理" ``` ## 部署步骤 1. **执行建表 SQL** ```bash 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`