disease.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package model
  2. import (
  3. "strings"
  4. "github.com/nicksnyder/go-i18n/v2/i18n"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. )
  7. type Disease struct {
  8. Id int64 `json:"id"`
  9. PastureId int64 `json:"pastureId"`
  10. Name string `json:"name"`
  11. Symptoms string `json:"symptoms"`
  12. DiseaseType int32 `json:"diseaseType"`
  13. DiseaseTypeName string `json:"diseaseTypeName"`
  14. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  15. Remarks string `json:"remarks"`
  16. OperationId int64 `json:"operationId"`
  17. CreatedAt int64 `json:"createdAt"`
  18. UpdatedAt int64 `json:"updatedAt"`
  19. }
  20. func (d *Disease) TableName() string {
  21. return "disease"
  22. }
  23. type DiseaseSlice []*Disease
  24. func (d DiseaseSlice) ToPB(userModel *UserModel, user []*SystemUser, diseaseTypeList []*ConfigDiseaseType) []*pasturePb.SearchDiseaseList {
  25. res := make([]*pasturePb.SearchDiseaseList, len(d))
  26. for i, dl := range d {
  27. operationName, diseaseTypeName := "", ""
  28. for _, u := range user {
  29. if u.Id == dl.OperationId {
  30. operationName = u.NickName
  31. break
  32. }
  33. }
  34. for _, dt := range diseaseTypeList {
  35. if dt.Id == int64(dl.DiseaseType) {
  36. label, _ := userModel.LanguageContent.Localize(&i18n.LocalizeConfig{
  37. MessageID: dt.I18nFieldTag,
  38. })
  39. diseaseTypeName = label
  40. break
  41. }
  42. }
  43. res[i] = &pasturePb.SearchDiseaseList{
  44. Id: int32(dl.Id),
  45. Remarks: dl.Remarks,
  46. OperationId: int32(dl.OperationId),
  47. OperationName: operationName,
  48. Name: dl.Name,
  49. DiseaseTypeId: dl.DiseaseType,
  50. DiseaseTypeName: diseaseTypeName,
  51. Symptoms: strings.Split(dl.Symptoms, "|"),
  52. IsShow: dl.IsShow,
  53. CreatedAt: int32(dl.CreatedAt),
  54. UpdatedAt: int32(dl.UpdatedAt),
  55. }
  56. }
  57. return res
  58. }
  59. func (d DiseaseSlice) ToPB2() []*pasturePb.ConfigOptionsList {
  60. res := make([]*pasturePb.ConfigOptionsList, len(d))
  61. for i, d := range d {
  62. res[i] = &pasturePb.ConfigOptionsList{
  63. Value: int32(d.Id),
  64. Label: d.Name,
  65. Disabled: true,
  66. }
  67. }
  68. return res
  69. }