medical_equipment.go 2.1 KB

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