|
@@ -193,6 +193,89 @@ func (s *StoreEntry) DataWarningPop(ctx context.Context, req *pasturePb.WarningD
|
|
return resp, nil
|
|
return resp, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+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)
|
|
|
|
+ }
|
|
|
|
+ return dataWarningList, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+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).
|
|
|
|
+ Find(&dataWarningItemsList).Error; err != nil {
|
|
|
|
+ return nil, xerr.WithStack(err)
|
|
|
|
+ }
|
|
|
|
+ return dataWarningItemsList, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+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("默认预警数据有误,请联系管理员!")
|
|
|
|
+ }
|
|
|
|
+ dataWarningMap := make(map[int64]*model.DataWarning)
|
|
|
|
+ for _, v := range dataWarning {
|
|
|
|
+ dataWarningMap[v.Id] = v
|
|
|
|
+ }
|
|
|
|
+ return dataWarningMap, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func (s *StoreEntry) FindDataWarningItemsMap(ctx context.Context, userId int64) (map[int64]*model.DataWarningItems, error) {
|
|
|
|
+ dataWarningItemsList := make([]*model.DataWarningItems, 0)
|
|
|
|
+ if err := s.DB.Model(new(model.DataWarningItems)).
|
|
|
|
+ Where("user_id = ?", userId).
|
|
|
|
+ Find(&dataWarningItemsList).Error; err != nil {
|
|
|
|
+ return nil, xerr.WithStack(err)
|
|
|
|
+ }
|
|
|
|
+ dataWarningItemsMap := make(map[int64]*model.DataWarningItems)
|
|
|
|
+ for _, v := range dataWarningItemsList {
|
|
|
|
+ dataWarningItemsMap[v.Id] = v
|
|
|
|
+ }
|
|
|
|
+ return dataWarningItemsMap, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// UpdateWarningData 更新计算数据
|
|
|
|
+func (s *StoreEntry) UpdateWarningData(ctx context.Context, pastureId int64, needUpdateWarningIds []int64) {
|
|
|
|
+ if len(needUpdateWarningIds) <= 0 {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ for _, warningId := range needUpdateWarningIds {
|
|
|
|
+ query, params, err := s.BuildQuery(warningId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ zaplog.Error("UpdateWarningData", zap.Any("BuildQuery", err), zap.Any("warningId", warningId))
|
|
|
|
+ }
|
|
|
|
+ if len(query) == 0 || len(params) == 0 {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ zaplog.Info("UpdateWarningData", zap.Any("query", query), zap.Any("params", params))
|
|
|
|
+
|
|
|
|
+ var count int64
|
|
|
|
+ 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))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if err = s.DB.Model(new(model.DataWarning)).
|
|
|
|
+ Where("id = ?", warningId).
|
|
|
|
+ Updates(map[string]interface{}{
|
|
|
|
+ "data_value": count,
|
|
|
|
+ "data_update_at": time.Now().Local().Unix(),
|
|
|
|
+ }).Error; err != nil {
|
|
|
|
+ zaplog.Error("UpdateWarningData", zap.Any("update", err))
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
// 新增用户预警数据
|
|
// 新增用户预警数据
|
|
func (s *StoreEntry) addUserDataWarning(ctx context.Context, pastureId, 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 映射
|
|
// 将默认预警数据按 Kind 映射
|
|
@@ -300,86 +383,3 @@ func (s *StoreEntry) updateUserDataWarning(ctx context.Context, pastureId, userI
|
|
return nil
|
|
return nil
|
|
})
|
|
})
|
|
}
|
|
}
|
|
-
|
|
|
|
-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)
|
|
|
|
- }
|
|
|
|
- return dataWarningList, nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-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).
|
|
|
|
- Find(&dataWarningItemsList).Error; err != nil {
|
|
|
|
- return nil, xerr.WithStack(err)
|
|
|
|
- }
|
|
|
|
- return dataWarningItemsList, nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-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("默认预警数据有误,请联系管理员!")
|
|
|
|
- }
|
|
|
|
- dataWarningMap := make(map[int64]*model.DataWarning)
|
|
|
|
- for _, v := range dataWarning {
|
|
|
|
- dataWarningMap[v.Id] = v
|
|
|
|
- }
|
|
|
|
- return dataWarningMap, nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func (s *StoreEntry) FindDataWarningItemsMap(ctx context.Context, userId int64) (map[int64]*model.DataWarningItems, error) {
|
|
|
|
- dataWarningItemsList := make([]*model.DataWarningItems, 0)
|
|
|
|
- if err := s.DB.Model(new(model.DataWarningItems)).
|
|
|
|
- Where("user_id = ?", userId).
|
|
|
|
- Find(&dataWarningItemsList).Error; err != nil {
|
|
|
|
- return nil, xerr.WithStack(err)
|
|
|
|
- }
|
|
|
|
- dataWarningItemsMap := make(map[int64]*model.DataWarningItems)
|
|
|
|
- for _, v := range dataWarningItemsList {
|
|
|
|
- dataWarningItemsMap[v.Id] = v
|
|
|
|
- }
|
|
|
|
- return dataWarningItemsMap, nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// UpdateWarningData 更新计算数据
|
|
|
|
-func (s *StoreEntry) UpdateWarningData(ctx context.Context, pastureId int64, needUpdateWarningIds []int64) {
|
|
|
|
- if len(needUpdateWarningIds) <= 0 {
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- for _, warningId := range needUpdateWarningIds {
|
|
|
|
- query, params, err := s.BuildQuery(warningId)
|
|
|
|
- if err != nil {
|
|
|
|
- zaplog.Error("UpdateWarningData", zap.Any("BuildQuery", err), zap.Any("warningId", warningId))
|
|
|
|
- }
|
|
|
|
- if len(query) == 0 || len(params) == 0 {
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- zaplog.Info("UpdateWarningData", zap.Any("query", query), zap.Any("params", params))
|
|
|
|
-
|
|
|
|
- var count int64
|
|
|
|
- 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))
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if err = s.DB.Model(new(model.DataWarning)).
|
|
|
|
- Where("id = ?", warningId).
|
|
|
|
- Updates(map[string]interface{}{
|
|
|
|
- "data_value": count,
|
|
|
|
- "data_update_at": time.Now().Local().Unix(),
|
|
|
|
- }).Error; err != nil {
|
|
|
|
- zaplog.Error("UpdateWarningData", zap.Any("update", err))
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|