event_check.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package backend
  2. import (
  3. "context"
  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. type EventCheckModel struct {
  9. CowList []*model.Cow
  10. CurrentUser *model.SystemUser
  11. OperationUser *model.SystemUser
  12. }
  13. func (s *StoreEntry) MatingCreateCheck(ctx context.Context, req *pasturePb.EventMating) (*EventCheckModel, error) {
  14. if len(req.CowIds) <= 0 {
  15. return nil, xerr.Custom("请选择相关牛只")
  16. }
  17. cowList, err := s.ParseCowIds(ctx, req.CowIds)
  18. if err != nil {
  19. return nil, xerr.WithStack(err)
  20. }
  21. operationUser, err := s.GetSystemUserById(ctx, int64(req.OperationId))
  22. if err != nil {
  23. return nil, xerr.WithStack(err)
  24. }
  25. currentUser, err := s.GetCurrentSystemUser(ctx)
  26. if err != nil {
  27. return nil, xerr.Customf("获取当前用户失败: %s", err.Error())
  28. }
  29. for _, cow := range cowList {
  30. if cow.Sex != pasturePb.Genders_Female {
  31. return nil, xerr.Customf("牛只: %d,不是母牛", cow.Id)
  32. }
  33. }
  34. return &EventCheckModel{
  35. CowList: cowList,
  36. CurrentUser: currentUser,
  37. OperationUser: operationUser,
  38. }, nil
  39. }