neck_ring.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package model
  2. import (
  3. "time"
  4. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  5. )
  6. type NeckRing struct {
  7. Id int64 `json:"id"`
  8. PastureId int64 `json:"pastureId"`
  9. NeckRingNumber string `json:"neckRingNumber"`
  10. CowId int64 `json:"cowId"`
  11. EarNumber string `json:"earNumber"`
  12. WearAt int64 `json:"wearAt"`
  13. IsBind pasturePb.NeckRingIsBind_Kind `json:"isBind"`
  14. Status pasturePb.NeckRingStatus_Kind `json:"status"`
  15. ErrorKind pasturePb.NeckRingNumberError_Kind `json:"errorKind"`
  16. ErrorReason string `json:"errorReason"`
  17. Describe string `json:"describe"`
  18. OperationId int32 `json:"operationId"`
  19. OperationName string `json:"operationName"`
  20. CreatedAt int64 `json:"createdAt"`
  21. UpdatedAt int64 `json:"updatedAt"`
  22. }
  23. func (n *NeckRing) TableName() string {
  24. return "neck_ring"
  25. }
  26. func (n *NeckRing) EventBindUpdate(cowId int64) {
  27. n.CowId = cowId
  28. n.WearAt = time.Now().Local().Unix()
  29. }
  30. func (n *NeckRing) EventUnBindUpdate() {
  31. n.IsBind = pasturePb.NeckRingIsBind_Unbind
  32. n.CowId = 0
  33. n.WearAt = 0
  34. n.ErrorReason = ""
  35. n.EarNumber = ""
  36. n.OperationId = 0
  37. n.OperationName = ""
  38. }
  39. func NewNeckRing(pastureId int64, number string, cowInfo *Cow, operationUser *SystemUser) *NeckRing {
  40. return &NeckRing{
  41. PastureId: pastureId,
  42. NeckRingNumber: number,
  43. CowId: cowInfo.Id,
  44. EarNumber: cowInfo.EarNumber,
  45. WearAt: time.Now().Local().Unix(),
  46. IsBind: pasturePb.NeckRingIsBind_Bind,
  47. Status: pasturePb.NeckRingStatus_Normal,
  48. OperationId: int32(operationUser.Id),
  49. OperationName: operationUser.Name,
  50. }
  51. }
  52. type NeckRingSlice []*NeckRingModel
  53. func (n NeckRingSlice) ToPB(neckRingIsBind map[pasturePb.NeckRingIsBind_Kind]string, neckRingStatus map[pasturePb.NeckRingStatus_Kind]string) []*pasturePb.SearchNeckRingList {
  54. res := make([]*pasturePb.SearchNeckRingList, len(n))
  55. for i, v := range n {
  56. wearAtFormat := ""
  57. wearDays := int32(0)
  58. if v.WearAt > 0 {
  59. wearAtFormat = time.Unix(v.WearAt, 0).Local().Format(LayoutDate2)
  60. wearDays = int32(time.Now().Local().Sub(time.Unix(v.WearAt, 0).Local()).Hours() / 24)
  61. }
  62. res[i] = &pasturePb.SearchNeckRingList{
  63. Id: int32(v.Id),
  64. Number: v.NeckRingNumber,
  65. EarNumber: v.EarNumber,
  66. PenName: v.PenName,
  67. CowId: int32(v.CowId),
  68. WearAtFormat: wearAtFormat,
  69. WearDays: wearDays,
  70. IsBind: v.IsBind,
  71. IsBindName: neckRingIsBind[v.IsBind],
  72. ErrorReason: v.ErrorReason,
  73. Status: v.Status,
  74. StatusName: neckRingStatus[v.Status],
  75. }
  76. }
  77. return res
  78. }
  79. type NeckRingModel struct {
  80. Id int64 `json:"id"`
  81. PastureId int64 `json:"pastureId"`
  82. NeckRingNumber string `json:"neckRingNumber"`
  83. CowId int64 `json:"cowId"`
  84. PenName string `json:"penName"`
  85. EarNumber string `json:"earNumber"`
  86. WearAt int64 `json:"wearAt"`
  87. IsBind pasturePb.NeckRingIsBind_Kind `json:"isBind"`
  88. Status pasturePb.NeckRingStatus_Kind `json:"status"`
  89. ErrorReason string `json:"errorReason"`
  90. OperationId int32 `json:"operationId"`
  91. OperationName string `json:"operationName"`
  92. CreatedAt int64 `json:"createdAt"`
  93. UpdatedAt int64 `json:"updatedAt"`
  94. }
  95. type NeckRingStats struct {
  96. Status pasturePb.IsShow_Kind
  97. ErrorKind pasturePb.NeckRingNumberError_Kind
  98. ErrorReason string
  99. Describe string
  100. }
  101. type DashboardNeckRing struct {
  102. Status pasturePb.NeckRingStatus_Kind
  103. Number int32
  104. }