|  | @@ -230,7 +230,7 @@ func (s *StoreEntry) DataWarningSet(ctx context.Context, req *pasturePb.IndexDat
 | 
	
		
			
				|  |  |  	if len(userDataWarningList) <= 0 { // 新增
 | 
	
		
			
				|  |  |  		return s.addUserDataWarning(ctx, pastureId, userModel.SystemUser.Id, defaultDataWarning, req.WarningDataSet)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	return s.updateUserDataWarning(ctx, userModel.SystemUser.Id, userDataWarningList, req.WarningDataSet)
 | 
	
		
			
				|  |  | +	return s.updateUserDataWarning(ctx, pastureId, userModel.SystemUser.Id, userDataWarningList, req.WarningDataSet)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (s *StoreEntry) DataWarningList(ctx context.Context) (*pasturePb.IndexDataWarningResponse, error) {
 | 
	
	
		
			
				|  | @@ -247,6 +247,12 @@ func (s *StoreEntry) DataWarningList(ctx context.Context) (*pasturePb.IndexDataW
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	var isExist bool // 判断是否存在自己的设置的数据
 | 
	
		
			
				|  |  |  	userDataWarning, _ := s.FindDataWarning(ctx, pastureId, userModel.SystemUser.Id)
 | 
	
		
			
				|  |  | +	zaplog.Info("defaultDataWarning",
 | 
	
		
			
				|  |  | +		zap.Any("defaultDataWarning", defaultDataWarning),
 | 
	
		
			
				|  |  | +		zap.Any("pastureId", pastureId),
 | 
	
		
			
				|  |  | +		zap.Any("userDataWarning", userDataWarning),
 | 
	
		
			
				|  |  | +		zap.Any("userId", userModel.SystemUser.Id),
 | 
	
		
			
				|  |  | +	)
 | 
	
		
			
				|  |  |  	if len(userDataWarning) == 0 {
 | 
	
		
			
				|  |  |  		// 如果用户没有配置自己的预警数据,则使用默认数据
 | 
	
		
			
				|  |  |  		isExist = true
 | 
	
	
		
			
				|  | @@ -265,17 +271,17 @@ func (s *StoreEntry) DataWarningList(ctx context.Context) (*pasturePb.IndexDataW
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 需要重新计算更新的warningId
 | 
	
		
			
				|  |  |  	if len(needUpdateWarningIds) > 0 {
 | 
	
		
			
				|  |  | -		s.UpdateWarningData(ctx, needUpdateWarningIds)
 | 
	
		
			
				|  |  | +		s.UpdateWarningData(ctx, pastureId, needUpdateWarningIds)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	userDataWarningItems := make([]*model.DataWarningItems, 0)
 | 
	
		
			
				|  |  |  	// 计算过后重新获取数据
 | 
	
		
			
				|  |  |  	if isExist {
 | 
	
		
			
				|  |  |  		userDataWarning, _ = s.FindDataWarning(ctx, pastureId, model.DefaultUserId)
 | 
	
		
			
				|  |  | -		userDataWarningItems, _ = s.FindDataWarningItems(ctx, model.DefaultUserId)
 | 
	
		
			
				|  |  | +		userDataWarningItems, _ = s.FindDataWarningItems(ctx, pastureId, model.DefaultUserId)
 | 
	
		
			
				|  |  |  	} else {
 | 
	
		
			
				|  |  |  		userDataWarning, _ = s.FindDataWarning(ctx, pastureId, userModel.SystemUser.Id)
 | 
	
		
			
				|  |  | -		userDataWarningItems, _ = s.FindDataWarningItems(ctx, userModel.SystemUser.Id)
 | 
	
		
			
				|  |  | +		userDataWarningItems, _ = s.FindDataWarningItems(ctx, pastureId, userModel.SystemUser.Id)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return &pasturePb.IndexDataWarningResponse{
 | 
	
	
		
			
				|  | @@ -319,7 +325,7 @@ func (s *StoreEntry) addUserDataWarning(ctx context.Context, pastureId, userId i
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			// 创建预警项数据
 | 
	
		
			
				|  |  | -			if err := tx.Create(model.NewDataWarningItems(userId, dataWarning, set)).Error; err != nil {
 | 
	
		
			
				|  |  | +			if err := tx.Create(model.NewDataWarningItems(pastureId, userId, dataWarning, set)).Error; err != nil {
 | 
	
		
			
				|  |  |  				return xerr.WithStack(err)
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			addedKinds[set.Kind] = true
 | 
	
	
		
			
				|  | @@ -330,7 +336,7 @@ func (s *StoreEntry) addUserDataWarning(ctx context.Context, pastureId, userId i
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 更新用户预警数据
 | 
	
		
			
				|  |  | -func (s *StoreEntry) updateUserDataWarning(ctx context.Context, userId int64, userDataWarningList []*model.DataWarning, warningDataSet []*pasturePb.WarningDataSet) error {
 | 
	
		
			
				|  |  | +func (s *StoreEntry) updateUserDataWarning(ctx context.Context, pastureId, userId int64, userDataWarningList []*model.DataWarning, warningDataSet []*pasturePb.WarningDataSet) error {
 | 
	
		
			
				|  |  |  	// 将请求数据按 WarningId 和 Id 映射
 | 
	
		
			
				|  |  |  	warningIsShowMap := make(map[int32]pasturePb.IsShow_Kind)
 | 
	
		
			
				|  |  |  	warningItemDataMap := make(map[int32]*pasturePb.WarningDataSet)
 | 
	
	
		
			
				|  | @@ -340,7 +346,7 @@ func (s *StoreEntry) updateUserDataWarning(ctx context.Context, userId int64, us
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 获取用户预警项数据
 | 
	
		
			
				|  |  | -	userDataWarningItems, err := s.FindDataWarningItems(ctx, userId)
 | 
	
		
			
				|  |  | +	userDataWarningItems, err := s.FindDataWarningItems(ctx, pastureId, userId)
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		return xerr.WithStack(err)
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -385,16 +391,19 @@ func (s *StoreEntry) FindDataWarning(ctx context.Context, pastureId, userId int6
 | 
	
		
			
				|  |  |  	if err := s.DB.Model(new(model.DataWarning)).
 | 
	
		
			
				|  |  |  		Where("user_id = ?", userId).
 | 
	
		
			
				|  |  |  		Where("pasture_id = ?", pastureId).
 | 
	
		
			
				|  |  | +		Where("is_show = ?", pasturePb.IsShow_Ok).
 | 
	
		
			
				|  |  |  		Find(&dataWarningList).Error; err != nil {
 | 
	
		
			
				|  |  |  		return nil, xerr.WithStack(err)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	return dataWarningList, nil
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func (s *StoreEntry) FindDataWarningItems(ctx context.Context, userId int64) ([]*model.DataWarningItems, error) {
 | 
	
		
			
				|  |  | +func (s *StoreEntry) FindDataWarningItems(ctx context.Context, pastureId, userId int64) ([]*model.DataWarningItems, error) {
 | 
	
		
			
				|  |  |  	dataWarningItemsList := make([]*model.DataWarningItems, 0)
 | 
	
		
			
				|  |  |  	if err := s.DB.Model(new(model.DataWarningItems)).
 | 
	
		
			
				|  |  | +		Where("pasture_id = ?", pastureId).
 | 
	
		
			
				|  |  |  		Where("user_id = ?", userId).
 | 
	
		
			
				|  |  | +		Where("is_show = ?", pasturePb.IsShow_Ok).
 | 
	
		
			
				|  |  |  		Find(&dataWarningItemsList).Error; err != nil {
 | 
	
		
			
				|  |  |  		return nil, xerr.WithStack(err)
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -428,7 +437,7 @@ func (s *StoreEntry) FindDataWarningItemsMap(ctx context.Context, userId int64)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // UpdateWarningData 更新计算数据
 | 
	
		
			
				|  |  | -func (s *StoreEntry) UpdateWarningData(ctx context.Context, needUpdateWarningIds []int64) {
 | 
	
		
			
				|  |  | +func (s *StoreEntry) UpdateWarningData(ctx context.Context, pastureId int64, needUpdateWarningIds []int64) {
 | 
	
		
			
				|  |  |  	if len(needUpdateWarningIds) <= 0 {
 | 
	
		
			
				|  |  |  		return
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -441,7 +450,10 @@ func (s *StoreEntry) UpdateWarningData(ctx context.Context, needUpdateWarningIds
 | 
	
		
			
				|  |  |  			continue
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		var count int64
 | 
	
		
			
				|  |  | -		if err = s.DB.Model(new(model.Cow)).Where(query, params...).Count(&count).Error; err != nil {
 | 
	
		
			
				|  |  | +		if err = s.DB.Model(new(model.Cow)).
 | 
	
		
			
				|  |  | +			Where("pasture_id = ?", pastureId).
 | 
	
		
			
				|  |  | +			Where(query, params...).
 | 
	
		
			
				|  |  | +			Count(&count).Error; err != nil {
 | 
	
		
			
				|  |  |  			zaplog.Error("UpdateWarningData", zap.Any("err", err), zap.Any("query", query), zap.Any("params", params))
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 |