event_estrus.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type EventEstrus struct {
  4. Id int64 `json:"id"`
  5. CowId int64 `json:"cowId"`
  6. DayAge int32 `json:"dayAge"`
  7. Lact int8 `json:"lact"`
  8. LactationDays int32 `json:"lactationDays"`
  9. EstrusAt int64 `json:"estrusAt"`
  10. UnMatingReasons pasturePb.UnMatingReasons_Kind `json:"unMatingReasons"`
  11. UnMatingReasonsName string `json:"unMatingReasonsName"`
  12. IsMating pasturePb.IsShow_Kind `json:"isMating"`
  13. Remarks string `json:"remarks"`
  14. OperationId int64 `json:"operationId"`
  15. OperationName string `json:"operationName"`
  16. MessageId int64 `json:"messageId"`
  17. MessageName string `json:"messageName"`
  18. CreatedAt int64 `json:"createdAt"`
  19. UpdatedAt int64 `json:"updatedAt"`
  20. }
  21. func (e *EventEstrus) TableName() string {
  22. return "event_estrus"
  23. }
  24. func NewEventEstrus(cow *Cow, currentUser *SystemUser, operation *SystemUser, req *pasturePb.EventEstrus) *EventEstrus {
  25. return &EventEstrus{
  26. CowId: cow.Id,
  27. DayAge: cow.GetDayAge(),
  28. Lact: int8(cow.Lact),
  29. LactationDays: cow.GetLactationDays(),
  30. EstrusAt: int64(req.EstrusAt),
  31. Remarks: req.Remarks,
  32. IsMating: req.IsMathing,
  33. UnMatingReasons: req.UnMatingReasons,
  34. MessageId: currentUser.Id,
  35. MessageName: currentUser.Name,
  36. OperationId: operation.Id,
  37. OperationName: operation.Name,
  38. }
  39. }
  40. type EstrusSlice []*EventEstrus
  41. func (e EstrusSlice) ToPB() []*pasturePb.SearchEstrusList {
  42. res := make([]*pasturePb.SearchEstrusList, len(e))
  43. for i, v := range e {
  44. res[i] = &pasturePb.SearchEstrusList{
  45. Id: int32(v.Id),
  46. CowId: int32(v.CowId),
  47. DayAge: v.DayAge,
  48. Lact: int32(v.Lact),
  49. EstrusAt: int32(v.EstrusAt),
  50. IsMathing: v.IsMating,
  51. UnMatingReasonsName: v.UnMatingReasonsName,
  52. LactationDays: v.LactationDays,
  53. MessengerId: int32(v.MessageId),
  54. MessengerName: v.MessageName,
  55. Remarks: v.Remarks,
  56. OperationId: int32(v.OperationId),
  57. OperationName: v.OperationName,
  58. CreatedAt: int32(v.CreatedAt),
  59. UpdatedAt: int32(v.UpdatedAt),
  60. }
  61. }
  62. return res
  63. }