event_sale.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package model
  2. import (
  3. "strings"
  4. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  5. )
  6. type EventSale struct {
  7. Id int64 `json:"id"`
  8. PastureId int64 `json:"pastureId"`
  9. DealerId int32 `json:"dealerId"`
  10. DealerName string `json:"dealerName"`
  11. SalePrice float64 `json:"salePrice"`
  12. SaleAllWeight int32 `json:"saleAllWeight"`
  13. SaleAllAmount float64 `json:"saleAllAmount"`
  14. SaleCowCount int32 `json:"saleCowCount"`
  15. SaleKind pasturePb.SalesType_Kind `json:"saleKind"`
  16. OutReasonsKind pasturePb.OutReasons_Kind `json:"outReasonsKind"`
  17. OutReasonsName string `json:"outReasonsName"`
  18. SaleAt int64 `json:"saleAt"`
  19. SaleTicker string `json:"saleTicker"`
  20. QuarantineReport string `json:"quarantineReport"`
  21. Remarks string `json:"remarks"`
  22. OperationId int64 `json:"operationId"`
  23. OperationName string `json:"operationName"`
  24. MessageId int64 `json:"messageId"`
  25. MessageName string `json:"messageName"`
  26. CreatedAt int64 `json:"createdAt"`
  27. UpdatedAt int64 `json:"updatedAt"`
  28. }
  29. func (e *EventSale) TableName() string {
  30. return "event_sale"
  31. }
  32. func NewEventSale(pastureId int64, dealerInfo *SaleDealer, req *pasturePb.EventCowSale, operationUser, currUser *SystemUser) *EventSale {
  33. return &EventSale{
  34. PastureId: pastureId,
  35. DealerId: dealerInfo.Id,
  36. DealerName: dealerInfo.Name,
  37. SalePrice: float64(req.SalePrice),
  38. SaleAllWeight: int32(req.SaleAllWeight * 1000),
  39. SaleAllAmount: float64(req.SaleAllPrice),
  40. SaleCowCount: int32(len(req.EarNumbers)),
  41. SaleKind: req.SalesType,
  42. OutReasonsKind: req.OutReasonsKind,
  43. OutReasonsName: req.OutReasonsName,
  44. SaleAt: int64(req.SaleAt),
  45. SaleTicker: strings.Join(req.SaleTicket, ","),
  46. QuarantineReport: strings.Join(req.QuarantineReport, ","),
  47. Remarks: req.Remarks,
  48. OperationId: operationUser.Id,
  49. OperationName: operationUser.Name,
  50. MessageId: currUser.Id,
  51. MessageName: currUser.Name,
  52. }
  53. }
  54. type EventSaleSlice []*EventSale
  55. func (e EventSaleSlice) ToPB(eventSaleCarMap map[int64][]*EventSaleCar, eventSaleCowList []*EventSaleCow) []*pasturePb.EventCowSale {
  56. res := make([]*pasturePb.EventCowSale, len(e))
  57. for i, v := range e {
  58. saleVehicleItems := make([]*pasturePb.SaleVehicleItem, 0)
  59. eventSaleCarItems, ok := eventSaleCarMap[v.Id]
  60. earNumbers := make([]string, 0)
  61. if ok {
  62. for _, item := range eventSaleCarItems {
  63. es := strings.Split(item.EarNumbers, ",")
  64. saleVehicleItems = append(saleVehicleItems, &pasturePb.SaleVehicleItem{
  65. CarNumber: item.CarNumber,
  66. CowCount: item.CowCount,
  67. CowWeight: float32(item.CowWeight) / 1000,
  68. OutboundTicket: item.OutboundTicket,
  69. WeighbridgePhotos: strings.Split(item.WeighbridgePhotos, ","),
  70. VehiclePhotos: strings.Split(item.CarPhotos, ","),
  71. EarNumbers: es,
  72. })
  73. earNumbers = append(earNumbers, es...)
  74. }
  75. }
  76. res[i] = &pasturePb.EventCowSale{
  77. DealerId: v.DealerId,
  78. DealerName: v.DealerName,
  79. SaleAt: int32(v.SaleAt),
  80. EarNumbers: earNumbers,
  81. SalesType: v.SaleKind,
  82. OutReasonsKind: v.OutReasonsKind,
  83. OutReasonsName: v.OutReasonsName,
  84. SaleAllWeight: float32(v.SaleAllWeight) / 1000,
  85. SaleAllPrice: float32(v.SaleAllAmount),
  86. SalePrice: float32(v.SalePrice),
  87. OperationId: int32(v.OperationId),
  88. OperationName: v.OperationName,
  89. Remarks: v.Remarks,
  90. SaleTicket: strings.Split(v.SaleTicker, ","),
  91. QuarantineReport: strings.Split(v.QuarantineReport, ","),
  92. SaleVehicleItems: saleVehicleItems,
  93. }
  94. }
  95. return res
  96. }