|
- package db2
-
- import (
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- "time"
- )
-
- type NodeDB struct {
- *DB
- }
-
- func (nodeDB *DB) Node() *NodeDB {
- return &NodeDB{DB: nodeDB}
- }
-
- func (nodeDB *NodeDB) GetAllNodes() ([]cdssdk.Node, error) {
- var ret []cdssdk.Node
-
- err := nodeDB.DB.db.Table("node").Find(&ret).Error
- return ret, err
- }
-
- func (nodeDB *NodeDB) GetByID(nodeID cdssdk.NodeID) (cdssdk.Node, error) {
- var ret cdssdk.Node
- err := nodeDB.DB.db.Table("node").Where("NodeID = ?", nodeID).Find(&ret).Error
-
- return ret, err
- }
-
- // GetUserNodes 根据用户id查询可用node
- func (nodeDB *NodeDB) GetUserNodes(userID cdssdk.UserID) ([]cdssdk.Node, error) {
- var nodes []cdssdk.Node
- err := nodeDB.DB.db.
- Table("Node").
- Select("Node.*").
- Joins("JOIN UserNode ON UserNode.NodeID = Node.NodeID").
- Where("UserNode.UserID = ?", userID).
- Find(&nodes).Error
- return nodes, err
- }
-
- // UpdateState 更新状态,并且设置上次上报时间为现在
- func (nodeDB *NodeDB) UpdateState(nodeID cdssdk.NodeID, state string) error {
- err := nodeDB.DB.db.
- Model(&cdssdk.Node{}).
- Where("NodeID = ?", nodeID).
- Updates(map[string]interface{}{
- "State": state,
- "LastReportTime": time.Now(),
- }).Error
- return err
- }
|