package api import ( "net/http" "strconv" "tmr-watch/middleware" "tmr-watch/service/group" "tmr-watch/service/sheep" operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation" feedPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/pasture" "gitee.com/xuyiping_admin/pkg/apierr" "gitee.com/xuyiping_admin/pkg/ginutil" "gitee.com/xuyiping_admin/pkg/valid" "github.com/gin-gonic/gin" ) // SearchFeetTemplateList 配方列表 func SearchFeetTemplateList(c *gin.Context) { var req feedPb.SearchFeedTemplateRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &feedPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } list, err := group.SearchFeedTemplateList(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, list) } // GetFeetTemplateVersion 获取配方最新版本详情 func GetFeetTemplateVersion(c *gin.Context) { var req feedPb.FeetTemplateVersionRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.FeetTemplateId, valid.Required, valid.Length(1, 100)), valid.Field(&req.PastureId, valid.Required, valid.Min(1)), ); err != nil { apierr.ClassifiedAbort(c, err) return } feetTemplateId, _ := strconv.Atoi(req.GetFeetTemplateId()) list, err := group.GetFeetTemplateVersion(c, int(req.GetPastureId()), feetTemplateId) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, list) } // FeetTemplateUpgradeNewVersion 配方更新至最新版本 func FeetTemplateUpgradeNewVersion(c *gin.Context) { var req feedPb.FeetTemplateVersionRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.FeetTemplateId, valid.Required, valid.Length(1, 100)), valid.Field(&req.PastureId, valid.Required, valid.Min(1)), ); err != nil { apierr.ClassifiedAbort(c, err) return } feetTemplateId, _ := strconv.Atoi(req.GetFeetTemplateId()) if err := group.FeetTemplateUpgradeNewVersion(c, int(req.GetPastureId()), feetTemplateId); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } // UpdateTmrGear 更新tmr_gear表数据 func UpdateTmrGear(c *gin.Context) { var req operationPb.UpdateOrCreateTmrGearRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.TmrId, valid.Required), valid.Field(&req.Params, valid.Required), ); err != nil { apierr.ClassifiedAbort(c, err) return } if err := sheep.UpdateOrCreateTmrGear(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 UseGear(c *gin.Context) { var req operationPb.UseGearRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.TmrId, valid.Required), valid.Field(&req.Id, valid.Required), valid.Field(&req.TmrId, valid.Required), ); err != nil { apierr.ClassifiedAbort(c, err) return } data, err := sheep.UseGear(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, data) }