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.CategoryService;
import com.wx.application.core.entity.Category;
    import com.wx.application.base.ResponseData;
import java.util.Map;
import java.io.Serializable;
/**
 *   @description : Category 默认控制器,仅供生成器使用
 *   ---------------------------------
 *   @since 2023-05-23
 */
/*@Slf4j*/
@RestController("coreCategoryController")
@RequestMapping("//category")
public class CategoryController extends BaseController {

    @Autowired
    private CategoryService categoryService;

    /**
    * 定义一些通用的错误信息,供其他 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 CategoryReq
     * @apiParam {String} name 
     */


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

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

    /**
     *
     * @api {post} //category/query_unique 通过条件查询对象
     * @apiName 通过条件查询对象
     * @apiGroup Category
     *
     * @apiUse CategoryHeader
     * @apiUse CategoryResp
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": {

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

    /**
     *
     * @api {post} //category/query_pages 通过条件分页查询列表
     * @apiName 通过条件分页查询列表
     * @apiGroup Category
     *
     * @apiUse CategoryHeader
     * @apiUse CategoryResp
     * @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": [{

                "name": 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 2023-05-23
     */
    @PostMapping(value = "/query_pages")
    public ResponseData queryPages(@RequestBody Map categoryQ) {
        return success(categoryService.queryPage(categoryQ));
    }

    /**
     *
     * @api {post} //category/query_list 通过条件查询列表
     * @apiName 通过条件查询列表
     * @apiGroup Category
     *
     * @apiUse CategoryHeader
     * @apiUse CategoryResp
     * @apiSuccessExample Success-Response:
     *     HTTP/1.1 200 OK
     *     {
     *       "data": [{

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

    /**
     *
     * @api {post} //category/remove/:id 通过id删除单个记录
     * @apiName 通过id删除单个记录
     * @apiGroup Category
     *
     * @apiUse CategoryHeader
     * @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 2023-05-23
     */
    @PostMapping(value = "/remove/{id}")
    public ResponseData remove(@PathVariable("id") Serializable id) {
        return success(categoryService.remove(id));
    }

    /**
     *
     * @api {post} //category/modify 通过id更新单个记录
     * @apiName 通过id更新单个记录
     * @apiGroup Category
     *
     * @apiUse CategoryHeader
     * @apiParam {PK} id 记录主键
     * @apiUse CategoryReq
     * @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 2023-05-23
     */
    @PostMapping(value = "/modify")
    public ResponseData modify(@RequestBody Category category) {
        return success(categoryService.modify(category));
    }

    /**
     *
     * @api {post} //category/create 新增
     * @apiName 新增
     * @apiGroup Category
     *
     * @apiUse CategoryHeader
     * @apiUse CategoryReq
     * @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 2023-05-23
     */
    @PostMapping(value = "/create")
    public ResponseData create(@RequestBody Category category) {
        return success(categoryService.create(category));
    }
}
