drugs.go 3.2 KB

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