feeding.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package backend
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "kpt-pasture/model"
  7. feedingPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  8. "gitee.com/xuyiping_admin/pkg/xerr"
  9. )
  10. func (s *StoreEntry) GetFeedingHomepage(ctx context.Context, req *feedingPb.FeedingHomepageRequest) (*feedingPb.FeedingHomepageResponse, error) {
  11. userModel, err := s.GetUserModel(ctx)
  12. if err != nil {
  13. return nil, xerr.WithStack(err)
  14. }
  15. pasture := userModel.AppPasture
  16. if pasture.FeedPastureId == 0 {
  17. return nil, xerr.Customf("饲喂数据未配置")
  18. }
  19. url := fmt.Sprintf("%d/feeding/tmrdata", pasture.FeedPastureId)
  20. response := &model.FeedingHomepageResponse{Data: []*model.FeedingHomepageData{}}
  21. result, err := s.HttpClient.DoGet(url, model.FeedingHeaders)
  22. if err != nil {
  23. return nil, xerr.WithStack(err)
  24. }
  25. if err = json.Unmarshal(result, response); err != nil {
  26. return nil, xerr.WithStack(err)
  27. }
  28. res := &feedingPb.FeedingHomepageResponse{
  29. Code: response.Code,
  30. Msg: response.Msg,
  31. Data: &feedingPb.FeedingHomepageData{},
  32. }
  33. for _, v := range response.Data {
  34. res.Data = &feedingPb.FeedingHomepageData{
  35. Cost: v.Cost,
  36. DoneTimes: v.DoneTimes,
  37. DoneWeight: v.DoneWeight,
  38. MonRateHL: v.MonRateHL,
  39. MonRateSL: v.MonRateSL,
  40. MonRateSLR: v.MonRateSLR,
  41. Montime: v.Montime,
  42. PlanTimes: v.PlanTimes,
  43. PlanWeight: v.PlanWeight,
  44. Temtime: v.Temtime,
  45. TotalCost: v.TotalCost,
  46. YesRateHL: v.YesRateHL,
  47. YesRateSL: v.YesRateSL,
  48. YesRateSLR: v.YesRateSLR,
  49. }
  50. }
  51. return res, nil
  52. }
  53. func (s *StoreEntry) GetFeedingManagement(ctx context.Context, req *feedingPb.FeedingManagementRequest) (*feedingPb.FeedingManagementResponse, error) {
  54. userModel, err := s.GetUserModel(ctx)
  55. if err != nil {
  56. return nil, xerr.WithStack(err)
  57. }
  58. pasture := userModel.AppPasture
  59. if pasture.FeedPastureId == 0 {
  60. return nil, xerr.Customf("饲喂数据未配置")
  61. }
  62. url := fmt.Sprintf("%d/feeding/management?typea=%s&startdate=%s&enddate=%s", pasture.FeedPastureId, req.Typea, req.Startdate, req.Enddate)
  63. response := &model.FeedingManagementResponse{Data: []*model.FeedingManagementData{}}
  64. result, err := s.HttpClient.DoGet(url, model.FeedingHeaders)
  65. if err != nil {
  66. return nil, xerr.WithStack(err)
  67. }
  68. if err = json.Unmarshal(result, response); err != nil {
  69. return nil, xerr.WithStack(err)
  70. }
  71. res := &feedingPb.FeedingManagementResponse{
  72. Code: response.Code,
  73. Msg: response.Msg,
  74. Data: []*feedingPb.FeedingManagementData{},
  75. }
  76. for _, v := range response.Data {
  77. res.Data = append(res.Data, &feedingPb.FeedingManagementData{
  78. Actualweightminus: v.ActualWeightMinus,
  79. Ccount: v.CCount,
  80. Cost: v.Cost,
  81. Dryweight: v.DryWeight,
  82. Totalcost: v.TotalCost,
  83. Typea: v.TypeA,
  84. })
  85. }
  86. return res, nil
  87. }