|
- package db2
-
- import (
- "time"
-
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- )
-
- type HubDB struct {
- *DB
- }
-
- func (db *DB) Hub() *HubDB {
- return &HubDB{DB: db}
- }
-
- func (*HubDB) GetAllHubs(ctx SQLContext) ([]cdssdk.Hub, error) {
- var ret []cdssdk.Hub
-
- err := ctx.Table("Hub").Find(&ret).Error
- return ret, err
- }
-
- func (*HubDB) GetByID(ctx SQLContext, hubID cdssdk.HubID) (cdssdk.Hub, error) {
- var ret cdssdk.Hub
- err := ctx.Table("Hub").Where("HubID = ?", hubID).Find(&ret).Error
-
- return ret, err
- }
-
- func (*HubDB) BatchGetByID(ctx SQLContext, hubIDs []cdssdk.HubID) ([]cdssdk.Hub, error) {
- var ret []cdssdk.Hub
- err := ctx.Table("Hub").Where("HubID IN (?)", hubIDs).Find(&ret).Error
-
- return ret, err
- }
-
- // GetUserHubs 根据用户id查询可用hub
- func (*HubDB) GetUserHubs(ctx SQLContext, userID cdssdk.UserID) ([]cdssdk.Hub, error) {
- var hubs []cdssdk.Hub
- err := ctx.
- Table("Hub").
- Select("Hub.*").
- Joins("JOIN UserHub ON UserHub.HubID = Hub.HubID").
- Where("UserHub.UserID = ?", userID).
- Find(&hubs).Error
- return hubs, err
- }
-
- // UpdateState 更新状态,并且设置上次上报时间为现在
- func (*HubDB) UpdateState(ctx SQLContext, hubID cdssdk.HubID, state string) error {
- err := ctx.
- Model(&cdssdk.Hub{}).
- Where("HubID = ?", hubID).
- Updates(map[string]interface{}{
- "State": state,
- "LastReportTime": time.Now(),
- }).Error
- return err
- }
|