package event import ( "kpt-pasture/http/middleware" "net/http" "strconv" 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 CowDiseaseCreate(c *gin.Context) { var req pasturePb.EventCowDiseaseRequest 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.DiseaseAt, valid.Required), valid.Field(&req.DiseaseId, valid.Required), valid.Field(&req.OperationId, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } source := c.GetHeader("Source") if err := middleware.BackendOperation(c).OpsService.CowDiseaseCreate(c, &req, source); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) } func CowDiseaseList(c *gin.Context) { var req pasturePb.SearchEventCowTreatmentRequest 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.CowDiseaseList(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func CowDiseaseDiagnose(c *gin.Context) { var req pasturePb.CowDiagnosedRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Id, valid.Required), valid.Field(&req.CowId, valid.Required), valid.Field(&req.DiagnosedResult, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.CowDiseaseDiagnose(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 DiseaseSuggestPrescription(c *gin.Context) { diseaseIdStr := c.Param("id") diseaseId, _ := strconv.Atoi(diseaseIdStr) if err := valid.Validate(diseaseId, valid.Required, valid.Min(1)); err != nil { apierr.ClassifiedAbort(c, err) return } res, err := middleware.BackendOperation(c).OpsService.DiseaseSuggestPrescription(c, int64(diseaseId)) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func CowDiseaseTreatment(c *gin.Context) { var req pasturePb.CowTreatmentRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Id, valid.Required), valid.Field(&req.CowId, valid.Required), valid.Field(&req.DiseaseId, valid.Required), valid.Field(&req.PrescriptionId, valid.Required), valid.Field(&req.TreatmentAt, valid.Required), valid.Field(&req.OperationId, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.CowDiseaseTreatment(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 CowDiseaseTreatmentDetail(c *gin.Context) { var req pasturePb.EventCowTreatmentDetailRequest 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), ); 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.BackendOperation(c).OpsService.CowDiseaseTreatmentDetail(c, &req, pagination) if err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, res) } func CowDiseaseCurable(c *gin.Context) { var req pasturePb.EventCowCurableRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.Ids, valid.Required), valid.Field(&req.OperationId, valid.Required), valid.Field(&req.CurableAt, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := middleware.BackendOperation(c).OpsService.CowDiseaseCurable(c, &req); err != nil { apierr.ClassifiedAbort(c, err) return } ginutil.JSONResp(c, &operationPb.CommonOK{ Code: http.StatusOK, Msg: "ok", Data: &operationPb.Success{Success: true}, }) }