package event import ( "kpt-pasture/http/middleware" "net/http" pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation" "gitee.com/xuyiping_admin/pkg/apierr" "gitee.com/xuyiping_admin/pkg/ginutil" "gitee.com/xuyiping_admin/pkg/valid" "github.com/gin-gonic/gin" ) func CalvingEventList(c *gin.Context) { var req pasturePb.SearchEventRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } pagination := &pasturePb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.CalvingList(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func CalvingEventCreate(c *gin.Context) { var req pasturePb.EventCalving if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.CowId, valid.Required), valid.Field(&req.CalvingAt, valid.Required), valid.Field(&req.ChildNumber, valid.Required), valid.Field(&req.CalvingLevel, valid.Required), valid.Field(&req.CalfItemList, valid.Required, valid.Each(valid.By(func(value interface{}) error { s := value.(pasturePb.CalfItem) return valid.ValidateStruct(&s, valid.Field(&s.Sex, valid.Required), valid.Field(&s.Weight, valid.Required), valid.Field(&s.IsLive, valid.Required), valid.Field(&s.IsAdoption, valid.Required), ) }))), valid.Field(&req.StaffMemberId, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.CalvingCreate(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 PregnantCheckEventList(c *gin.Context) { var req pasturePb.SearchEventRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } pagination := &pasturePb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.PregnantCheckList(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func PregnantCheckEventCreate(c *gin.Context) { var req pasturePb.EventPregnantCheck if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.CowId, valid.Required), valid.Field(&req.PregnantCheckAt, valid.Required), valid.Field(&req.PregnantCheckResult, valid.Required), valid.Field(&req.PregnantCheckAt, valid.Required), valid.Field(&req.StaffMemberId, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.PregnantCheckCreate(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 MatingEventList(c *gin.Context) { var req pasturePb.SearchEventRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } pagination := &pasturePb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.MatingList(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func MatingCreate(c *gin.Context) { var req pasturePb.EventMating if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.CowId, valid.Required), valid.Field(&req.StaffMemberId, valid.Required), valid.Field(&req.ExposeEstrusType, valid.Required), valid.Field(&req.BullId, valid.Required), valid.Field(&req.MatingAt, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.MatingCreate(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 EstrusEventList(c *gin.Context) { var req pasturePb.SearchEventRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } pagination := &pasturePb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.EstrusList(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func EstrusCreate(c *gin.Context) { var req pasturePb.EventEstrus if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.CowId, valid.Required), valid.Field(&req.StaffMemberId, valid.Required), valid.Field(&req.EstrusAt, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.EstrusCreate(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 FrozenSemeList(c *gin.Context) { var req pasturePb.FrozenSemenRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } pagination := &pasturePb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.Dependency(c).StoreEventHub.OpsService.FrozenSemenList(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } // FrozenSemeCreate 冻精 func FrozenSemeCreate(c *gin.Context) { var req pasturePb.SearchFrozenSemenList if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.BullId, valid.Required), valid.Field(&req.Producer, valid.Required), valid.Field(&req.Quantity, valid.Required), valid.Field(&req.Unit, valid.Required), valid.Field(&req.FrozenSemenType, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.FrozenSemenCreate(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 SameTimeCreate(c *gin.Context) { var req pasturePb.EventSameTime if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.SameTimeId, valid.Required), valid.Field(&req.SameTimeType, valid.Required), valid.Field(&req.SameTimeAt, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.SameTimeCreate(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 SameTimeList(c *gin.Context) { }