| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							- package model
 
- import (
 
- 	"fmt"
 
- 	"time"
 
- 	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 
- )
 
- const ShardTableNumber = 6
 
- type 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:"eventCategoryId"`
 
- 	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 []*EventCowLog
 
- func (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).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
 
- }
 
 
  |