# 问题/建议功能接口文档 ## 功能概述 用户可以提交问题或建议,支持文字内容和图片上传。管理员可以查看、回复问题建议。 ## 数据库表结构 ### 问题建议表 (tbl_dzbc_feedback) - id: 编号 - user_id: 用户ID - user_name: 用户姓名 - user_phone: 用户电话 - content: 内容(必填) - image_urls: 图片地址,多个用逗号分隔 - type: 类型(1-问题,2-建议) - status: 状态(0-待处理,1-处理中,2-已完成) - reply_content: 回复内容 - reply_user_id: 回复人ID - reply_user_name: 回复人姓名 - reply_time: 回复时间 - remark: 备注 - ext1, ext2: 扩展字段 ## 接口列表 ### 1. 用户接口 #### 查询我的问题建议列表 ``` GET /system/dzbc/feedback/my/list ``` 说明:获取当前登录用户的所有问题建议记录 返回示例: ```json { "code": 200, "data": [ { "id": 1, "userId": 1, "userName": "张三", "userPhone": "13800138000", "content": "班车晚点了,希望能准时发车", "imageUrls": "http://xxx.com/image1.jpg,http://xxx.com/image2.jpg", "type": 1, "status": 2, "replyContent": "感谢您的反馈,我们会加强调度管理", "replyUserId": 10, "replyUserName": "管理员", "replyTime": "2024-02-20 10:00:00", "createTime": "2024-02-20 09:00:00" } ] } ``` #### 提交问题/建议 ``` POST /system/dzbc/feedback/submit Content-Type: multipart/form-data ``` 请求参数: - content: 内容(必填) - type: 类型(必填,1-问题,2-建议) - images: 图片文件(可选,可上传多个) **请求示例(使用 Postman):** 方法:POST URL: http://localhost:8080/system/dzbc/feedback/submit Body 类型:form-data | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | content | String | 是 | 问题/建议内容 | | type | Integer | 是 | 类型:1-问题,2-建议 | | images | File | 否 | 图片文件(可上传多个) | **返回示例:** ```json { "code": 200, "msg": "操作成功", "data": { "id": 1, "userId": 1, "userName": "张三", "userPhone": "13800138000", "content": "班车晚点了,希望能准时发车", "imageUrls": "http://xxx.com/image1.jpg,http://xxx.com/image2.jpg", "type": 1, "status": 0, "createTime": "2024-02-20 09:00:00" } } ``` ### 2. 管理员接口 #### 查询问题建议列表(分页) ``` GET /system/dzbc/feedback/list ``` 查询参数: - userId: 用户ID - userName: 用户姓名(模糊查询) - content: 内容(模糊查询) - type: 类型(1-问题,2-建议) - status: 状态(0-待处理,1-处理中,2-已完成) - pageNum: 页码 - pageSize: 每页大小 返回示例: ```json { "code": 200, "rows": [ { "id": 1, "userId": 1, "userName": "张三", "userPhone": "13800138000", "content": "班车晚点了,希望能准时发车", "imageUrls": "http://xxx.com/image1.jpg,http://xxx.com/image2.jpg", "type": 1, "status": 0, "createTime": "2024-02-20 09:00:00" } ], "total": 1 } ``` #### 查询问题建议详情 ``` GET /system/dzbc/feedback/{id} ``` 返回示例: ```json { "code": 200, "data": { "id": 1, "userId": 1, "userName": "张三", "userPhone": "13800138000", "content": "班车晚点了,希望能准时发车", "imageUrls": "http://xxx.com/image1.jpg,http://xxx.com/image2.jpg", "type": 1, "status": 2, "replyContent": "感谢您的反馈,我们会加强调度管理", "replyUserId": 10, "replyUserName": "管理员", "replyTime": "2024-02-20 10:00:00", "createTime": "2024-02-20 09:00:00" } } ``` #### 回复问题建议 ``` POST /system/dzbc/feedback/reply/{id} ``` 请求参数: - id: 问题建议ID(路径参数) - replyContent: 回复内容(表单参数,必填) **请求示例:** ``` POST /system/dzbc/feedback/reply/1 Content-Type: application/x-www-form-urlencoded replyContent=感谢您的反馈,我们会加强调度管理 ``` 返回示例: ```json { "code": 200, "msg": "操作成功" } ``` #### 修改问题建议状态 ``` PUT /system/dzbc/feedback ``` 请求体: ```json { "id": 1, "status": 1, "remark": "正在处理中" } ``` #### 删除问题建议 ``` DELETE /system/dzbc/feedback/{ids} ``` 返回示例: ```json { "code": 200, "msg": "操作成功" } ``` #### 导出问题建议 ``` POST /system/dzbc/feedback/export ``` ## 使用示例 ### 1. 用户提交问题(含图片) 使用 cURL: ```bash curl -X POST "http://localhost:8080/system/dzbc/feedback/submit" \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "content=班车晚点了,希望能准时发车" \ -F "type=1" \ -F "images=@/path/to/image1.jpg" \ -F "images=@/path/to/image2.jpg" ``` 使用 Postman: 1. 方法:POST 2. URL: http://localhost:8080/system/dzbc/feedback/submit 3. Headers: Authorization: Bearer YOUR_TOKEN 4. Body: form-data - content (Text): 班车晚点了,希望能准时发车 - type (Text): 1 - images (File): 选择图片文件(可添加多个) ### 2. 管理员回复问题 ```bash curl -X POST "http://localhost:8080/system/dzbc/feedback/reply/1" \ -H "Authorization: Bearer ADMIN_TOKEN" \ -d "replyContent=感谢您的反馈,我们会加强调度管理" ``` ### 3. 用户查询我的问题 ```bash curl -X GET "http://localhost:8080/system/dzbc/feedback/my/list" \ -H "Authorization: Bearer YOUR_TOKEN" ``` ## 字段说明 ### 类型 (type) - 1: 问题 - 2: 建议 ### 状态 (status) - 0: 待处理 - 1: 处理中 - 2: 已完成(已回复) ## 注意事项 1. **图片上传**:支持同时上传多张图片,图片会自动上传到 OSS,返回的 URL 以逗号分隔存储在数据库中 2. **自动获取用户信息**:提交时自动获取当前登录用户的信息(姓名、电话) 3. **回复功能**:回复后自动将状态更新为"已完成",并记录回复人和回复时间 4. **图片地址格式**:imageUrls 字段存储格式为:`url1,url2,url3` 5. **权限控制**:普通用户只能查看自己的记录,管理员可以查看所有记录 ## 数据库初始化 执行以下 SQL 创建表: ```bash mysql -u root -p khyznh < script/sql/feedback.sql ``` ## 安全配置 该接口已在安全配置中放行,无需额外权限验证: ```yaml security: excludes: - /system/dzbc/feedback/** ```