drugs.go 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. OperationName string `json:"operation_name"`
  21. CreatedAt int64 `json:"created_at"`
  22. UpdatedAt int64 `json:"updated_at"`
  23. }
  24. func (d *Drugs) TableName() string {
  25. return "drugs"
  26. }
  27. func NewDrugs(req *pasturePb.SearchDrugsList, currentUser *SystemUser) *Drugs {
  28. return &Drugs{
  29. Name: req.Name,
  30. CategoryId: req.CategoryId,
  31. Producer: req.Producer,
  32. BatchNumber: req.BatchNumber,
  33. ProductionAt: int64(req.ProductionAt),
  34. ExpirationAt: int64(req.ExpirationAt),
  35. Unit: req.Unit,
  36. Specs: req.Specs,
  37. Inventory: req.Inventory,
  38. UsageMethod: req.Usage,
  39. Price: int32(req.Price * 100),
  40. Remarks: req.Remarks,
  41. OperationId: int32(currentUser.Id),
  42. OperationName: currentUser.Name,
  43. }
  44. }
  45. type DrugsSlice []*Drugs
  46. func (d DrugsSlice) ToPB(drugsCategoryMap map[pasturePb.DrugCategory_Kind]string,
  47. unitMap map[pasturePb.Unit_Kind]string, drugUsageMap map[pasturePb.DrugUsage_Kind]string) []*pasturePb.SearchDrugsList {
  48. res := make([]*pasturePb.SearchDrugsList, len(d))
  49. for i, v := range d {
  50. res[i] = &pasturePb.SearchDrugsList{
  51. Id: int32(v.Id),
  52. Name: v.Name,
  53. CategoryId: v.CategoryId,
  54. CategoryName: drugsCategoryMap[v.CategoryId],
  55. Producer: v.Producer,
  56. BatchNumber: v.BatchNumber,
  57. ProductionAt: int32(v.ProductionAt),
  58. ExpirationAt: int32(v.ExpirationAt),
  59. Unit: v.Unit,
  60. UnitName: unitMap[v.Unit],
  61. Specs: v.Specs,
  62. Inventory: v.Inventory,
  63. Usage: v.UsageMethod,
  64. UsageName: drugUsageMap[v.UsageMethod],
  65. Price: float32(v.Price) / 100,
  66. MeatExpiredDays: v.MeatExpiredDays,
  67. MilkExpiredDays: v.MilkExpiredDays,
  68. Remarks: v.Remarks,
  69. OperationId: v.OperationId,
  70. OperationName: v.OperationName,
  71. CreatedAt: int32(v.CreatedAt),
  72. UpdatedAt: int32(v.UpdatedAt),
  73. }
  74. }
  75. return res
  76. }