dashboard.go 916 B

1234567891011121314151617181920212223242526272829303132333435
  1. package backend
  2. import (
  3. "context"
  4. "kpt-pasture/model"
  5. "net/http"
  6. "gitee.com/xuyiping_admin/pkg/xerr"
  7. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  8. )
  9. func (s *StoreEntry) Bar(ctx context.Context) (*pasturePb.BarCowStructResponse, error) {
  10. barCowStructList := make([]*model.BarCowStruct, 0)
  11. var count int32 = 0
  12. if err := s.DB.Model(new(model.Cow)).Select("COUNT(*) AS number ,cow_type").
  13. Where("admission_status = ?", pasturePb.AdmissionStatus_Admission).
  14. Group("cow_type").
  15. Find(&barCowStructList).Error; err != nil {
  16. return nil, xerr.WithStack(err)
  17. }
  18. cowTypeMap := s.CowTypeMap()
  19. for _, v := range barCowStructList {
  20. count += v.Number
  21. }
  22. return &pasturePb.BarCowStructResponse{
  23. Code: http.StatusOK,
  24. Message: "ok",
  25. Data: &pasturePb.BarCowStructData{
  26. List: model.BarCowStructSlice(barCowStructList).ToPB(cowTypeMap, count),
  27. Total: 38563,
  28. },
  29. }, nil
  30. }