analysis_more.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package backend
  2. import (
  3. "context"
  4. "fmt"
  5. "kpt-pasture/model"
  6. "net/http"
  7. "time"
  8. "gitee.com/xuyiping_admin/pkg/xerr"
  9. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  10. )
  11. func (s *StoreEntry) PenBehavior(ctx context.Context, req *pasturePb.BarnBehaviorCurveRequest) (*pasturePb.BarnBehaviorCurveResponse, error) {
  12. userModel, err := s.GetUserModel(ctx)
  13. if err != nil {
  14. return nil, err
  15. }
  16. if req.StartAt == 0 || req.EndAt == 0 || req.EndAt < req.StartAt {
  17. return nil, xerr.Customf("时间范围错误")
  18. }
  19. startTime := time.Unix(int64(req.StartAt), 0).Format(model.LayoutDate2)
  20. endTime := time.Unix(int64(req.EndAt), 0).Format(model.LayoutDate2)
  21. penBehaviorList := make([]*model.PenBehavior, 0)
  22. if err = s.DB.Model(new(model.PenBehavior)).
  23. Where("pasture_id = ?", userModel.AppPasture.Id).
  24. Where("pen_id = ?", req.BarnId).
  25. Where("heat_date BETWEEN ? AND ?", startTime, endTime).
  26. Find(&penBehaviorList).Error; err != nil {
  27. return nil, err
  28. }
  29. return &pasturePb.BarnBehaviorCurveResponse{
  30. Code: http.StatusOK,
  31. Msg: "ok",
  32. Data: model.PenBehaviorSlice(penBehaviorList).ToPB(),
  33. }, nil
  34. }
  35. func (s *StoreEntry) PenBehaviorDaily(ctx context.Context, req *pasturePb.BarnMonitorRequest) (*pasturePb.BarnMonitorResponse, error) {
  36. userModel, err := s.GetUserModel(ctx)
  37. if err != nil {
  38. return nil, xerr.WithStack(err)
  39. }
  40. fmt.Println("userModel", userModel)
  41. return nil, err
  42. }