package model import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" type EventPregnantCheck struct { Id int64 `json:"id"` CowId int64 `json:"cow_id"` DayAge int32 `json:"day_age"` Lact int8 `json:"lact"` PregnantCheckAt int64 `json:"pregnant_check_at"` PregnantCheckResult pasturePb.PregnantCheckResult_Kind `json:"pregnant_check_result"` PregnantCheckMethod pasturePb.PregnantCheckMethod_Kind `json:"pregnant_check_method"` StaffMemberId int64 `json:"staff_member_id"` OperationId int64 `json:"operation_id"` Remarks string `json:"remarks"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } func (e *EventPregnantCheck) TableName() string { return "event_pregnant_check" } func NewEventPregnantCheck(cow *Cow, systemUser *SystemUser, req *pasturePb.EventPregnantCheck) *EventPregnantCheck { return &EventPregnantCheck{ CowId: cow.Id, DayAge: cow.GetDayAge(), Lact: int8(cow.Lact), PregnantCheckAt: int64(req.PregnantCheckAt), PregnantCheckResult: req.PregnantCheckResult, PregnantCheckMethod: req.PregnantCheckMethod, StaffMemberId: int64(req.StaffMemberId), OperationId: systemUser.Id, Remarks: req.Remarks, } } type EventPregnantCheckSlice []*EventPregnantCheck func (e EventPregnantCheckSlice) ToPB(systemUserList []*SystemUser, pregnantCheckResult, pregnantCheckMethod []*pasturePb.ConfigOptionsList) []*pasturePb.SearchPregnantCheckList { result := make([]*pasturePb.SearchPregnantCheckList, len(e)) for i, v := range e { var pregnantCheckResultName, pregnantCheckMethodName, staffMemberName, operationName = "", "", "", "" for _, u := range systemUserList { if v.StaffMemberId == u.Id { staffMemberName = u.Name } if v.OperationId == u.Id { operationName = u.Name } } for _, s := range pregnantCheckResult { if int32(v.PregnantCheckResult) != s.Value { continue } pregnantCheckResultName = s.Label } for _, m := range pregnantCheckMethod { if int32(v.PregnantCheckMethod) != m.Value { continue } pregnantCheckMethodName = m.Label } result[i] = &pasturePb.SearchPregnantCheckList{ Id: int32(v.Id), CowId: int32(v.CowId), DayAge: v.DayAge, Lact: int32(v.Lact), PregnantCheckAt: int32(v.PregnantCheckAt), PregnantCheckResult: v.PregnantCheckResult, PregnantCheckResultName: pregnantCheckResultName, PregnantCheckMethod: v.PregnantCheckMethod, PregnantCheckMethodName: pregnantCheckMethodName, StaffMemberId: int32(v.StaffMemberId), StaffMemberName: staffMemberName, Remarks: v.Remarks, OperationId: int32(v.OperationId), OperationName: operationName, CreatedAt: int32(v.CreatedAt), UpdatedAt: int32(v.UpdatedAt), } } return result }