Bläddra i källkod

dashboard: update

ping 1 månad sedan
förälder
incheckning
e706783e29
2 ändrade filer med 25 tillägg och 11 borttagningar
  1. 3 1
      model/data_warning_items.go
  2. 22 10
      module/backend/dashboard.go

+ 3 - 1
model/data_warning_items.go

@@ -6,6 +6,7 @@ import (
 
 type DataWarningItems struct {
 	Id        int64                 `json:"id"`
+	PastureId int64                 `json:"pastureId"`
 	UserId    int64                 `json:"userId"`
 	WarningId int64                 `json:"warningId"`
 	GroupId   int32                 `json:"groupId"`
@@ -22,8 +23,9 @@ func (d *DataWarningItems) TableName() string {
 	return "data_warning_items"
 }
 
-func NewDataWarningItems(userId int64, dataWarning *DataWarning, req *pasturePb.WarningDataSet) *DataWarningItems {
+func NewDataWarningItems(pastureId, userId int64, dataWarning *DataWarning, req *pasturePb.WarningDataSet) *DataWarningItems {
 	return &DataWarningItems{
+		PastureId: pastureId,
 		UserId:    userId,
 		WarningId: dataWarning.Id,
 		GroupId:   req.GroupId,

+ 22 - 10
module/backend/dashboard.go

@@ -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))
 		}