| 
					
				 | 
			
			
				@@ -197,23 +197,24 @@ func (s *StoreEntry) DataWarningSet(ctx context.Context, req *pasturePb.IndexDat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pastureId := userModel.AppPasture.Id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(req.WarningDataSet) <= 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return xerr.Custom("请选择预警数据") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	defaultDataWarning, _ := s.FindDataWarning(ctx, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defaultDataWarning, _ := s.FindDataWarning(ctx, pastureId, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(defaultDataWarning) <= 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return xerr.Custom("默认预警数据不存在,请联系管理员!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	userDataWarningList, err := s.FindDataWarning(ctx, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	userDataWarningList, err := s.FindDataWarning(ctx, pastureId, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(userDataWarningList) <= 0 { // 新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return s.addUserDataWarning(ctx, userModel.SystemUser.Id, defaultDataWarning, req.WarningDataSet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return s.addUserDataWarning(ctx, pastureId, userModel.SystemUser.Id, defaultDataWarning, req.WarningDataSet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return s.updateUserDataWarning(ctx, userModel.SystemUser.Id, userDataWarningList, req.WarningDataSet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -224,13 +225,14 @@ func (s *StoreEntry) DataWarningList(ctx context.Context) (*pasturePb.IndexDataW 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	defaultDataWarning, _ := s.FindDataWarning(ctx, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pastureId := userModel.AppPasture.Id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defaultDataWarning, _ := s.FindDataWarning(ctx, pastureId, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(defaultDataWarning) <= 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, xerr.Custom("默认预警数据有误,请联系管理员!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var isExist bool // 判断是否存在自己的设置的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	userDataWarning, _ := s.FindDataWarning(ctx, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	userDataWarning, _ := s.FindDataWarning(ctx, pastureId, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(userDataWarning) == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 如果用户没有配置自己的预警数据,则使用默认数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		isExist = true 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -255,10 +257,10 @@ func (s *StoreEntry) DataWarningList(ctx context.Context) (*pasturePb.IndexDataW 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	userDataWarningItems := make([]*model.DataWarningItems, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 计算过后重新获取数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if isExist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		userDataWarning, _ = s.FindDataWarning(ctx, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		userDataWarning, _ = s.FindDataWarning(ctx, pastureId, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		userDataWarningItems, _ = s.FindDataWarningItems(ctx, model.DefaultUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		userDataWarning, _ = s.FindDataWarning(ctx, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		userDataWarning, _ = s.FindDataWarning(ctx, pastureId, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		userDataWarningItems, _ = s.FindDataWarningItems(ctx, userModel.SystemUser.Id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -273,7 +275,7 @@ func (s *StoreEntry) DataWarningList(ctx context.Context) (*pasturePb.IndexDataW 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 新增用户预警数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (s *StoreEntry) addUserDataWarning(ctx context.Context, userId int64, defaultDataWarning []*model.DataWarning, warningDataSet []*pasturePb.WarningDataSet) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *StoreEntry) addUserDataWarning(ctx context.Context, pastureId, userId int64, defaultDataWarning []*model.DataWarning, warningDataSet []*pasturePb.WarningDataSet) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 将默认预警数据按 Kind 映射 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	defaultDataWarningMap := make(map[string]*model.DataWarning) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for _, v := range defaultDataWarning { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -284,7 +286,7 @@ func (s *StoreEntry) addUserDataWarning(ctx context.Context, userId int64, defau 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return s.DB.Transaction(func(tx *gorm.DB) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		addedKinds := make(map[string]bool) // 记录已添加的 Kind 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for _, set := range warningDataSet { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dataWarning := model.NewDataWarning(userId, set.Kind, pasturePb.IsShow_Ok, defaultDataWarningMap[set.Kind]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dataWarning := model.NewDataWarning(pastureId, userId, set.Kind, pasturePb.IsShow_Ok, defaultDataWarningMap[set.Kind]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 如果该 Kind 已添加,跳过 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if !addedKinds[set.Kind] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 创建新的预警数据 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -364,10 +366,11 @@ func (s *StoreEntry) updateUserDataWarning(ctx context.Context, userId int64, us 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (s *StoreEntry) FindDataWarning(ctx context.Context, userId int64) ([]*model.DataWarning, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *StoreEntry) FindDataWarning(ctx context.Context, pastureId, userId int64) ([]*model.DataWarning, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	dataWarningList := make([]*model.DataWarning, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err := s.DB.Model(new(model.DataWarning)). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Where("user_id = ?", userId). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Where("pasture_id = ?", pastureId). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Find(&dataWarningList).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -384,8 +387,8 @@ func (s *StoreEntry) FindDataWarningItems(ctx context.Context, userId int64) ([] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return dataWarningItemsList, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (s *StoreEntry) FindDataWarningMap(ctx context.Context, userId int64) (map[int64]*model.DataWarning, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	dataWarning, err := s.FindDataWarning(ctx, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *StoreEntry) FindDataWarningMap(ctx context.Context, pastureId, userId int64) (map[int64]*model.DataWarning, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dataWarning, err := s.FindDataWarning(ctx, pastureId, userId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, xerr.Custom("默认预警数据有误,请联系管理员!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 |