| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | package crontabimport (	"fmt"	"kpt-pasture/model"	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"	"gitee.com/xuyiping_admin/pkg/logger/zaplog"	"go.uber.org/zap")func (e *Entry) FindAdultAbortionRate(pastureList []*model.AppPastureList, cowType string, startTime, endTime int64) map[int64]string {	res := make(map[int64]string)	for _, pasture := range pastureList {		var count int64		pref := e.DB.Model(new(model.EventAbortion)).			Where("pasture_id = ?", pasture.Id).			Where("abortion_at BETWEEN ? AND ?", startTime, endTime).			Where("is_append = ?", pasturePb.IsShow_Ok)		if cowType == "youth" {			pref.Where("lact = ?", 0)		}		if cowType == "adult" {			pref.Where("lact > ?", 0)		}		if err := pref.Count(&count).Error; err != nil {			zaplog.Error("FindAdultAbortionRate", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))		}		res[pasture.Id] = fmt.Sprintf("%d", count)	}	return res}func (e *Entry) FindDepartureNumber(pastureList []*model.AppPastureList, departureType pasturePb.DepartureType_Kind, startTime, endTime int64) map[int64]string {	res := make(map[int64]string)	for _, pasture := range pastureList {		var count int64		if err := e.DB.Model(new(model.EventDeparture)).			Where("pasture_id = ?", pasture.Id).			Where("departure_at BETWEEN ? AND ?", startTime, endTime).			Where("departure_type = ?", departureType).			Count(&count).Error; err != nil {			zaplog.Error("FindAllDieNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))		}		res[pasture.Id] = fmt.Sprintf("%d", count)	}	return res}func (e *Entry) FindDiseaseNumber(pastureList []*model.AppPastureList, startTime, endTime int64) map[int64]string {	res := make(map[int64]string)	for _, pasture := range pastureList {		var count int64		if err := e.DB.Model(new(model.EventCowDisease)).			Where("pasture_id = ?", pasture.Id).			Where("disease_at BETWEEN ? AND ?", startTime, endTime).			Where("diagnosed_result = ?", pasturePb.IsShow_Ok).			Count(&count).Error; err != nil {			zaplog.Error("FindDiseaseNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))		}		res[pasture.Id] = fmt.Sprintf("%d", count)	}	return res}func (e *Entry) FindCureNumber(pastureList []*model.AppPastureList, startTime, endTime int64) map[int64]string {	res := make(map[int64]string)	for _, pasture := range pastureList {		var count int64		if err := e.DB.Model(new(model.EventCowDisease)).			Where("pasture_id = ?", pasture.Id).			Where("curable_at BETWEEN ? AND ?", startTime, endTime).			Where("diagnosed_result = ?", pasturePb.IsShow_Ok).			Count(&count).Error; err != nil {			zaplog.Error("FindCureNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))		}		res[pasture.Id] = fmt.Sprintf("%d", count)	}	return res}func (e *Entry) FindCalfDieNumber(pastureList []*model.AppPastureList, departureType pasturePb.DepartureType_Kind, startTime, endTime int64) map[int64]string {	res := make(map[int64]string)	for _, pasture := range pastureList {		var count int64		if err := e.DB.Model(new(model.EventDeparture)).			Where("pasture_id = ?", pasture.Id).			Where("departure_at BETWEEN ? AND ?", startTime, endTime).			Where("departure_type = ?", departureType).			Where("day_age <= ?", 60).			Count(&count).Error; err != nil {			zaplog.Error("FindAllDieNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))		}		res[pasture.Id] = fmt.Sprintf("%d", count)	}	return res}
 |