package pasture import ( "kpt-tmr-group/http/middleware" "kpt-tmr-group/pkg/apierr" "kpt-tmr-group/pkg/ginutil" "kpt-tmr-group/pkg/valid" "kpt-tmr-group/pkg/xerr" operationPb "kpt-tmr-group/proto/go/backend/operation" "net/http" "github.com/gin-gonic/gin" ) func AddForage(c *gin.Context) { var req operationPb.AddForageRequest if err := c.BindJSON(&req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Name, valid.Required), valid.Field(&req.CategoryId, valid.Required), valid.Field(&req.UniqueEncode, valid.Required), valid.Field(&req.ForageSourceId, valid.Required), valid.Field(&req.PlanTypeId, valid.Required), valid.Field(&req.JumpWeight, valid.Required, valid.Min(0), valid.Max(50)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.CreateForage(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } func EditForage(c *gin.Context) { var req operationPb.AddForageRequest if err := c.BindJSON(&req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Id, valid.Required, valid.Min(1)), valid.Field(&req.Name, valid.Required), valid.Field(&req.CategoryId, valid.Required), valid.Field(&req.UniqueEncode, valid.Required), valid.Field(&req.ForageSourceId, valid.Required), valid.Field(&req.PlanTypeId, valid.Required), valid.Field(&req.JumpWeight, valid.Required, valid.Min(0), valid.Max(50)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.EditForage(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } func SearchForageList(c *gin.Context) { req := &operationPb.SearchForageListRequest{} if err := ginutil.BindProto(c, req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.BackendOperation(c).OpsService.SearchForageList(c, req) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // SearchForageEnumList 饲料列表公共枚举 func SearchForageEnumList(c *gin.Context) { res := middleware.BackendOperation(c).OpsService.ForageEnumList(c) ginutil.JSONResp(c, res) } func DeleteForageList(c *gin.Context) { ids := make([]int64, 0) if err := c.BindJSON(&ids); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if len(ids) <= 0 { apierr.AbortBadRequest(c, http.StatusBadRequest, xerr.Custom("参数错误")) return } if err := middleware.BackendOperation(c).OpsService.DeleteForageList(c, ids); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } func IsShowForage(c *gin.Context) { var req operationPb.IsShowForage if err := c.BindJSON(&req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.ForageId, valid.Required, valid.Min(1)), valid.Field(&req.IsShow, valid.Required, valid.Min(1), valid.Max(2)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.IsShowForage(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } func ImportForage(c *gin.Context) { if err := func(c *gin.Context) error { if c.ContentType() != "application/octet-stream" { return xerr.Custom("invalid Content-Type") } if c.Request.Body == nil || int(c.Request.ContentLength) <= 0 { return xerr.Custom("invalid body") } return nil }(c); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.ImportForage(c); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } func ExportForage(c *gin.Context) { req := &operationPb.SearchForageListRequest{} if err := c.BindJSON(req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } if err := middleware.BackendOperation(c).OpsService.ExportForage(c, req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) }