package controllers import ( "Medical_ERP/common/actions" "Medical_ERP/common/global" _ "Medical_ERP/common/response" "Medical_ERP/dto" "Medical_ERP/models" "Medical_ERP/services" "errors" "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/beegouser" ) type ProductController struct { BaseController } // List 获取品名列表 // @Summary 获取品名列表 // @Description 获取品名列表 // @Tags 品名 // @Param body body dto.ProductPageReq true "body" // @Success 200 {object} response.Page{list=[]models.Product} "{"code": 200, "data": [...]}" // @Router /product/list [post] // @Security Bearer func (c ProductController) List() { s := services.Product{} reqData := dto.ProductPageReq{} if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil { err = errors.New("解析表单数据异常") c.Error(global.ParseFormErr, err, err.Error()) return } list := make([]models.Product, 0) var count int64 //数据权限检查 p := actions.GetPermissionFromContext(c.Ctx) err := s.GetPage(&reqData, &list, &count, p) if err != nil { c.Error(global.BadRequest, err, err.Error()) return } c.PageOK(list, int(count), reqData.GetPageIndex(), reqData.GetPageSize(), "查询成功") } // Detail 通过id获取品名 // @Summary 通过id获取品名 // @Description 通过id获取品名 // @Tags 品名 // @Param body body dto.ProductGetReq true "body" // @Success 200 {object} response.Response{data=models.Product} "{"code": 200, "data": [...]}" // @Router /product/detail [post] // @Security Bearer func (c ProductController) Detail() { s := services.Product{} reqData := dto.ProductGetReq{} if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil { err = errors.New("解析表单数据异常") c.Error(global.ParseFormErr, err, err.Error()) return } var object models.Product //数据权限检查 p := actions.GetPermissionFromContext(c.Ctx) err := s.Get(&reqData, &object, p) if err != nil { c.Error(500, err, err.Error()) return } c.OK(object, "查询成功") } // Add 添加品名 // @Summary 添加品名 // @Description 添加品名 // @Tags 品名 // @Accept application/json // @Product application/json // @Param data body dto.ProductInsertReq true "data" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /product/add [post] // @Security Bearer func (c ProductController) Add() { s := services.Product{} reqData := dto.ProductInsertReq{} if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil { err = errors.New("解析表单数据异常") c.Error(global.ParseFormErr, err, err.Error()) return } reqData.SetCreateBy(beegouser.GetUserId(c.Ctx)) reqData.SetDeptId(beegouser.GetDeptId(c.Ctx)) err := s.Insert(&reqData) if err != nil { c.Error(500, err, err.Error()) return } c.OK(reqData.GetId(), "创建成功") } // Edit 修改品名 // @Summary 修改品名 // @Description 修改品名 // @Tags 品名 // @Accept application/json // @Product application/json // @Param data body dto.ProductUpdateReq true "body" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /product/edit [post] // @Security Bearer func (c ProductController) Edit() { s := services.Product{} reqData := dto.ProductUpdateReq{} if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil { err = errors.New("解析表单数据异常") c.Error(global.ParseFormErr, err, err.Error()) return } reqData.SetUpdateBy(beegouser.GetUserId(c.Ctx)) err := s.Update(&reqData) if err != nil { c.Error(500, err, err.Error()) return } c.OK(reqData.GetId(), "更新成功") } // Delete 删除品名 // @Summary 删除品名 // @Description 删除品名 // @Tags 品名 // @Accept application/json // @Product application/json // @Param id body dto.ProductDeleteReq true "请求参数" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /product/delete [post] // @Security Bearer func (c ProductController) Delete() { s := services.Product{} reqData := dto.ProductDeleteReq{} if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil { err = errors.New("解析表单数据异常") c.Error(global.ParseFormErr, err, err.Error()) return } reqData.SetUpdateBy(beegouser.GetUserId(c.Ctx)) reqData.SetDeptId(beegouser.GetDeptId(c.Ctx)) err := s.Remove(&reqData) if err != nil { c.Error(500, err, err.Error()) return } c.OK(reqData.GetId(), "删除成功") }