|
1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package db
-
- import (
- "time"
-
- "github.com/jmoiron/sqlx"
- "gitlink.org.cn/cloudream/storage/common/pkgs/db/model"
- )
-
- type NodeDB struct {
- *DB
- }
-
- func (db *DB) Node() *NodeDB {
- return &NodeDB{DB: db}
- }
-
- func (db *NodeDB) GetByID(ctx SQLContext, nodeID int64) (model.Node, error) {
- var ret model.Node
- err := sqlx.Get(ctx, &ret, "select * from Node where NodeID = ?", nodeID)
- return ret, err
- }
-
- func (db *NodeDB) GetAllNodes(ctx SQLContext) ([]model.Node, error) {
- var ret []model.Node
- err := sqlx.Select(ctx, &ret, "select * from Node")
- return ret, err
- }
-
- // GetUserNodes 根据用户id查询可用node
- func (db *NodeDB) GetUserNodes(ctx SQLContext, userID int64) ([]model.Node, error) {
- var nodes []model.Node
- err := sqlx.Select(ctx, &nodes, "select Node.* from UserNode, Node where UserNode.NodeID = Node.NodeID and UserNode.UserID=?", userID)
- return nodes, err
- }
-
- // UpdateState 更新状态,并且设置上次上报时间为现在
- func (db *NodeDB) UpdateState(ctx SQLContext, nodeID int64, state string) error {
- _, err := ctx.Exec("update Node set State = ?, LastReportTime = ? where NodeID = ?", state, time.Now(), nodeID)
- return err
- }
|