drugs.go 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type Drugs struct {
  4. Id int64 `json:"id"`
  5. PastureId int64 `json:"pastureId"`
  6. Name string `json:"name"`
  7. CategoryId pasturePb.DrugCategory_Kind `json:"categoryId"`
  8. CategoryName string `json:"categoryName"`
  9. Producer string `json:"producer"`
  10. BatchNumber string `json:"batchNumber"`
  11. ProductionAt int64 `json:"productionAt"`
  12. ExpirationAt int64 `json:"expirationAt"`
  13. Unit pasturePb.Unit_Kind `json:"unit"`
  14. UnitName string `json:"unitName"`
  15. Specs string `json:"specs"`
  16. Inventory int32 `json:"inventory"`
  17. UsageMethod pasturePb.DrugUsage_Kind `json:"usage_method"`
  18. UsageMethodName string `json:"usageMethodName"`
  19. Price int32 `json:"price"`
  20. MilkExpiredDays int32 `json:"milk_expired_days"`
  21. MeatExpiredDays int32 `json:"meat_expired_days"`
  22. Remarks string `json:"remarks"`
  23. OperationId int32 `json:"operation_id"`
  24. OperationName string `json:"operation_name"`
  25. CreatedAt int64 `json:"created_at"`
  26. UpdatedAt int64 `json:"updated_at"`
  27. }
  28. func (d *Drugs) TableName() string {
  29. return "drugs"
  30. }
  31. func NewDrugs(pastureId int64, req *pasturePb.SearchDrugsList, currentUser *SystemUser) *Drugs {
  32. return &Drugs{
  33. PastureId: pastureId,
  34. Name: req.Name,
  35. CategoryId: req.CategoryId,
  36. CategoryName: req.CategoryName,
  37. Producer: req.Producer,
  38. BatchNumber: req.BatchNumber,
  39. ProductionAt: int64(req.ProductionAt),
  40. ExpirationAt: int64(req.ExpirationAt),
  41. Unit: req.Unit,
  42. UnitName: req.UnitName,
  43. Specs: req.Specs,
  44. Inventory: req.Inventory,
  45. UsageMethod: req.Usage,
  46. UsageMethodName: req.UsageName,
  47. Price: int32(req.Price * 100),
  48. Remarks: req.Remarks,
  49. OperationId: int32(currentUser.Id),
  50. OperationName: currentUser.Name,
  51. }
  52. }
  53. type DrugsSlice []*Drugs
  54. func (d DrugsSlice) ToPB() []*pasturePb.SearchDrugsList {
  55. res := make([]*pasturePb.SearchDrugsList, len(d))
  56. for i, v := range d {
  57. res[i] = &pasturePb.SearchDrugsList{
  58. Id: int32(v.Id),
  59. Name: v.Name,
  60. CategoryId: v.CategoryId,
  61. CategoryName: v.CategoryName,
  62. Producer: v.Producer,
  63. BatchNumber: v.BatchNumber,
  64. ProductionAt: int32(v.ProductionAt),
  65. ExpirationAt: int32(v.ExpirationAt),
  66. Unit: v.Unit,
  67. UnitName: v.UnitName,
  68. Specs: v.Specs,
  69. Inventory: v.Inventory,
  70. Usage: v.UsageMethod,
  71. UsageName: v.UsageMethodName,
  72. Price: float32(v.Price) / 100,
  73. MeatExpiredDays: v.MeatExpiredDays,
  74. MilkExpiredDays: v.MilkExpiredDays,
  75. Remarks: v.Remarks,
  76. OperationId: v.OperationId,
  77. OperationName: v.OperationName,
  78. CreatedAt: int32(v.CreatedAt),
  79. UpdatedAt: int32(v.UpdatedAt),
  80. }
  81. }
  82. return res
  83. }