basePath: / definitions: admin.createAdminRequest: properties: avatar: description: 头像 type: string mobile: description: 手机号 type: string nickname: description: 昵称 type: string password: description: 密码 type: string username: description: 用户名 type: string required: - nickname - password - username type: object admin.createAdminResponse: properties: message: description: 提示信息 type: string type: object admin.deleteAdminRequest: properties: ids: description: 编号(多个用,分割) type: string required: - ids type: object admin.deleteAdminResponse: properties: message: description: 提示信息 type: string type: object admin.listData: properties: avatar: description: 头像 type: string created_at: description: 创建时间 type: string id: description: 编号 type: integer mobile: description: 手机号 type: string nickname: description: 昵称 type: string updated_at: description: 更新时间 type: string username: description: 用户名 type: string type: object admin.listResponse: properties: list: items: $ref: '#/definitions/admin.listData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object admin.loginRequest: properties: password: description: 密码 (MD5加密后的密码) type: string username: description: 用户名 type: string required: - password - username type: object admin.loginResponse: properties: is_super: description: 是否是超级管理员(1:是 0:否) type: integer token: description: 登录成功后颁发的 Token type: string type: object admin.modifyAdminRequest: properties: avatar: description: 头像 type: string mobile: description: 手机号 type: string nickname: description: 昵称 type: string password: description: 密码 type: string username: description: 用户名 type: string required: - nickname - password - username type: object admin.modifyAdminResponse: properties: message: description: 提示信息 type: string type: object admin.relAppRequest: properties: ids: description: 小程序编号(多个用,分割) type: string required: - ids type: object admin.relAppResponse: properties: message: description: 提示信息 type: string type: object app.adminSendMessageRequest: properties: app_id: description: 小程序ID type: string content: description: 内容 type: string msg_type: description: 消息类型(1:文本 2:图片) type: integer to_user_id: description: 接收用户ID type: string required: - app_id - content - msg_type - to_user_id type: object app.adminSendMessageResponse: properties: message: description: 提示信息 type: string type: object app.appMessagePageListResponse: properties: list: items: $ref: '#/definitions/app.listMessageData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object app.createAppRequest: properties: app_id: description: 小程序ID type: string app_secret: description: 小程序密钥 type: string avatar: description: 头像 type: string description: description: 描述 type: string name: description: 名称 type: string required: - app_id - app_secret - name type: object app.createAppResponse: properties: message: description: 提示信息 type: string type: object app.createAppUserRequest: properties: app_id: description: 小程序ID type: string user_avatar: description: 用户头像 type: string user_id: description: 用户ID type: string user_mobile: description: 用户手机号 type: string user_name: description: 用户昵称 type: string required: - app_id - user_id - user_name type: object app.createAppUserResponse: properties: message: description: 提示信息 type: string type: object app.deleteAppRequest: properties: ids: description: 小程序编号(多个用,分割) type: string required: - ids type: object app.deleteAppResponse: properties: message: description: 提示信息 type: string type: object app.latestMessageByAppIdResponse: properties: list: items: $ref: '#/definitions/app.latestMessageData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object app.latestMessageData: properties: content: description: 消息内容 type: string msg_type: description: 消息类型(1:文本 2:图片) type: integer send_time: description: 发送时间 type: string sender_avatar: description: 发送人头像 type: string sender_id: description: 发送人ID type: string sender_name: description: 发送人昵称 type: string unread_count: description: 未读消息数量 type: integer type: object app.listData: properties: app_id: description: 小程序ID type: string app_secret: description: 小程序密钥 type: string avatar: description: 小程序头像 type: string created_at: description: 创建时间 type: string description: description: 小程序描述 type: string id: description: 小程序编号 type: integer name: description: 小程序名称 type: string updated_at: description: 更新时间 type: string type: object app.listMessageData: properties: content: description: 消息内容 type: string msg_type: description: 消息类型(1:文本 2:图片) type: integer receiver_id: description: 接收人ID type: string send_time: description: 发送时间 type: string sender_id: description: 发送人ID type: string sender_name: description: 发送人昵称 type: string type: object app.listResponse: properties: list: items: $ref: '#/definitions/app.listData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object app.modifyAppRequest: properties: app_id: description: 小程序ID type: string app_secret: description: 小程序密钥 type: string avatar: description: 头像 type: string description: description: 描述 type: string name: description: 名称 type: string required: - app_id - app_secret - name type: object app.modifyAppResponse: properties: message: description: 提示信息 type: string type: object app.userListData: properties: created_at: description: 创建时间 type: string user_avatar: description: 用户头像 type: string user_id: description: 用户ID type: string user_mobile: description: 用户手机号 type: string user_name: description: 用户昵称 type: string type: object app.userListResponse: properties: list: items: $ref: '#/definitions/app.userListData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object code.Failure: properties: code: description: 业务码 type: integer message: description: 描述信息 type: string type: object keyword.createKeywordMaterialRequest: properties: material_list: description: 素材列表 items: $ref: '#/definitions/keyword.keywordMaterial' type: array required: - material_list type: object keyword.createKeywordMaterialResponse: properties: message: description: 提示信息 type: string type: object keyword.createKeywordRequest: properties: app_id: description: 小程序ID type: string keyword: description: 关键字 type: string required: - app_id - keyword type: object keyword.createKeywordResponse: properties: id: description: 关键字ID type: integer message: description: 提示信息 type: string type: object keyword.deleteKeywordResponse: properties: message: description: 提示信息 type: string type: object keyword.keywordListData: properties: app_id: description: 小程序ID type: string created_at: description: 创建时间 type: string created_user: description: 创建人 type: string id: description: 关键字编号 type: integer keyword: description: 意图关键字 type: string material_type_count: description: 素材类型数量 type: string updated_at: description: 更新时间 type: string updated_user: description: 更新人 type: string type: object keyword.keywordMaterial: properties: content: description: 素材内容 type: string interval_seconds: description: 发送间隔时间(单位:秒) type: integer type: description: 素材类型(1:文本 2:图片) type: integer required: - content - interval_seconds - type type: object keyword.keywordMaterialListData: properties: content: description: 素材内容 type: string created_at: description: 创建时间 type: string created_user: description: 创建人 type: string id: description: 主键ID type: integer interval_seconds: description: 素材发送间隔时间(单位:秒) type: integer keyword_id: description: 意图关键字ID type: integer type: description: 素材类型(1:文本 2:图片) type: integer type: object keyword.keywordMaterialPageListResponse: properties: list: items: $ref: '#/definitions/keyword.keywordMaterialListData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object keyword.keywordPageListResponse: properties: list: items: $ref: '#/definitions/keyword.keywordListData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object keyword.modifyKeywordMaterialRequest: properties: content: description: 素材内容 type: string interval_seconds: description: 发送间隔时间(单位:秒) type: integer type: description: 素材类型(1:文本 2:图片) type: integer required: - content - interval_seconds - type type: object keyword.modifyKeywordMaterialResponse: properties: message: description: 提示信息 type: string type: object keyword.modifyKeywordRequest: properties: keyword: description: 意图关键字 type: string required: - keyword type: object keyword.modifyKeywordResponse: properties: message: description: 提示信息 type: string type: object message.appMessagePageListResponse: properties: list: items: $ref: '#/definitions/message.listMessageData' type: array page: description: 当前页码 type: integer page_size: description: 每页返回的数据量 type: integer total: description: 符合查询条件的总记录数 type: integer type: object message.listMessageData: properties: content: description: 消息内容 type: string msg_type: description: 消息类型(1:文本 2:图片) type: integer receiver_id: description: 接收人ID type: string send_time: description: 发送时间 type: string sender_id: description: 发送人ID type: string sender_name: description: 发送人昵称 type: string type: object message.userSendMessageRequest: properties: app_id: description: 小程序ID type: string content: description: 内容 type: string from_user_id: description: 发送用户的ID type: string from_user_name: description: 发送用户的昵称 type: string msg_type: description: 消息类型(1:文本 2:图片) type: integer required: - app_id - content - from_user_id - from_user_name - msg_type type: object message.userSendMessageResponse: properties: message: description: 提示信息 type: string type: object upload.uploadImageResponse: properties: preview_image_url: description: 可预览图片地址 type: string real_image_url: description: 真实图片地址 type: string type: object wechat.generateQRCodeRequest: properties: app_id: description: 微信小程序 AppID type: string app_secret: description: 微信小程序 AppSecret type: string path: description: 小程序页面路径 type: string required: - app_id - app_secret - path type: object wechat.generateQRCodeResponse: properties: data: description: Base64 编码的图片数据 type: string message: type: string success: type: boolean type: object wechat.miniprogramLoginRequest: properties: app_id: description: 小程序AppID type: string js_code: description: 登录时获取的code type: string required: - app_id - js_code type: object wechat.miniprogramLoginResponse: properties: message: type: string openid: description: 用户唯一标识 type: string success: type: boolean token: description: 登录token type: string unionid: description: 用户在开放平台的唯一标识符 type: string user_avatar: description: 用户头像 type: string user_id: description: 用户ID type: string user_name: description: 用户昵称 type: string type: object info: contact: {} title: mini-chat 接口文档 version: v0.0.1 paths: /admin/{id}: put: consumes: - application/json description: 编辑客服 parameters: - description: 编号ID in: path name: id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.modifyAdminRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.modifyAdminResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 编辑客服 tags: - 管理端.客服管理 /admin/app/{id}: put: consumes: - application/json description: 编辑小程序 parameters: - description: 编号ID in: path name: id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.modifyAppRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.modifyAppResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 编辑小程序 tags: - 管理端.小程序 /admin/app/create: post: consumes: - application/json description: 新增小程序 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.createAppRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.createAppResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 新增小程序 tags: - 管理端.小程序 /admin/app/delete: post: consumes: - application/json description: 删除小程序 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.deleteAppRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.deleteAppResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除小程序 tags: - 管理端.小程序 /admin/app/keyword: post: consumes: - application/json description: 添加意图关键字 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/keyword.createKeywordRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.createKeywordResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 添加意图关键字 tags: - 管理端.意图关键字 /admin/app/keyword/{id}: delete: consumes: - application/json description: 删除意图关键字 parameters: - description: 编号ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.deleteKeywordResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除意图关键字 tags: - 管理端.意图关键字 put: consumes: - application/json description: 修改意图关键字 parameters: - description: 编号ID in: path name: id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/keyword.modifyKeywordRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.modifyKeywordResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改意图关键字 tags: - 管理端.意图关键字 /admin/app/keyword/material/{id}: post: consumes: - application/json description: 配置意图关键字素材 parameters: - description: 编号ID in: path name: id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/keyword.createKeywordMaterialRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.createKeywordMaterialResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 配置意图关键字素材 tags: - 管理端.意图关键字 put: consumes: - application/json description: 修改意图关键字素材 parameters: - description: 素材编号ID in: path name: id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/keyword.modifyKeywordMaterialRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.modifyKeywordMaterialResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 修改意图关键字素材 tags: - 管理端.意图关键字 /admin/app/keyword/materials: get: consumes: - application/json description: 获取意图关键字素材列表 parameters: - description: 意图关键字ID in: query name: keyword_id required: true type: integer - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.keywordMaterialPageListResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取意图关键字素材列表 tags: - 管理端.意图关键字 /admin/app/keywords: get: consumes: - application/json description: 获取意图关键字列表 parameters: - description: 小程序ID in: query name: app_id required: true type: integer - description: 意图关键字 in: query name: keyword type: string - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/keyword.keywordPageListResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取意图关键字列表 tags: - 管理端.意图关键字 /admin/app/users: get: consumes: - application/json description: 小程序用户列表 parameters: - description: 小程序ID in: query name: app_id required: true type: string - description: 用户昵称 in: query name: user_name type: string - description: 用户ID in: query name: user_id type: string - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.userListResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 小程序用户列表 tags: - 管理端.小程序 /admin/apps: get: consumes: - application/json description: 小程序列表 parameters: - description: 小程序名称 in: query name: name type: string - description: 小程序ID in: query name: app_id type: string - description: 客服编号 in: query name: admin_id type: integer - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.listResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 小程序列表 tags: - 管理端.小程序 /admin/create: post: consumes: - application/json description: 新增客服 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.createAdminRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.createAdminResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 新增客服 tags: - 管理端.客服管理 /admin/delete: post: consumes: - application/json description: 删除客服 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.deleteAdminRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.deleteAdminResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 删除客服 tags: - 管理端.客服管理 /admin/list: get: consumes: - application/json description: 客服列表 parameters: - description: 用户名 in: query name: username type: string - description: 昵称 in: query name: nickname type: string - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.listResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 客服列表 tags: - 管理端.客服管理 /admin/login: post: consumes: - application/json description: 管理员登录 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.loginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.loginResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 管理员登录 tags: - 管理端.登录 /admin/messages: get: consumes: - application/json description: 获取消息日志 parameters: - description: 小程序ID in: query name: app_id required: true type: string - description: 用户ID in: query name: user_id required: true type: string - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.appMessagePageListResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 获取消息日志 tags: - 管理端.小程序 /admin/messages/latest: get: consumes: - application/json description: 管理端根据appid获取最新消息记录,包含已读未读状态,访问时自动标记为已读 parameters: - description: 小程序ID in: query name: app_id required: true type: string - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.latestMessageByAppIdResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 根据appid获取最新消息记录 tags: - 管理端.小程序 /admin/rel_app/{id}: put: consumes: - application/json description: 客服关联小程序 parameters: - description: 客服编号ID in: path name: id required: true type: string - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/admin.relAppRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/admin.relAppResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 客服关联小程序 tags: - 管理端.客服管理 /admin/send_message: post: consumes: - application/json description: 管理员发送消息 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.adminSendMessageRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.adminSendMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' security: - LoginVerifyToken: [] summary: 管理员发送消息 tags: - 管理端.小程序 /admin/upload/image: post: consumes: - multipart/form-data description: 上传图片 parameters: - description: 选择文件 in: formData name: file required: true type: file produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/upload.uploadImageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 上传图片 tags: - 通用 /api/wechat/miniprogram/login: post: consumes: - application/json description: 通过AppID和code获取用户的openid,系统自动生成用户名和头像 parameters: - description: 请求参数 in: body name: request required: true schema: $ref: '#/definitions/wechat.miniprogramLoginRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/wechat.miniprogramLoginResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' "500": description: Internal Server Error schema: $ref: '#/definitions/code.Failure' summary: 小程序登录 tags: - 微信 /api/wechat/qrcode: post: consumes: - application/json description: 根据 AppID、AppSecret 和页面路径生成微信小程序二维码 parameters: - description: 请求参数 in: body name: request required: true schema: $ref: '#/definitions/wechat.generateQRCodeRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/wechat.generateQRCodeResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' "500": description: Internal Server Error schema: $ref: '#/definitions/code.Failure' summary: 生成微信小程序二维码 tags: - 微信 /app/messages: get: consumes: - application/json description: 获取消息日志 parameters: - description: 小程序ID in: query name: app_id required: true type: string - description: 用户ID in: query name: user_id required: true type: string - default: 1 description: 当前页码 in: query name: page required: true type: integer - default: 20 description: 每页返回的数据量,最多 100 条 in: query name: page_size required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/message.appMessagePageListResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 获取消息日志 tags: - 用户端 /app/send_message: post: consumes: - application/json description: 用户发送消息 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/message.userSendMessageRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/message.userSendMessageResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 用户发送消息 tags: - 用户端 /app/user/create: post: consumes: - application/json description: 新增小程序用户 parameters: - description: 请求参数 in: body name: RequestBody required: true schema: $ref: '#/definitions/app.createAppUserRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/app.createAppUserResponse' "400": description: Bad Request schema: $ref: '#/definitions/code.Failure' summary: 新增小程序用户 tags: - 用户端 securityDefinitions: LoginVerifyToken: in: header name: Authorization type: apiKey swagger: "2.0"