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