data_waring.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. UserId int64 `json:"userId"`
  10. Kind string `json:"kind"`
  11. Name string `json:"name"`
  12. Description string `json:"description"`
  13. DataValue string `json:"dataValue"`
  14. DataUpdateAt int64 `json:"dataUpdateAt"`
  15. ConditionUpdateAt int64 `json:"conditionUpdateAt"`
  16. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  17. CreatedAt int64 `json:"createdAt"`
  18. UpdatedAt int64 `json:"updatedAt"`
  19. }
  20. func (d *DataWarning) TableName() string {
  21. return "data_warning"
  22. }
  23. func NewDataWarningList(userId int64, req []*pasturePb.WarningDataSet, warningMap map[string]*DataWarning) []*DataWarning {
  24. res := make([]*DataWarning, 0)
  25. isAdd := make(map[string]bool)
  26. for _, v := range req {
  27. if _, ok := isAdd[v.Kind]; ok {
  28. continue
  29. }
  30. isAdd[v.Kind] = true
  31. defaultDataWarning := warningMap[v.Kind]
  32. res = append(res, NewDataWarning(userId, v.Kind, v.IsShow, defaultDataWarning))
  33. }
  34. return res
  35. }
  36. func NewDataWarning(userId int64, Kind string, isShow pasturePb.IsShow_Kind, defaultDataWarning *DataWarning) *DataWarning {
  37. return &DataWarning{
  38. UserId: userId,
  39. Kind: Kind,
  40. Name: defaultDataWarning.Name,
  41. Description: defaultDataWarning.Description,
  42. IsShow: isShow,
  43. }
  44. }
  45. type DataWarningSlice []*DataWarning
  46. func (d DataWarningSlice) ToPB() []*pasturePb.WarningDataShow {
  47. res := make([]*pasturePb.WarningDataShow, len(d))
  48. for i, warningData := range d {
  49. dataUpdateTimeFormat := ""
  50. if warningData.DataUpdateAt > 0 {
  51. dataUpdateTimeFormat = time.Unix(warningData.DataUpdateAt, 0).Format(LayoutTime)
  52. }
  53. res[i] = &pasturePb.WarningDataShow{
  54. Name: warningData.Name,
  55. Number: warningData.DataValue,
  56. Describe: warningData.Description,
  57. DataUpdateTimeFormat: dataUpdateTimeFormat,
  58. }
  59. }
  60. return res
  61. }