Ver Fonte

event: enter 入场事件校验

Yi há 1 mês atrás
pai
commit
d415135c25
2 ficheiros alterados com 15 adições e 0 exclusões
  1. 4 0
      module/backend/event_base.go
  2. 11 0
      module/backend/event_check.go

+ 4 - 0
module/backend/event_base.go

@@ -83,6 +83,10 @@ func (s *StoreEntry) CreateEnter(ctx context.Context, req *pasturePb.EventEnterR
 		return xerr.WithStack(err)
 	}
 
+	if err = s.EnterCheck(ctx, req); err != nil {
+		return xerr.WithStack(err)
+	}
+
 	req.MessengerId = int32(userModel.SystemUser.Id)
 	req.MessengerName = userModel.SystemUser.Name
 	if req.OperationId > 0 {

+ 11 - 0
module/backend/event_check.go

@@ -40,6 +40,17 @@ type MatingTimes struct {
 	EventMatingId int64
 }
 
+func (s *StoreEntry) EnterCheck(ctx context.Context, req *pasturePb.EventEnterRequest) error {
+	var count int64
+	if err := s.DB.Model(new(model.Cow)).Where("ear_number = ?", req.EarNumber).Count(&count).Error; err != nil {
+		return xerr.WithStack(err)
+	}
+	if count > 0 {
+		return xerr.Custom("该牛只已存在")
+	}
+	return nil
+}
+
 func (s *StoreEntry) MatingCreateCheck(ctx context.Context, req *pasturePb.EventMating) (*EventCheckBatchModel, error) {
 	if len(req.CowIds) <= 0 {
 		return nil, xerr.Custom("请选择相关牛只")