Browse Source

event: enter 入场事件校验

Yi 2 months ago
parent
commit
dbc8197eac

+ 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("请选择相关牛只")

+ 1 - 1
module/crontab/cow_cron.go

@@ -99,7 +99,7 @@ func (e *Entry) Indicators() error {
 		}
 
 		for pastureId, value := range pastureIndicatorList {
-			e.UpdatePastureIndicators(pastureId, indicatorsDetail, startTime, fmt.Sprintf("%d", value))
+			e.UpdatePastureIndicators(pastureId, indicatorsDetail, startTime, value)
 		}
 	}
 

+ 1 - 1
module/crontab/cow_indicators_base.go

@@ -125,7 +125,7 @@ func (e *Entry) FindSalesVolume(pastureList []*model.AppPastureList, startTime,
 }
 
 func (e *Entry) UpdatePastureIndicators(pastureId int64, indicatorsDetails *model.IndicatorsDetails, dateTime int64, value string) {
-	date := time.Unix(dateTime, 0).Format(model.LayoutDate2)
+	date := time.Unix(dateTime, 0).Format(model.LayoutMonth)
 	where := &model.IndicatorsData{
 		PastureId: pastureId,
 		Date:      date,