package com.wx.application.core.controller;

import org.springframework.web.bind.annotation.*;
import com.wx.application.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import com.wx.application.core.service.QuestionQaService;
import com.wx.application.core.entity.QuestionQa;
    import com.wx.application.base.ResponseData;
import java.util.Map;
import java.io.Serializable;
/**
 *   @description : QuestionQa 默认控制器,仅供生成器使用
 *   ---------------------------------
 *   @since 2022-05-31
 */
/*@Slf4j*/
@RestController("coreQuestionQaController")
@RequestMapping("/question_qa")
public class QuestionQaController extends BaseController {

    @Autowired
    private QuestionQaService questionQaService;

    /**
    * 定义一些通用的错误信息,供其他 api引用
    * @apiDefine DefaultException
    * @apiError {String} code 错误码
    * @apiError {String} msg 错误描述
    * @apiError {String} requestId 请求id标识
    *
    * @apiErrorExample Error-Response:
    *     HTTP/1.1 200
    *     {
    *       "code": "UNAUTHORIZED",
    *       "msg": "未授权,请先登录",
    *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
    *     }
    *
    */

    /**
     * 定义标准对象请求的结构体,供api引用
     * @apiDefine QuestionQaReq
     * @apiParam {String} question 
     * @apiParam {String} answer 
     */


    /**
     * 定义标准对象返回的结构体,供api引用
     * @apiDefine QuestionQaResp
     * @apiSuccess {String} question 
     * @apiSuccess {String} answer 
     */

    /**
     * 定义标准头部,供api引用
     * @apiDefine QuestionQaHeader
     * @apiHeader {String} Authorization 用户授权token
     * @apiHeaderExample {json} Header-Example:
     *     {
     *       "Authorization": "Bearer 1eyJhbGciOiJIUzI1NiJ9....tzNK43MPVQWYYhDwihCAZa88zXzar7KLdgiBBDuUpBM",
     *     }
     */

    /**
     *
     * @api {post} //question-qa/query_unique 通过条件查询对象
     * @apiName 通过条件查询对象
     * @apiGroup QuestionQa
     *
     * @apiUse QuestionQaHeader
     * @apiUse QuestionQaResp
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": {

                  "question": null,

                  "answer": null,
     *       },
     *       "code": "SUCCESS",
     *       "msg": "请求成功",
     *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
     *     }
     *
     * @apiUse DefaultException
     *
     * @description : 通过条件查询对象
     * 仅查询第一条
     * ---------------------------------
     * @author : zj
     * @since : Create in 2022-05-31
     */
    @PostMapping(value = "/query_unique")
    public ResponseData queryUnique(@RequestBody Map questionQaQ) {
        return success(questionQaService.queryUnique(questionQaQ));
    }

    /**
     *
     * @api {post} //question-qa/query_pages 通过条件分页查询列表
     * @apiName 通过条件分页查询列表
     * @apiGroup QuestionQa
     *
     * @apiUse QuestionQaHeader
     * @apiUse QuestionQaResp
     * @apiSuccess {Long} total 总数
     * @apiSuccess {Long} size 分页大小
     * @apiSuccess {Long} current 当前页
     * @apiSuccess {Long} orders 排序
     * @apiSuccess {Long} pages 总页数
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": {
     *       "records": [{

                "question": null, 
                "answer": null,      *       }],
     *       "total": 1,
     *       "size": 10,
     *       "current": 1,
     *       "orders": [],
     *       "searchCount": true,
     *       "pages": 1
     *       "code": "SUCCESS",
     *       "msg": "请求成功",
     *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
     *     }
     *
     * @apiUse DefaultException
     *
     * @description : 通过条件分页查询列表
     * 默认第一页 分页长度为10
     * ---------------------------------
     * @author : zj
     * @since : Create in 2022-05-31
     */
    @PostMapping(value = "/query_pages")
    public ResponseData queryPages(@RequestBody Map questionQaQ) {
        return success(questionQaService.queryPage(questionQaQ));
    }

    /**
     *
     * @api {post} //question-qa/query_list 通过条件查询列表
     * @apiName 通过条件查询列表
     * @apiGroup QuestionQa
     *
     * @apiUse QuestionQaHeader
     * @apiUse QuestionQaResp
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": [{

        "question": null,

        "answer": null,
     *       }],
     *       "code": "SUCCESS",
     *       "msg": "请求成功",
     *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
     *     }
     *
     * @apiUse DefaultException
     *
     * @description : 通过条件查询列表
     * 不分页直接返回list
     * ---------------------------------
     * @author : zj
     * @since : Create in 2022-05-31
     */
    @PostMapping(value = "/query_list")
    public ResponseData queryList(@RequestBody Map questionQaQ) {
        return success(questionQaService.queryList(questionQaQ));
    }

    /**
     *
     * @api {post} //question-qa/remove/:id 通过id删除单个记录
     * @apiName 通过id删除单个记录
     * @apiGroup QuestionQa
     *
     * @apiUse QuestionQaHeader
     * @apiParam {PK} id 记录主键
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": true,
     *       "code": "SUCCESS",
     *       "msg": "请求成功",
     *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
     *     }
     *
     * @apiUse DefaultException
     *
     * @description : 通过id删除单个记录
     * ---------------------------------
     * @author : zj
     * @since : Create in 2022-05-31
     */
    @PostMapping(value = "/remove/{id}")
    public ResponseData remove(@PathVariable("id") Serializable id) {
        return success(questionQaService.remove(id));
    }

    /**
     *
     * @api {post} //question-qa/modify 通过id更新单个记录
     * @apiName 通过id更新单个记录
     * @apiGroup QuestionQa
     *
     * @apiUse QuestionQaHeader
     * @apiParam {PK} id 记录主键
     * @apiUse QuestionQaReq
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": true,
     *       "code": "SUCCESS",
     *       "msg": "请求成功",
     *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
     *     }
     *
     * @apiUse DefaultException
     *
     * @description : 通过id更新单个记录
     * ---------------------------------
     * @author : zj
     * @since : Create in 2022-05-31
     */
    @PostMapping(value = "/modify")
    public ResponseData modify(@RequestBody QuestionQa questionQa) {
        return success(questionQaService.modify(questionQa));
    }

    /**
     *
     * @api {post} //question-qa/create 新增
     * @apiName 新增
     * @apiGroup QuestionQa
     *
     * @apiUse QuestionQaHeader
     * @apiUse QuestionQaReq
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": true,
     *       "code": "SUCCESS",
     *       "msg": "请求成功",
     *       "requestId": "163e2f67-5306-4b10-bcbe-a1579d589446"
     *     }
     *
     * @apiUse DefaultException
     *
     * @description : 新增
     * ---------------------------------
     * @author : zj
     * @since : Create in 2022-05-31
     */
    @PostMapping(value = "/create")
    public ResponseData create(@RequestBody QuestionQa questionQa) {
        return success(questionQaService.create(questionQa));
    }
}
