Browse Source

event: enter 入场事件校验

Yi 2 tháng trước cách đây
mục cha
commit
d415135c25

+ 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)
 		return xerr.WithStack(err)
 	}
 	}
 
 
+	if err = s.EnterCheck(ctx, req); err != nil {
+		return xerr.WithStack(err)
+	}
+
 	req.MessengerId = int32(userModel.SystemUser.Id)
 	req.MessengerId = int32(userModel.SystemUser.Id)
 	req.MessengerName = userModel.SystemUser.Name
 	req.MessengerName = userModel.SystemUser.Name
 	if req.OperationId > 0 {
 	if req.OperationId > 0 {

+ 11 - 0
module/backend/event_check.go

@@ -40,6 +40,17 @@ type MatingTimes struct {
 	EventMatingId int64
 	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) {
 func (s *StoreEntry) MatingCreateCheck(ctx context.Context, req *pasturePb.EventMating) (*EventCheckBatchModel, error) {
 	if len(req.CowIds) <= 0 {
 	if len(req.CowIds) <= 0 {
 		return nil, xerr.Custom("请选择相关牛只")
 		return nil, xerr.Custom("请选择相关牛只")