sql.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package mqtt
  2. import (
  3. "kpt-pasture/model"
  4. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  5. )
  6. // NeckRingIsBind 脖环是否绑定
  7. func (e *Entry) NeckRingIsBind(number string) bool {
  8. var count int64 = 0
  9. if err := e.DB.Model(new(model.NeckRing)).Where("number = ?", number).
  10. Where("status != ?", pasturePb.NeckRingStatus_Unbind).
  11. Count(&count).Error; err != nil {
  12. return false
  13. }
  14. if count > 0 {
  15. return true
  16. }
  17. return false
  18. }
  19. func (e *Entry) GetCowInfoByImei(imei string) *model.Cow {
  20. res := &model.Cow{}
  21. if err := e.DB.Model(new(model.Cow)).Where("neck_ring_number = ?", imei).First(res).Error; err != nil {
  22. return nil
  23. }
  24. return res
  25. }
  26. func (e *Entry) GetSystemConfigure(name string) *model.SystemConfigure {
  27. res := &model.SystemConfigure{}
  28. if err := e.DB.Model(new(model.SystemConfigure)).
  29. Where("name = ?", name).
  30. Where("is_show = ?", pasturePb.IsShow_Ok).
  31. First(res).Error; err != nil {
  32. return nil
  33. }
  34. return res
  35. }
  36. func (e *Entry) IsExistNeckActiveHabit(neckRingNumber, heatDate string, frameId int32) (*model.NeckActiveHabit, int64) {
  37. count := int64(0)
  38. neckRingProcess := &model.NeckRingProcess{}
  39. if err := e.DB.Model(new(model.NeckRingProcess)).
  40. Where("neck_ring_number = ?", neckRingNumber).
  41. Where("heat_date = ?", heatDate).
  42. Where("frameid = ?", frameId).
  43. Count(&count).Error; err != nil {
  44. return nil, 0
  45. }
  46. res := &model.NeckActiveHabit{}
  47. if neckRingProcess != nil && neckRingProcess.HabitId > 0 {
  48. if err := e.DB.Model(new(model.NeckActiveHabit)).Where("id = ?", neckRingProcess.HabitId).First(res).Error; err != nil {
  49. return nil, 0
  50. }
  51. }
  52. return res, count
  53. }