drugs.go 3.1 KB

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