Bläddra i källkod

crontab: neckRing 脖环算法更新

Yi 3 dagar sedan
förälder
incheckning
3dba10c28f
1 ändrade filer med 18 tillägg och 3 borttagningar
  1. 18 3
      module/crontab/neck_ring_calculate.go

+ 18 - 3
module/crontab/neck_ring_calculate.go

@@ -203,7 +203,8 @@ func (e *Entry) FirstFilterUpdate(pastureId int64, xToDay *XToday) (processIds [
 func (e *Entry) SecondUpdateChangeFilter(pastureId int64, processIds []int64, xToday *XToday) {
 	newChangeFilterList := make([]*ChangeFilterData, 0)
 	if err := e.DB.Model(new(model.NeckActiveHabit)).
-		Select("id", "neck_ring_number", "change_high", "change_filter", "rumina_filter", "change_rumina", "chew_filter", "change_chew", "heat_date", "frameid", "IF(lact = 0, 0.8, 1) as xlc_dis_count").
+		Select("id", "neck_ring_number", "change_high", "change_filter", "rumina_filter", "change_rumina",
+			"chew_filter", "change_chew", "heat_date", "frameid", "IF(lact = 0, 0.8, 1) as xlc_dis_count").
 		Where("pasture_id = ?", pastureId).
 		Where("id IN (?)", processIds).
 		Where("change_filter = ?", model.InitChangeFilter).
@@ -243,7 +244,8 @@ func (e *Entry) SecondUpdateChangeFilter(pastureId int64, processIds []int64, xT
 
 		changeFilter := float64(v.ChangeFilter)
 		if v.ChangeFilter <= MinChangeFilter {
-			changeFilter = float64(secondFilterData.ChangeFilter)*(1-xChangeDiscount*v.XlcDisCount) + math.Min(float64(v.ChangeHigh), float64(secondFilterData.ChangeFilter)+135)*xChangeDiscount*v.XlcDisCount
+			changeFilter = float64(secondFilterData.ChangeFilter)*(1-xChangeDiscount*v.XlcDisCount) +
+				math.Min(float64(v.ChangeHigh), float64(secondFilterData.ChangeFilter)+135)*xChangeDiscount*v.XlcDisCount
 		}
 
 		ruminaFilter := float64(v.RuminaFilter)
@@ -261,11 +263,24 @@ func (e *Entry) SecondUpdateChangeFilter(pastureId int64, processIds []int64, xT
 		if math.Abs(float64(v.ChangeChew)) > 60 {
 			chewFilterDiscount = 0.5
 		}
-		chewFilter = float64(secondFilterData.ChewFilter)*(1-xRuminaDisc*chewFilterDiscount) + float64(v.ChangeChew)*xRuminaDisc*chewFilterDiscount
+		chewFilter = float64(secondFilterData.ChewFilter)*(1-xRuminaDisc*chewFilterDiscount) +
+			float64(v.ChangeChew)*xRuminaDisc*chewFilterDiscount
 		if chewFilter > 50 {
 			chewFilter = 50
 		}
 
+		zaplog.Info("SecondUpdateChangeFilter",
+			zap.Any("NeckActiveHabit", v),
+			zap.Any("discount", discount),
+			zap.Any("xChangeDiscount", xChangeDiscount),
+			zap.Any("xRuminaDisc", xRuminaDisc),
+			zap.Any("chewFilterDiscount", chewFilterDiscount),
+			zap.Any("secondFilterData", secondFilterData),
+			zap.Any("changeFilter", changeFilter),
+			zap.Any("ruminaFilter", ruminaFilter),
+			zap.Any("chewFilter", chewFilter),
+		)
+
 		if err := e.DB.Model(new(model.NeckActiveHabit)).
 			Select("change_filter", "rumina_filter", "chew_filter").
 			Where("id = ?", v.Id).