| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | package dashboardimport (	"kpt-tmr-group/http/middleware"	"kpt-tmr-group/pkg/apierr"	"kpt-tmr-group/pkg/ginutil"	"kpt-tmr-group/pkg/valid"	operationPb "kpt-tmr-group/proto/go/backend/operation"	"net/http"	"github.com/gin-gonic/gin")// AnalysisAccuracy 首页仪表盘-准确性分析func AnalysisAccuracy(c *gin.Context) {	var req operationPb.SearchAnalysisAccuracyRequest	if err := ginutil.BindProto(c, &req); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	if err := valid.ValidateStruct(&req,		valid.Field(&req.PastureIds, valid.Required),		valid.Field(&req.StartDate, valid.Required),		valid.Field(&req.EndDate, valid.Required),	); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	res, err := middleware.BackendOperation(c).OpsService.SearchAnalysisAccuracy(c, &req)	if err != nil {		apierr.ClassifiedAbort(c, err)		return	}	c.JSON(http.StatusOK, res)}// TopPasture 牧场排名func TopPasture(c *gin.Context) {	var req operationPb.SearchAnalysisAccuracyRequest	if err := ginutil.BindProto(c, &req); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	if err := valid.ValidateStruct(&req,		valid.Field(&req.PastureIds, valid.Required),		valid.Field(&req.StartDate, valid.Required),		valid.Field(&req.EndDate, valid.Required),	); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	res, err := middleware.BackendOperation(c).OpsService.TopPasture(c, &req)	if err != nil {		apierr.ClassifiedAbort(c, err)		return	}	c.JSON(http.StatusOK, res)}// ExecutionTime 执行时间func ExecutionTime(c *gin.Context) {	var req operationPb.SearchAnalysisAccuracyRequest	if err := ginutil.BindProto(c, &req); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	if err := valid.ValidateStruct(&req,		valid.Field(&req.PastureIds, valid.Required),		valid.Field(&req.StartDate, valid.Required),		valid.Field(&req.EndDate, valid.Required),	); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	res, err := middleware.BackendOperation(c).OpsService.ExecutionTime(c, &req)	if err != nil {		apierr.ClassifiedAbort(c, err)		return	}	c.JSON(http.StatusOK, res)}// SprinkleFeedTime 撒料时间func SprinkleFeedTime(c *gin.Context) {	var req operationPb.SprinkleFeedTimeRequest	if err := ginutil.BindProto(c, &req); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	if err := valid.ValidateStruct(&req,		valid.Field(&req.PastureIds, valid.Required),		valid.Field(&req.StartDate, valid.Required),		valid.Field(&req.EndDate, valid.Required),	); err != nil {		apierr.AbortBadRequest(c, http.StatusBadRequest, err)		return	}	res, err := middleware.BackendOperation(c).OpsService.SprinkleFeedTime(c, &req)	if err != nil {		apierr.ClassifiedAbort(c, err)		return	}	c.JSON(http.StatusOK, res)}
 |