neck_ring.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package crontab
  2. import (
  3. "kpt-pasture/config"
  4. "kpt-pasture/model"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. "gitee.com/xuyiping_admin/pkg/xerr"
  7. )
  8. func (e *Entry) NeckRingData() error {
  9. cfg := config.Options()
  10. limit := cfg.NeckRingLimit
  11. if limit <= 0 {
  12. limit = 10000
  13. }
  14. neckRingList := make([]*model.NeckRingOriginalData, 0)
  15. if err := e.DB.Model(new(model.NeckRingOriginalData)).
  16. Where("is_show = ?", pasturePb.IsShow_No).
  17. Order("id asc").Limit(10000).Find(&neckRingList).Error; err != nil {
  18. return xerr.WithStack(err)
  19. }
  20. if len(neckRingList) <= 0 {
  21. return nil
  22. }
  23. neckRingIds := make([]int64, len(neckRingList))
  24. // 更新已处理过的id
  25. defer func() {
  26. if len(neckRingIds) > 0 {
  27. e.DB.Model(new(model.NeckRingOriginalData)).
  28. Where("id IN ?", neckRingIds).
  29. Update("is_show", pasturePb.IsShow_Ok)
  30. }
  31. }()
  32. for i, v := range neckRingList {
  33. neckRingIds[i] = v.Id
  34. if v.Imei == "" {
  35. continue
  36. }
  37. }
  38. return nil
  39. }
  40. func (e *Entry) NeckRingOriginalDataMerge() {
  41. }