data_waring.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package model
  2. import (
  3. "time"
  4. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  5. )
  6. const DefaultUserId = 0
  7. type DataWarning struct {
  8. Id int64 `json:"id"`
  9. PastureId int64 `json:"pastureId"`
  10. UserId int64 `json:"userId"`
  11. Kind string `json:"kind"`
  12. Name string `json:"name"`
  13. Description string `json:"description"`
  14. DataValue string `json:"dataValue"`
  15. DataUpdateAt int64 `json:"dataUpdateAt"`
  16. ConditionUpdateAt int64 `json:"conditionUpdateAt"`
  17. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  18. CreatedAt int64 `json:"createdAt"`
  19. UpdatedAt int64 `json:"updatedAt"`
  20. }
  21. func (d *DataWarning) TableName() string {
  22. return "data_warning"
  23. }
  24. func NewDataWarningList(pastureId, userId int64, req []*pasturePb.WarningDataSet, warningMap map[string]*DataWarning) []*DataWarning {
  25. res := make([]*DataWarning, 0)
  26. isAdd := make(map[string]bool)
  27. for _, v := range req {
  28. if _, ok := isAdd[v.Kind]; ok {
  29. continue
  30. }
  31. isAdd[v.Kind] = true
  32. defaultDataWarning := warningMap[v.Kind]
  33. res = append(res, NewDataWarning(pastureId, userId, v.Kind, v.IsShow, defaultDataWarning))
  34. }
  35. return res
  36. }
  37. func NewDataWarning(pastureId, userId int64, Kind string, isShow pasturePb.IsShow_Kind, defaultDataWarning *DataWarning) *DataWarning {
  38. return &DataWarning{
  39. PastureId: pastureId,
  40. UserId: userId,
  41. Kind: Kind,
  42. Name: defaultDataWarning.Name,
  43. Description: defaultDataWarning.Description,
  44. IsShow: isShow,
  45. }
  46. }
  47. type DataWarningSlice []*DataWarning
  48. func (d DataWarningSlice) ToPB() []*pasturePb.WarningDataShow {
  49. res := make([]*pasturePb.WarningDataShow, 0)
  50. for _, warningData := range d {
  51. if warningData.IsShow != pasturePb.IsShow_Ok {
  52. continue
  53. }
  54. dataUpdateTimeFormat := ""
  55. if warningData.DataUpdateAt > 0 {
  56. dataUpdateTimeFormat = time.Unix(warningData.DataUpdateAt, 0).Local().Format(LayoutTime)
  57. }
  58. res = append(res, &pasturePb.WarningDataShow{
  59. Name: warningData.Name,
  60. Number: warningData.DataValue,
  61. Describe: warningData.Description,
  62. DataUpdateTimeFormat: dataUpdateTimeFormat,
  63. Kind: warningData.Kind,
  64. })
  65. }
  66. return res
  67. }