|
@@ -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("默认预警数据有误,请联系管理员!")
|
|
|
}
|