阶段性提交

This commit is contained in:
GoEdgeLab
2020-07-22 22:17:53 +08:00
parent a39aeb54c8
commit 9a751902f4
85 changed files with 3419 additions and 76 deletions

View File

@@ -0,0 +1,84 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
AdminStateEnabled = 1 // 已启用
AdminStateDisabled = 0 // 已禁用
)
type AdminDAO dbs.DAO
func NewAdminDAO() *AdminDAO {
return dbs.NewDAO(&AdminDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeAdmins",
Model: new(Admin),
PkName: "id",
},
}).(*AdminDAO)
}
var SharedAdminDAO = NewAdminDAO()
// 启用条目
func (this *AdminDAO) EnableAdmin(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", AdminStateEnabled).
Update()
}
// 禁用条目
func (this *AdminDAO) DisableAdmin(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", AdminStateDisabled).
Update()
}
// 查找启用中的条目
func (this *AdminDAO) FindEnabledAdmin(id uint32) (*Admin, error) {
result, err := this.Query().
Pk(id).
Attr("state", AdminStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*Admin), err
}
// 检查管理员是否存在
func (this *AdminDAO) ExistEnabledAdmin(adminId int) (bool, error) {
return this.Query().
Pk(adminId).
State(AdminStateEnabled).
Exist()
}
// 获取管理员名称
func (this *AdminDAO) FindAdminFullname(adminId int) (string, error) {
return this.Query().
Pk(adminId).
Result("fullname").
FindStringCol("")
}
// 检查用户名、密码
func (this *AdminDAO) CheckAdminPassword(username string, encryptedPassword string) (int, error) {
if len(username) == 0 || len(encryptedPassword) == 0 {
return 0, nil
}
return this.Query().
Attr("username", username).
Attr("password", encryptedPassword).
Attr("state", AdminStateEnabled).
ResultPk().
FindIntCol(0)
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,28 @@
package models
// 管理员
type Admin struct {
Id uint32 `field:"id"` // ID
Username string `field:"username"` // 用户名
Password string `field:"password"` // 密码
Fullname string `field:"fullname"` // 全名
IsSuper uint8 `field:"isSuper"` // 是否为超级管理员
CreatedAt uint32 `field:"createdAt"` // 创建时间
UpdatedAt uint32 `field:"updatedAt"` // 修改时间
State uint8 `field:"state"` // 状态
}
type AdminOperator struct {
Id interface{} // ID
Username interface{} // 用户名
Password interface{} // 密码
Fullname interface{} // 全名
IsSuper interface{} // 是否为超级管理员
CreatedAt interface{} // 创建时间
UpdatedAt interface{} // 修改时间
State interface{} // 状态
}
func NewAdminOperator() *AdminOperator {
return &AdminOperator{}
}

View File

@@ -0,0 +1 @@
package models

View File

@@ -0,0 +1,68 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
ApiTokenStateEnabled = 1 // 已启用
ApiTokenStateDisabled = 0 // 已禁用
)
type ApiTokenDAO dbs.DAO
func NewApiTokenDAO() *ApiTokenDAO {
return dbs.NewDAO(&ApiTokenDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeApiTokens",
Model: new(ApiToken),
PkName: "id",
},
}).(*ApiTokenDAO)
}
var SharedApiTokenDAO = NewApiTokenDAO()
// 启用条目
func (this *ApiTokenDAO) EnableApiToken(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ApiTokenStateEnabled).
Update()
}
// 禁用条目
func (this *ApiTokenDAO) DisableApiToken(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ApiTokenStateDisabled).
Update()
}
// 查找启用中的条目
func (this *ApiTokenDAO) FindEnabledApiToken(id uint32) (*ApiToken, error) {
result, err := this.Query().
Pk(id).
Attr("state", ApiTokenStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*ApiToken), err
}
// 获取节点Token信息
// TODO 需要添加缓存
func (this *ApiTokenDAO) FindEnabledTokenWithNode(nodeId string) (*ApiToken, error) {
one, err := this.Query().
Attr("nodeId", nodeId).
State(ApiTokenStateEnabled).
Find()
if one != nil {
return one.(*ApiToken), nil
}
return nil, err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,22 @@
package models
// API令牌管理
type ApiToken struct {
Id uint32 `field:"id"` // ID
NodeId string `field:"nodeId"` // 节点ID
Secret string `field:"secret"` // 节点密钥
Role string `field:"role"` // 节点角色
State uint8 `field:"state"` // 状态
}
type ApiTokenOperator struct {
Id interface{} // ID
NodeId interface{} // 节点ID
Secret interface{} // 节点密钥
Role interface{} // 节点角色
State interface{} // 状态
}
func NewApiTokenOperator() *ApiTokenOperator {
return &ApiTokenOperator{}
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/iwind/TeaGo/bootstrap"
)

View File

@@ -0,0 +1,31 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
type LogDAO dbs.DAO
func NewLogDAO() *LogDAO {
return dbs.NewDAO(&LogDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeLogs",
Model: new(Log),
PkName: "id",
},
}).(*LogDAO)
}
var SharedLogDAO = NewLogDAO()
// 创建管理员日志
func (this *LogDAO) CreateAdminLog(adminId int, level string, description string, action string, ip string) error {
op := NewLogOperator()
op.AdminId, op.Level, op.Description, op.Action, op.Ip = adminId, level, description, action, ip
op.Type = LogTypeAdmin
_, err := this.Save(op)
return err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,32 @@
package models
// 操作日志
type Log struct {
Id uint32 `field:"id"` // ID
Level string `field:"level"` // 级别
Description string `field:"description"` // 描述
CreatedAt uint32 `field:"createdAt"` // 创建时间
Action string `field:"action"` // 动作
UserId uint32 `field:"userId"` // 用户ID
AdminId uint32 `field:"adminId"` // 管理员ID
ProviderId uint32 `field:"providerId"` // 供应商ID
Ip string `field:"ip"` // IP地址
Type string `field:"type"` // 类型admin, user
}
type LogOperator struct {
Id interface{} // ID
Level interface{} // 级别
Description interface{} // 描述
CreatedAt interface{} // 创建时间
Action interface{} // 动作
UserId interface{} // 用户ID
AdminId interface{} // 管理员ID
ProviderId interface{} // 供应商ID
Ip interface{} // IP地址
Type interface{} // 类型admin, user
}
func NewLogOperator() *LogOperator {
return &LogOperator{}
}

View File

@@ -0,0 +1,74 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
NodeClusterStateEnabled = 1 // 已启用
NodeClusterStateDisabled = 0 // 已禁用
)
type NodeClusterDAO dbs.DAO
func NewNodeClusterDAO() *NodeClusterDAO {
return dbs.NewDAO(&NodeClusterDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeNodeClusters",
Model: new(NodeCluster),
PkName: "id",
},
}).(*NodeClusterDAO)
}
var SharedNodeClusterDAO = NewNodeClusterDAO()
// 启用条目
func (this *NodeClusterDAO) EnableNodeCluster(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeClusterStateEnabled).
Update()
}
// 禁用条目
func (this *NodeClusterDAO) DisableNodeCluster(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeClusterStateDisabled).
Update()
}
// 查找启用中的条目
func (this *NodeClusterDAO) FindEnabledNodeCluster(id uint32) (*NodeCluster, error) {
result, err := this.Query().
Pk(id).
Attr("state", NodeClusterStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*NodeCluster), err
}
// 根据主键查找名称
func (this *NodeClusterDAO) FindNodeClusterName(id uint32) (string, error) {
return this.Query().
Pk(id).
Result("name").
FindStringCol("")
}
// 查找所有可用的集群
func (this *NodeClusterDAO) FindAllEnableClusters() (result []*NodeCluster, err error) {
_, err = this.Query().
State(NodeClusterStateEnabled).
Slice(&result).
Desc("order").
DescPk().
FindAll()
return
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,22 @@
package models
// 节点集群
type NodeCluster struct {
Id uint32 `field:"id"` // ID
Name string `field:"name"` // 名称
Order uint32 `field:"order"` // 排序
CreatedAt uint32 `field:"createdAt"` // 创建时间
State uint8 `field:"state"` // 状态
}
type NodeClusterOperator struct {
Id interface{} // ID
Name interface{} // 名称
Order interface{} // 排序
CreatedAt interface{} // 创建时间
State interface{} // 状态
}
func NewNodeClusterOperator() *NodeClusterOperator {
return &NodeClusterOperator{}
}

View File

@@ -0,0 +1,64 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
NodeStateEnabled = 1 // 已启用
NodeStateDisabled = 0 // 已禁用
)
type NodeDAO dbs.DAO
func NewNodeDAO() *NodeDAO {
return dbs.NewDAO(&NodeDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeNodes",
Model: new(Node),
PkName: "id",
},
}).(*NodeDAO)
}
var SharedNodeDAO = NewNodeDAO()
// 启用条目
func (this *NodeDAO) EnableNode(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeStateEnabled).
Update()
}
// 禁用条目
func (this *NodeDAO) DisableNode(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeStateDisabled).
Update()
}
// 查找启用中的条目
func (this *NodeDAO) FindEnabledNode(id uint32) (*Node, error) {
result, err := this.Query().
Pk(id).
Attr("state", NodeStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*Node), err
}
// 根据主键查找名称
func (this *NodeDAO) FindNodeName(id uint32) (string, error) {
name, err := this.Query().
Pk(id).
Result("name").
FindCol("")
return name.(string), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,64 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
NodeGrantStateEnabled = 1 // 已启用
NodeGrantStateDisabled = 0 // 已禁用
)
type NodeGrantDAO dbs.DAO
func NewNodeGrantDAO() *NodeGrantDAO {
return dbs.NewDAO(&NodeGrantDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeNodeGrants",
Model: new(NodeGrant),
PkName: "id",
},
}).(*NodeGrantDAO)
}
var SharedNodeGrantDAO = NewNodeGrantDAO()
// 启用条目
func (this *NodeGrantDAO) EnableNodeGrant(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeGrantStateEnabled).
Update()
}
// 禁用条目
func (this *NodeGrantDAO) DisableNodeGrant(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeGrantStateDisabled).
Update()
}
// 查找启用中的条目
func (this *NodeGrantDAO) FindEnabledNodeGrant(id uint32) (*NodeGrant, error) {
result, err := this.Query().
Pk(id).
Attr("state", NodeGrantStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*NodeGrant), err
}
// 根据主键查找名称
func (this *NodeGrantDAO) FindNodeGrantName(id uint32) (string, error) {
name, err := this.Query().
Pk(id).
Result("name").
FindCol("")
return name.(string), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,30 @@
package models
//
type NodeGrant struct {
Id uint32 `field:"id"` // ID
Name string `field:"name"` // 名称
Username string `field:"username"` // 用户名
Password string `field:"password"` // 密码
Su uint8 `field:"su"` // 是否需要su
PrivateKey string `field:"privateKey"` // 密钥
Description string `field:"description"` // 备注
NodeId uint32 `field:"nodeId"` // 专有节点
State uint8 `field:"state"` // 状态
}
type NodeGrantOperator struct {
Id interface{} // ID
Name interface{} // 名称
Username interface{} // 用户名
Password interface{} // 密码
Su interface{} // 是否需要su
PrivateKey interface{} // 密钥
Description interface{} // 备注
NodeId interface{} // 专有节点
State interface{} // 状态
}
func NewNodeGrantOperator() *NodeGrantOperator {
return &NodeGrantOperator{}
}

View File

@@ -0,0 +1 @@
package models

View File

@@ -0,0 +1,64 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
NodeGroupStateEnabled = 1 // 已启用
NodeGroupStateDisabled = 0 // 已禁用
)
type NodeGroupDAO dbs.DAO
func NewNodeGroupDAO() *NodeGroupDAO {
return dbs.NewDAO(&NodeGroupDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeNodeGroups",
Model: new(NodeGroup),
PkName: "id",
},
}).(*NodeGroupDAO)
}
var SharedNodeGroupDAO = NewNodeGroupDAO()
// 启用条目
func (this *NodeGroupDAO) EnableNodeGroup(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeGroupStateEnabled).
Update()
}
// 禁用条目
func (this *NodeGroupDAO) DisableNodeGroup(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeGroupStateDisabled).
Update()
}
// 查找启用中的条目
func (this *NodeGroupDAO) FindEnabledNodeGroup(id uint32) (*NodeGroup, error) {
result, err := this.Query().
Pk(id).
Attr("state", NodeGroupStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*NodeGroup), err
}
// 根据主键查找名称
func (this *NodeGroupDAO) FindNodeGroupName(id uint32) (string, error) {
name, err := this.Query().
Pk(id).
Result("name").
FindCol("")
return name.(string), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,22 @@
package models
// 节点分组
type NodeGroup struct {
Id uint32 `field:"id"` // ID
Name string `field:"name"` // 名称
Order uint32 `field:"order"` // 排序
CreatedAt uint32 `field:"createdAt"` // 创建时间
State uint8 `field:"state"` // 状态
}
type NodeGroupOperator struct {
Id interface{} // ID
Name interface{} // 名称
Order interface{} // 排序
CreatedAt interface{} // 创建时间
State interface{} // 状态
}
func NewNodeGroupOperator() *NodeGroupOperator {
return &NodeGroupOperator{}
}

View File

@@ -0,0 +1,64 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
NodeLoginStateEnabled = 1 // 已启用
NodeLoginStateDisabled = 0 // 已禁用
)
type NodeLoginDAO dbs.DAO
func NewNodeLoginDAO() *NodeLoginDAO {
return dbs.NewDAO(&NodeLoginDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeNodeLogins",
Model: new(NodeLogin),
PkName: "id",
},
}).(*NodeLoginDAO)
}
var SharedNodeLoginDAO = NewNodeLoginDAO()
// 启用条目
func (this *NodeLoginDAO) EnableNodeLogin(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeLoginStateEnabled).
Update()
}
// 禁用条目
func (this *NodeLoginDAO) DisableNodeLogin(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", NodeLoginStateDisabled).
Update()
}
// 查找启用中的条目
func (this *NodeLoginDAO) FindEnabledNodeLogin(id uint32) (*NodeLogin, error) {
result, err := this.Query().
Pk(id).
Attr("state", NodeLoginStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*NodeLogin), err
}
// 根据主键查找名称
func (this *NodeLoginDAO) FindNodeLoginName(id uint32) (string, error) {
name, err := this.Query().
Pk(id).
Result("name").
FindCol("")
return name.(string), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,24 @@
package models
//
type NodeLogin struct {
Id uint32 `field:"id"` // ID
NodeId uint32 `field:"nodeId"` // 节点ID
Name string `field:"name"` // 名称
Type string `field:"type"` // 类型ssh,agent
Params string `field:"params"` // 配置参数
State uint8 `field:"state"` // 状态
}
type NodeLoginOperator struct {
Id interface{} // ID
NodeId interface{} // 节点ID
Name interface{} // 名称
Type interface{} // 类型ssh,agent
Params interface{} // 配置参数
State interface{} // 状态
}
func NewNodeLoginOperator() *NodeLoginOperator {
return &NodeLoginOperator{}
}

View File

@@ -0,0 +1 @@
package models

View File

@@ -0,0 +1,34 @@
package models
// 节点
type Node struct {
Id uint32 `field:"id"` // ID
NodeId string `field:"nodeId"` // 节点ID
Secret string `field:"secret"` // 密钥
Name string `field:"name"` // 节点名
Code string `field:"code"` // 代号
ClusterId uint32 `field:"clusterId"` // 集群ID
RegionId uint32 `field:"regionId"` // 区域ID
GroupId uint32 `field:"groupId"` // 分组ID
CreatedAt uint32 `field:"createdAt"` // 创建时间
Status string `field:"status"` // 最新的状态
State uint8 `field:"state"` // 状态
}
type NodeOperator struct {
Id interface{} // ID
NodeId interface{} // 节点ID
Secret interface{} // 密钥
Name interface{} // 节点名
Code interface{} // 代号
ClusterId interface{} // 集群ID
RegionId interface{} // 区域ID
GroupId interface{} // 分组ID
CreatedAt interface{} // 创建时间
Status interface{} // 最新的状态
State interface{} // 状态
}
func NewNodeOperator() *NodeOperator {
return &NodeOperator{}
}

View File

@@ -0,0 +1 @@
package models

View File

@@ -0,0 +1,11 @@
package models
const (
LevelDebug = "debug"
LevelInfo = "info"
LevelWarning = "warning"
LevelError = "error"
LogTypeAdmin = "admin"
LogTypeUser = "user"
)

View File

@@ -0,0 +1,55 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
ProviderStateEnabled = 1 // 已启用
ProviderStateDisabled = 0 // 已禁用
)
type ProviderDAO dbs.DAO
func NewProviderDAO() *ProviderDAO {
return dbs.NewDAO(&ProviderDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeProviders",
Model: new(Provider),
PkName: "id",
},
}).(*ProviderDAO)
}
var SharedProviderDAO = NewProviderDAO()
// 启用条目
func (this *ProviderDAO) EnableProvider(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ProviderStateEnabled).
Update()
}
// 禁用条目
func (this *ProviderDAO) DisableProvider(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ProviderStateDisabled).
Update()
}
// 查找启用中的条目
func (this *ProviderDAO) FindEnabledProvider(id uint32) (*Provider, error) {
result, err := this.Query().
Pk(id).
Attr("state", ProviderStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*Provider), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,26 @@
package models
// 供应商
type Provider struct {
Id uint32 `field:"id"` // ID
Username string `field:"username"` // 用户名
Password string `field:"password"` // 密码
Fullname string `field:"fullname"` // 真实姓名
CreatedAt uint32 `field:"createdAt"` // 创建时间
UpdatedAt uint32 `field:"updatedAt"` // 修改时间
State uint8 `field:"state"` // 状态
}
type ProviderOperator struct {
Id interface{} // ID
Username interface{} // 用户名
Password interface{} // 密码
Fullname interface{} // 真实姓名
CreatedAt interface{} // 创建时间
UpdatedAt interface{} // 修改时间
State interface{} // 状态
}
func NewProviderOperator() *ProviderOperator {
return &ProviderOperator{}
}

View File

@@ -0,0 +1,55 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
ServerStateEnabled = 1 // 已启用
ServerStateDisabled = 0 // 已禁用
)
type ServerDAO dbs.DAO
func NewServerDAO() *ServerDAO {
return dbs.NewDAO(&ServerDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeServers",
Model: new(Server),
PkName: "id",
},
}).(*ServerDAO)
}
var SharedServerDAO = NewServerDAO()
// 启用条目
func (this *ServerDAO) EnableServer(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ServerStateEnabled).
Update()
}
// 禁用条目
func (this *ServerDAO) DisableServer(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ServerStateDisabled).
Update()
}
// 查找启用中的条目
func (this *ServerDAO) FindEnabledServer(id uint32) (*Server, error) {
result, err := this.Query().
Pk(id).
Attr("state", ServerStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*Server), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,64 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
ServerGroupStateEnabled = 1 // 已启用
ServerGroupStateDisabled = 0 // 已禁用
)
type ServerGroupDAO dbs.DAO
func NewServerGroupDAO() *ServerGroupDAO {
return dbs.NewDAO(&ServerGroupDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeServerGroups",
Model: new(ServerGroup),
PkName: "id",
},
}).(*ServerGroupDAO)
}
var SharedServerGroupDAO = NewServerGroupDAO()
// 启用条目
func (this *ServerGroupDAO) EnableServerGroup(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ServerGroupStateEnabled).
Update()
}
// 禁用条目
func (this *ServerGroupDAO) DisableServerGroup(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", ServerGroupStateDisabled).
Update()
}
// 查找启用中的条目
func (this *ServerGroupDAO) FindEnabledServerGroup(id uint32) (*ServerGroup, error) {
result, err := this.Query().
Pk(id).
Attr("state", ServerGroupStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*ServerGroup), err
}
// 根据主键查找名称
func (this *ServerGroupDAO) FindServerGroupName(id uint32) (string, error) {
name, err := this.Query().
Pk(id).
Result("name").
FindCol("")
return name.(string), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,26 @@
package models
// 服务分组
type ServerGroup struct {
Id uint32 `field:"id"` // ID
AdminId uint32 `field:"adminId"` // 管理员ID
UserId uint32 `field:"userId"` // 用户ID
Name string `field:"name"` // 名称
Order uint32 `field:"order"` // 排序
CreatedAt uint32 `field:"createdAt"` // 创建时间
State uint8 `field:"state"` // 状态
}
type ServerGroupOperator struct {
Id interface{} // ID
AdminId interface{} // 管理员ID
UserId interface{} // 用户ID
Name interface{} // 名称
Order interface{} // 排序
CreatedAt interface{} // 创建时间
State interface{} // 状态
}
func NewServerGroupOperator() *ServerGroupOperator {
return &ServerGroupOperator{}
}

View File

@@ -0,0 +1,32 @@
package models
// 服务
type Server struct {
Id uint32 `field:"id"` // ID
UserId uint32 `field:"userId"` // 用户ID
AdminId uint32 `field:"adminId"` // 管理员ID
GroupIds string `field:"groupIds"` // 分组ID列表
Config string `field:"config"` // 服务配置,自动生成
IncludeNodes string `field:"includeNodes"` // 部署条件
ExcludeNodes string `field:"excludeNodes"` // 节点排除条件
Version uint32 `field:"version"` // 版本号
CreatedAt uint32 `field:"createdAt"` // 创建时间
State uint8 `field:"state"` // 状态
}
type ServerOperator struct {
Id interface{} // ID
UserId interface{} // 用户ID
AdminId interface{} // 管理员ID
GroupIds interface{} // 分组ID列表
Config interface{} // 服务配置,自动生成
IncludeNodes interface{} // 部署条件
ExcludeNodes interface{} // 节点排除条件
Version interface{} // 版本号
CreatedAt interface{} // 创建时间
State interface{} // 状态
}
func NewServerOperator() *ServerOperator {
return &ServerOperator{}
}

View File

@@ -0,0 +1 @@
package models

View File

@@ -0,0 +1,55 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/Tea"
"github.com/iwind/TeaGo/dbs"
)
const (
UserStateEnabled = 1 // 已启用
UserStateDisabled = 0 // 已禁用
)
type UserDAO dbs.DAO
func NewUserDAO() *UserDAO {
return dbs.NewDAO(&UserDAO{
DAOObject: dbs.DAOObject{
DB: Tea.Env,
Table: "edgeUsers",
Model: new(User),
PkName: "id",
},
}).(*UserDAO)
}
var SharedUserDAO = NewUserDAO()
// 启用条目
func (this *UserDAO) EnableUser(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", UserStateEnabled).
Update()
}
// 禁用条目
func (this *UserDAO) DisableUser(id uint32) (rowsAffected int64, err error) {
return this.Query().
Pk(id).
Set("state", UserStateDisabled).
Update()
}
// 查找启用中的条目
func (this *UserDAO) FindEnabledUser(id uint32) (*User, error) {
result, err := this.Query().
Pk(id).
Attr("state", UserStateEnabled).
Find()
if result == nil {
return nil, err
}
return result.(*User), err
}

View File

@@ -0,0 +1,5 @@
package models
import (
_ "github.com/go-sql-driver/mysql"
)

View File

@@ -0,0 +1,26 @@
package models
//
type User struct {
Id uint32 `field:"id"` // ID
Username string `field:"username"` // 用户名
Password string `field:"password"` // 密码
Fullname string `field:"fullname"` // 真实姓名
CreatedAt uint32 `field:"createdAt"` // 创建时间
UpdatedAt uint32 `field:"updatedAt"` // 修改时间
State uint8 `field:"state"` // 状态
}
type UserOperator struct {
Id interface{} // ID
Username interface{} // 用户名
Password interface{} // 密码
Fullname interface{} // 真实姓名
CreatedAt interface{} // 创建时间
UpdatedAt interface{} // 修改时间
State interface{} // 状态
}
func NewUserOperator() *UserOperator {
return &UserOperator{}
}