瀏覽代碼

crontab: neck_ring update

Yi 1 月之前
父節點
當前提交
dbff0a2699
共有 4 個文件被更改,包括 25 次插入16 次删除
  1. 1 1
      http/route/system_api.go
  2. 5 3
      model/data_waring.go
  3. 4 0
      model/data_warning_items.go
  4. 15 12
      module/backend/dashboard.go

+ 1 - 1
http/route/system_api.go

@@ -62,6 +62,6 @@ func SystemAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 func authRouteGroup(s *gin.Engine, relativePath string) *gin.RouterGroup {
 func authRouteGroup(s *gin.Engine, relativePath string) *gin.RouterGroup {
 	group := s.Group(relativePath)
 	group := s.Group(relativePath)
 	// 中间件鉴权
 	// 中间件鉴权
-	group.Use(middleware.RequireAdmin(), middleware.GinLogger())
+	group.Use(middleware.RequireAdmin(), middleware.GinLogger(), middleware.Pagination())
 	return group
 	return group
 }
 }

+ 5 - 3
model/data_waring.go

@@ -10,6 +10,7 @@ const DefaultUserId = 0
 
 
 type DataWarning struct {
 type DataWarning struct {
 	Id                int64                 `json:"id"`
 	Id                int64                 `json:"id"`
+	PastureId         int64                 `json:"pastureId"`
 	UserId            int64                 `json:"userId"`
 	UserId            int64                 `json:"userId"`
 	Kind              string                `json:"kind"`
 	Kind              string                `json:"kind"`
 	Name              string                `json:"name"`
 	Name              string                `json:"name"`
@@ -26,7 +27,7 @@ func (d *DataWarning) TableName() string {
 	return "data_warning"
 	return "data_warning"
 }
 }
 
 
-func NewDataWarningList(userId int64, req []*pasturePb.WarningDataSet, warningMap map[string]*DataWarning) []*DataWarning {
+func NewDataWarningList(pastureId, userId int64, req []*pasturePb.WarningDataSet, warningMap map[string]*DataWarning) []*DataWarning {
 	res := make([]*DataWarning, 0)
 	res := make([]*DataWarning, 0)
 	isAdd := make(map[string]bool)
 	isAdd := make(map[string]bool)
 	for _, v := range req {
 	for _, v := range req {
@@ -35,13 +36,14 @@ func NewDataWarningList(userId int64, req []*pasturePb.WarningDataSet, warningMa
 		}
 		}
 		isAdd[v.Kind] = true
 		isAdd[v.Kind] = true
 		defaultDataWarning := warningMap[v.Kind]
 		defaultDataWarning := warningMap[v.Kind]
-		res = append(res, NewDataWarning(userId, v.Kind, v.IsShow, defaultDataWarning))
+		res = append(res, NewDataWarning(pastureId, userId, v.Kind, v.IsShow, defaultDataWarning))
 	}
 	}
 	return res
 	return res
 }
 }
 
 
-func NewDataWarning(userId int64, Kind string, isShow pasturePb.IsShow_Kind, defaultDataWarning *DataWarning) *DataWarning {
+func NewDataWarning(pastureId, userId int64, Kind string, isShow pasturePb.IsShow_Kind, defaultDataWarning *DataWarning) *DataWarning {
 	return &DataWarning{
 	return &DataWarning{
+		PastureId:   pastureId,
 		UserId:      userId,
 		UserId:      userId,
 		Kind:        Kind,
 		Kind:        Kind,
 		Name:        defaultDataWarning.Name,
 		Name:        defaultDataWarning.Name,

+ 4 - 0
model/data_warning_items.go

@@ -47,6 +47,10 @@ func (d DataWarningItemsSlice) ToPB(dataWarning []*DataWarning) []*pasturePb.War
 				kind = w.Kind
 				kind = w.Kind
 			}
 			}
 		}
 		}
+
+		if name == "" || v.Id <= 0 {
+			continue
+		}
 		res[i] = &pasturePb.WarningDataSet{
 		res[i] = &pasturePb.WarningDataSet{
 			Id:        int32(v.Id),
 			Id:        int32(v.Id),
 			WarningId: int32(v.WarningId),
 			WarningId: int32(v.WarningId),

+ 15 - 12
module/backend/dashboard.go

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