| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | package modelimport (	"fmt"	"time"	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow")const ShardTableNumber = 6type EventCowLog struct {	Id                int64                        `json:"id"`	PastureId         int64                        `json:"pastureId"`	CowId             int64                        `json:"cowId"`	DayAge            int32                        `json:"dayAge"`	Lact              int32                        `json:"lact"`	PenId             int32                        `json:"penId"`	PenName           string                       `json:"penName"`	CowType           pasturePb.CowType_Kind       `json:"cowType"`	CowTypeName       string                       `json:"cowTypeName"`	EventCategoryKind pasturePb.EventCategory_Kind `json:"eventCategoryKind"`	EventType         pasturePb.EventType_Kind     `json:"eventType"`	EventTypeName     string                       `json:"eventTypeName"`	EventDescription  string                       `json:"eventDescription"`	OperationId       int64                        `json:"operationId"`	OperationName     string                       `json:"operationName"`	EventAt           int64                        `json:"eventAt"`	Remarks           string                       `json:"remarks"`	CreatedAt         int64                        `json:"createdAt"`	UpdatedAt         int64                        `json:"updatedAt"`}func (e *EventCowLog) UnShardTableName() string {	return "event_cow_log"}// TableName 表名func (e *EventCowLog) TableName() string {	return fmt.Sprintf("%s_%04d", e.UnShardTableName(), e.CowId%ShardTableNumber)}type EventCowLogModel struct {	Cow               *Cow	EventType         pasturePb.EventType_Kind	OperationUser     *SystemUser	CurrentUser       *SystemUser	EventAt           int64	ExposeEstrusType  pasturePb.ExposeEstrusType_Kind	EventCategoryKind pasturePb.EventCategory_Kind	PenName           string	Remarks           string	CowTypeName       string	EventTypeName     string	Description       string}func NewEventCowLog(req *EventCowLogModel) *EventCowLog {	operationId := int64(0)	operationName := ""	if req.OperationUser != nil && req.OperationUser.Id > 0 {		operationId = req.OperationUser.Id		operationName = req.OperationUser.Name	}	return &EventCowLog{		PastureId:         req.Cow.PastureId,		CowId:             req.Cow.Id,		DayAge:            req.Cow.GetDayAge(),		Lact:              req.Cow.Lact,		PenId:             req.Cow.PenId,		PenName:           req.PenName,		CowType:           req.Cow.CowType,		CowTypeName:       req.CowTypeName,		EventCategoryKind: req.EventCategoryKind,		EventType:         req.EventType,		EventTypeName:     req.EventTypeName,		EventDescription:  req.Description,		OperationId:       operationId,		OperationName:     operationName,		EventAt:           req.EventAt,		Remarks:           req.Remarks,	}}type EventCowLogSlice []*EventCowLogfunc (e EventCowLogSlice) ToPB(eventCategoryMap map[pasturePb.EventCategory_Kind]string) []*pasturePb.CowEvent {	res := make([]*pasturePb.CowEvent, len(e))	for i, v := range e {		eventAtFormat := ""		if v.EventAt > 0 {			eventAtFormat = time.Unix(v.EventAt, 0).Local().Format(LayoutDate2)		}		res[i] = &pasturePb.CowEvent{			Id:                int32(v.Id),			PastureId:         int32(v.PastureId),			CowId:             int32(v.CowId),			Lact:              v.Lact,			DayAge:            v.DayAge,			PenName:           v.PenName,			CowTypeName:       v.CowTypeName,			EventTypeName:     v.EventTypeName,			EventDescription:  v.EventDescription,			OperationName:     v.OperationName,			Remarks:           v.Remarks,			EventAtFormat:     eventAtFormat,			EventCategoryKind: v.EventCategoryKind,			EventCategoryName: eventCategoryMap[v.EventCategoryKind],		}	}	return res}
 |