frozen_semen.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package model
  2. import (
  3. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  4. )
  5. type FrozenSemen struct {
  6. Id int64 `json:"id"`
  7. PastureId int64 `json:"pasture_id"`
  8. ParentId int64 `json:"parent_id"`
  9. Producer string `json:"producer"`
  10. BullId string `json:"bull_id"`
  11. KindId pasturePb.CowKind_Kind `json:"kind_id"`
  12. KindName string `json:"kind_name"`
  13. FrozenSemenType pasturePb.FrozenSemenType_Kind `json:"frozen_semen_type"`
  14. Quantity int32 `json:"quantity"`
  15. Unit pasturePb.Unit_Kind `json:"unit"`
  16. Remarks string `json:"remarks"`
  17. OperationId int64 `json:"operation_id"`
  18. CreatedAt int64 `json:"created_at"`
  19. UpdatedAt int64 `json:"updated_at"`
  20. }
  21. func NewFrozenSemen(pastureId int64, req *pasturePb.SearchFrozenSemenList, currentUser *SystemUser) *FrozenSemen {
  22. return &FrozenSemen{
  23. PastureId: pastureId,
  24. Producer: req.Producer,
  25. BullId: req.BullId,
  26. KindId: req.CowKind,
  27. KindName: req.CowKindName,
  28. FrozenSemenType: req.FrozenSemenType,
  29. Quantity: req.Quantity,
  30. Unit: req.Unit,
  31. Remarks: req.Remarks,
  32. OperationId: currentUser.Id,
  33. }
  34. }
  35. func (f *FrozenSemen) TableName() string {
  36. return "frozen_semen"
  37. }
  38. func (f *FrozenSemen) EventQuantityUpdate(quantity int32) {
  39. f.Quantity -= quantity
  40. }
  41. func (f *FrozenSemen) UpdateData(req *pasturePb.SearchFrozenSemenList) {
  42. f.Quantity = req.Quantity
  43. f.KindId = req.CowKind
  44. f.KindName = req.CowKindName
  45. f.FrozenSemenType = req.FrozenSemenType
  46. }
  47. type FrozenSemenSlice []*FrozenSemen
  48. func (e FrozenSemenSlice) ToPB(
  49. frozenSemenTypeMap map[pasturePb.FrozenSemenType_Kind]string,
  50. unitMap map[pasturePb.Unit_Kind]string) []*pasturePb.SearchFrozenSemenList {
  51. res := make([]*pasturePb.SearchFrozenSemenList, len(e))
  52. for i, v := range e {
  53. res[i] = &pasturePb.SearchFrozenSemenList{
  54. Id: int32(v.Id),
  55. ParentId: int32(v.ParentId),
  56. Producer: v.Producer,
  57. BullId: v.BullId,
  58. CowKind: v.KindId,
  59. CowKindName: v.KindName,
  60. FrozenSemenType: v.FrozenSemenType,
  61. FrozenSemenTypeName: frozenSemenTypeMap[v.FrozenSemenType],
  62. Quantity: v.Quantity,
  63. Unit: v.Unit,
  64. UnitName: unitMap[v.Unit],
  65. Remarks: v.Remarks,
  66. OperationId: int32(v.OperationId),
  67. CreatedAt: int32(v.CreatedAt),
  68. UpdatedAt: int32(v.UpdatedAt),
  69. }
  70. }
  71. return res
  72. }