medical_equipment.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type MedicalEquipment struct {
  4. Id int64 `json:"id"`
  5. PastureId int64 `json:"pastureId"`
  6. Name string `json:"name"`
  7. Producer string `json:"producer"`
  8. BatchNumber string `json:"batch_number"`
  9. Unit pasturePb.Unit_Kind `json:"unit"`
  10. Specs string `json:"specs"`
  11. Inventory int32 `json:"inventory"`
  12. Price int32 `json:"price"`
  13. Remarks string `json:"remarks"`
  14. OperationId int32 `json:"operation_id"`
  15. OperationName string `json:"operation_name"`
  16. CreatedAt int64 `json:"created_at"`
  17. UpdatedAt int64 `json:"updated_at"`
  18. }
  19. func (m *MedicalEquipment) TableName() string {
  20. return "medical_equipment"
  21. }
  22. func NewMedicalEquipment(pastureId int64, req *pasturePb.SearchMedicalEquipmentList, currentUser *SystemUser) *MedicalEquipment {
  23. return &MedicalEquipment{
  24. PastureId: pastureId,
  25. Name: req.Name,
  26. Producer: req.Producer,
  27. BatchNumber: req.BatchNumber,
  28. Unit: req.Unit,
  29. Specs: req.Specs,
  30. Inventory: req.Inventory,
  31. Price: int32(req.Price * 100),
  32. Remarks: req.Remarks,
  33. OperationId: int32(currentUser.Id),
  34. OperationName: currentUser.Name,
  35. }
  36. }
  37. type MedicalEquipmentSlice []*MedicalEquipment
  38. func (m MedicalEquipmentSlice) ToPB(unitMap map[pasturePb.Unit_Kind]string) []*pasturePb.SearchMedicalEquipmentList {
  39. res := make([]*pasturePb.SearchMedicalEquipmentList, len(m))
  40. for i, v := range m {
  41. res[i] = &pasturePb.SearchMedicalEquipmentList{
  42. Id: int32(v.Id),
  43. Name: v.Name,
  44. Producer: v.Producer,
  45. BatchNumber: v.BatchNumber,
  46. Unit: v.Unit,
  47. UnitName: unitMap[v.Unit],
  48. Specs: v.Specs,
  49. Inventory: v.Inventory,
  50. Price: float32(v.Price) / 100,
  51. Remarks: v.Remarks,
  52. OperationId: v.OperationId,
  53. OperationName: v.OperationName,
  54. CreatedAt: int32(v.CreatedAt),
  55. UpdatedAt: int32(v.UpdatedAt),
  56. }
  57. }
  58. return res
  59. }