mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-12-08 10:30:24 +08:00
初步实现安装界面
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -24,7 +27,13 @@ func NewAdminDAO() *AdminDAO {
|
||||
}).(*AdminDAO)
|
||||
}
|
||||
|
||||
var SharedAdminDAO = NewAdminDAO()
|
||||
var SharedAdminDAO *AdminDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedAdminDAO = NewAdminDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *AdminDAO) EnableAdmin(id uint32) (rowsAffected int64, err error) {
|
||||
@@ -71,7 +80,7 @@ func (this *AdminDAO) FindAdminFullname(adminId int) (string, error) {
|
||||
}
|
||||
|
||||
// 检查用户名、密码
|
||||
func (this *AdminDAO) CheckAdminPassword(username string, encryptedPassword string) (int, error) {
|
||||
func (this *AdminDAO) CheckAdminPassword(username string, encryptedPassword string) (int64, error) {
|
||||
if len(username) == 0 || len(encryptedPassword) == 0 {
|
||||
return 0, nil
|
||||
}
|
||||
@@ -80,5 +89,46 @@ func (this *AdminDAO) CheckAdminPassword(username string, encryptedPassword stri
|
||||
Attr("password", encryptedPassword).
|
||||
Attr("state", AdminStateEnabled).
|
||||
ResultPk().
|
||||
FindIntCol(0)
|
||||
FindInt64Col(0)
|
||||
}
|
||||
|
||||
// 根据用户名查询管理员ID
|
||||
func (this *AdminDAO) FindAdminIdWithUsername(username string) (int64, error) {
|
||||
one, err := this.Query().
|
||||
Attr("username", username).
|
||||
State(AdminStateEnabled).
|
||||
ResultPk().
|
||||
Find()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if one == nil {
|
||||
return 0, nil
|
||||
}
|
||||
return int64(one.(*Admin).Id), nil
|
||||
}
|
||||
|
||||
// 更改管理员密码
|
||||
func (this *AdminDAO) UpdateAdminPassword(adminId int64, password string) error {
|
||||
if adminId <= 0 {
|
||||
return errors.New("invalid adminId")
|
||||
}
|
||||
op := NewAdminOperator()
|
||||
op.Id = adminId
|
||||
op.Password = stringutil.Md5(password)
|
||||
_, err := this.Save(op)
|
||||
return err
|
||||
}
|
||||
|
||||
// 创建管理员
|
||||
func (this *AdminDAO) CreateAdmin(username string, password string, fullname string) (int64, error) {
|
||||
op := NewAdminOperator()
|
||||
op.Username = username
|
||||
op.Password = stringutil.Md5(password)
|
||||
op.Fullname = fullname
|
||||
_, err := this.Save(op)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return types.Int64(op.Id), nil
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
"github.com/iwind/TeaGo/rands"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -27,7 +30,13 @@ func NewAPINodeDAO() *APINodeDAO {
|
||||
}).(*APINodeDAO)
|
||||
}
|
||||
|
||||
var SharedAPINodeDAO = NewAPINodeDAO()
|
||||
var SharedAPINodeDAO *APINodeDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedAPINodeDAO = NewAPINodeDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *APINodeDAO) EnableAPINode(id int64) error {
|
||||
@@ -87,7 +96,7 @@ func (this *APINodeDAO) CreateAPINode(name string, description string, httpJSON
|
||||
return 0, err
|
||||
}
|
||||
secret := rands.String(32)
|
||||
err = SharedApiTokenDAO.CreateAPIToken(uniqueId, secret, NodeRoleAPI)
|
||||
err = NewApiTokenDAO().CreateAPIToken(uniqueId, secret, NodeRoleAPI)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -183,6 +192,33 @@ func (this *APINodeDAO) ListEnabledAPINodes(offset int64, size int64) (result []
|
||||
return
|
||||
}
|
||||
|
||||
// 根据主机名和端口获取ID
|
||||
func (this *APINodeDAO) FindEnabledAPINodeIdWithAddr(protocol string, host string, port int) (int64, error) {
|
||||
addr := maps.Map{
|
||||
"protocol": protocol,
|
||||
"host": host,
|
||||
"portRange": strconv.Itoa(port),
|
||||
}
|
||||
addrJSON, err := json.Marshal(addr)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
one, err := this.Query().
|
||||
State(APINodeStateEnabled).
|
||||
Where("JSON_CONTAINS(accessAddrs, :addr)").
|
||||
Param("addr", string(addrJSON)).
|
||||
ResultPk().
|
||||
Find()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if one == nil {
|
||||
return 0, nil
|
||||
}
|
||||
return int64(one.(*APINode).Id), nil
|
||||
}
|
||||
|
||||
// 生成唯一ID
|
||||
func (this *APINodeDAO) genUniqueId() (string, error) {
|
||||
for {
|
||||
|
||||
@@ -2,4 +2,32 @@ package models
|
||||
|
||||
import (
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"runtime"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestAPINodeDAO_FindEnabledAPINodeIdWithAddr(t *testing.T) {
|
||||
dao := NewAPINodeDAO()
|
||||
{
|
||||
apiNodeId, err := dao.FindEnabledAPINodeIdWithAddr("http", "127.0.0.1", 123)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("apiNodeId:", apiNodeId)
|
||||
}
|
||||
|
||||
{
|
||||
apiNodeId, err := dao.FindEnabledAPINodeIdWithAddr("http", "127.0.0.1", 8003)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("apiNodeId:", apiNodeId)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkAPINodeDAO_New(b *testing.B) {
|
||||
runtime.GOMAXPROCS(1)
|
||||
for i := 0; i < b.N; i++ {
|
||||
_ = NewAPINodeDAO()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ type APINode struct {
|
||||
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||
Weight uint32 `field:"weight"` // 权重
|
||||
Status string `field:"status"` // 运行状态
|
||||
}
|
||||
|
||||
type APINodeOperator struct {
|
||||
@@ -35,6 +36,7 @@ type APINodeOperator struct {
|
||||
CreatedAt interface{} // 创建时间
|
||||
AdminId interface{} // 管理员ID
|
||||
Weight interface{} // 权重
|
||||
Status interface{} // 运行状态
|
||||
}
|
||||
|
||||
func NewAPINodeOperator() *APINodeOperator {
|
||||
|
||||
@@ -24,7 +24,13 @@ func NewApiTokenDAO() *ApiTokenDAO {
|
||||
}).(*ApiTokenDAO)
|
||||
}
|
||||
|
||||
var SharedApiTokenDAO = NewApiTokenDAO()
|
||||
var SharedApiTokenDAO *ApiTokenDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedApiTokenDAO = NewApiTokenDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *ApiTokenDAO) EnableApiToken(id uint32) (rowsAffected int64, err error) {
|
||||
@@ -67,6 +73,18 @@ func (this *ApiTokenDAO) FindEnabledTokenWithNode(nodeId string) (*ApiToken, err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 根据角色获取节点
|
||||
func (this *ApiTokenDAO) FindEnabledTokenWithRole(role string) (*ApiToken, error) {
|
||||
one, err := this.Query().
|
||||
Attr("role", role).
|
||||
State(ApiTokenStateEnabled).
|
||||
Find()
|
||||
if one != nil {
|
||||
return one.(*ApiToken), nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 保存API Token
|
||||
func (this *ApiTokenDAO) CreateAPIToken(nodeId string, secret string, role NodeRole) error {
|
||||
op := NewApiTokenOperator()
|
||||
|
||||
@@ -26,7 +26,13 @@ func NewDBNodeDAO() *DBNodeDAO {
|
||||
}).(*DBNodeDAO)
|
||||
}
|
||||
|
||||
var SharedDBNodeDAO = NewDBNodeDAO()
|
||||
var SharedDBNodeDAO *DBNodeDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedDBNodeDAO = NewDBNodeDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *DBNodeDAO) EnableDBNode(id int64) error {
|
||||
|
||||
@@ -25,7 +25,9 @@ type HTTPAccessLogDAOWrapper struct {
|
||||
|
||||
func init() {
|
||||
initializer := NewDBNodeInitializer()
|
||||
go initializer.Start()
|
||||
dbs.OnReady(func() {
|
||||
go initializer.Start()
|
||||
})
|
||||
}
|
||||
|
||||
// 获取获取DAO
|
||||
|
||||
@@ -20,7 +20,13 @@ func NewFileChunkDAO() *FileChunkDAO {
|
||||
}).(*FileChunkDAO)
|
||||
}
|
||||
|
||||
var SharedFileChunkDAO = NewFileChunkDAO()
|
||||
var SharedFileChunkDAO *FileChunkDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedFileChunkDAO = NewFileChunkDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 创建文件Chunk
|
||||
func (this *FileChunkDAO) CreateFileChunk(fileId int, data []byte) error {
|
||||
|
||||
@@ -27,7 +27,13 @@ func NewFileDAO() *FileDAO {
|
||||
}).(*FileDAO)
|
||||
}
|
||||
|
||||
var SharedFileDAO = NewFileDAO()
|
||||
var SharedFileDAO *FileDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedFileDAO = NewFileDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *FileDAO) EnableFile(id int64) error {
|
||||
|
||||
@@ -20,7 +20,13 @@ import (
|
||||
|
||||
type HTTPAccessLogDAO dbs.DAO
|
||||
|
||||
var SharedHTTPAccessLogDAO = NewHTTPAccessLogDAO()
|
||||
var SharedHTTPAccessLogDAO *HTTPAccessLogDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPAccessLogDAO = NewHTTPAccessLogDAO()
|
||||
})
|
||||
}
|
||||
|
||||
func NewHTTPAccessLogDAO() *HTTPAccessLogDAO {
|
||||
return dbs.NewDAO(&HTTPAccessLogDAO{
|
||||
|
||||
@@ -27,7 +27,13 @@ func NewHTTPAccessLogPolicyDAO() *HTTPAccessLogPolicyDAO {
|
||||
}).(*HTTPAccessLogPolicyDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPAccessLogPolicyDAO = NewHTTPAccessLogPolicyDAO()
|
||||
var SharedHTTPAccessLogPolicyDAO *HTTPAccessLogPolicyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPAccessLogPolicyDAO = NewHTTPAccessLogPolicyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPAccessLogPolicyDAO) Init() {
|
||||
|
||||
@@ -29,7 +29,13 @@ func NewHTTPCachePolicyDAO() *HTTPCachePolicyDAO {
|
||||
}).(*HTTPCachePolicyDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPCachePolicyDAO = NewHTTPCachePolicyDAO()
|
||||
var SharedHTTPCachePolicyDAO *HTTPCachePolicyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPCachePolicyDAO = NewHTTPCachePolicyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPCachePolicyDAO) Init() {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewHTTPFirewallPolicyDAO() *HTTPFirewallPolicyDAO {
|
||||
}).(*HTTPFirewallPolicyDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPFirewallPolicyDAO = NewHTTPFirewallPolicyDAO()
|
||||
var SharedHTTPFirewallPolicyDAO *HTTPFirewallPolicyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPFirewallPolicyDAO = NewHTTPFirewallPolicyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPFirewallPolicyDAO) Init() {
|
||||
|
||||
@@ -27,7 +27,13 @@ func NewHTTPFirewallRuleDAO() *HTTPFirewallRuleDAO {
|
||||
}).(*HTTPFirewallRuleDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPFirewallRuleDAO = NewHTTPFirewallRuleDAO()
|
||||
var SharedHTTPFirewallRuleDAO *HTTPFirewallRuleDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPFirewallRuleDAO = NewHTTPFirewallRuleDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPFirewallRuleDAO) Init() {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewHTTPFirewallRuleGroupDAO() *HTTPFirewallRuleGroupDAO {
|
||||
}).(*HTTPFirewallRuleGroupDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPFirewallRuleGroupDAO = NewHTTPFirewallRuleGroupDAO()
|
||||
var SharedHTTPFirewallRuleGroupDAO *HTTPFirewallRuleGroupDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPFirewallRuleGroupDAO = NewHTTPFirewallRuleGroupDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPFirewallRuleGroupDAO) Init() {
|
||||
|
||||
@@ -29,7 +29,13 @@ func NewHTTPFirewallRuleSetDAO() *HTTPFirewallRuleSetDAO {
|
||||
}).(*HTTPFirewallRuleSetDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPFirewallRuleSetDAO = NewHTTPFirewallRuleSetDAO()
|
||||
var SharedHTTPFirewallRuleSetDAO *HTTPFirewallRuleSetDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPFirewallRuleSetDAO = NewHTTPFirewallRuleSetDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPFirewallRuleSetDAO) Init() {
|
||||
|
||||
@@ -29,7 +29,13 @@ func NewHTTPGzipDAO() *HTTPGzipDAO {
|
||||
}).(*HTTPGzipDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPGzipDAO = NewHTTPGzipDAO()
|
||||
var SharedHTTPGzipDAO *HTTPGzipDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPGzipDAO = NewHTTPGzipDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPGzipDAO) Init() {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewHTTPHeaderDAO() *HTTPHeaderDAO {
|
||||
}).(*HTTPHeaderDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPHeaderDAO = NewHTTPHeaderDAO()
|
||||
var SharedHTTPHeaderDAO *HTTPHeaderDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPHeaderDAO = NewHTTPHeaderDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPHeaderDAO) Init() {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewHTTPHeaderPolicyDAO() *HTTPHeaderPolicyDAO {
|
||||
}).(*HTTPHeaderPolicyDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPHeaderPolicyDAO = NewHTTPHeaderPolicyDAO()
|
||||
var SharedHTTPHeaderPolicyDAO *HTTPHeaderPolicyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPHeaderPolicyDAO = NewHTTPHeaderPolicyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPHeaderPolicyDAO) Init() {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewHTTPLocationDAO() *HTTPLocationDAO {
|
||||
}).(*HTTPLocationDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPLocationDAO = NewHTTPLocationDAO()
|
||||
var SharedHTTPLocationDAO *HTTPLocationDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPLocationDAO = NewHTTPLocationDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPLocationDAO) Init() {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewHTTPPageDAO() *HTTPPageDAO {
|
||||
}).(*HTTPPageDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPPageDAO = NewHTTPPageDAO()
|
||||
var SharedHTTPPageDAO *HTTPPageDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPPageDAO = NewHTTPPageDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPPageDAO) Init() {
|
||||
@@ -121,7 +127,6 @@ func (this *HTTPPageDAO) UpdatePage(pageId int64, statusList []string, url strin
|
||||
op.NewStatus = newStatus
|
||||
_, err = this.Save(op)
|
||||
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,13 @@ func NewHTTPRewriteRuleDAO() *HTTPRewriteRuleDAO {
|
||||
}).(*HTTPRewriteRuleDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPRewriteRuleDAO = NewHTTPRewriteRuleDAO()
|
||||
var SharedHTTPRewriteRuleDAO *HTTPRewriteRuleDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPRewriteRuleDAO = NewHTTPRewriteRuleDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *HTTPRewriteRuleDAO) Init() {
|
||||
|
||||
@@ -31,7 +31,13 @@ func NewHTTPWebDAO() *HTTPWebDAO {
|
||||
}).(*HTTPWebDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPWebDAO = NewHTTPWebDAO()
|
||||
var SharedHTTPWebDAO *HTTPWebDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPWebDAO = NewHTTPWebDAO()
|
||||
})
|
||||
}
|
||||
|
||||
func (this *HTTPWebDAO) Init() {
|
||||
this.DAOObject.Init()
|
||||
|
||||
@@ -29,7 +29,13 @@ func NewHTTPWebsocketDAO() *HTTPWebsocketDAO {
|
||||
}).(*HTTPWebsocketDAO)
|
||||
}
|
||||
|
||||
var SharedHTTPWebsocketDAO = NewHTTPWebsocketDAO()
|
||||
var SharedHTTPWebsocketDAO *HTTPWebsocketDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedHTTPWebsocketDAO = NewHTTPWebsocketDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *HTTPWebsocketDAO) EnableHTTPWebsocket(id int64) error {
|
||||
|
||||
@@ -19,7 +19,13 @@ func NewLogDAO() *LogDAO {
|
||||
}).(*LogDAO)
|
||||
}
|
||||
|
||||
var SharedLogDAO = NewLogDAO()
|
||||
var SharedLogDAO *LogDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedLogDAO = NewLogDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 创建管理员日志
|
||||
func (this *LogDAO) CreateAdminLog(adminId int64, level string, description string, action string, ip string) error {
|
||||
|
||||
@@ -26,7 +26,13 @@ func NewNodeClusterDAO() *NodeClusterDAO {
|
||||
}).(*NodeClusterDAO)
|
||||
}
|
||||
|
||||
var SharedNodeClusterDAO = NewNodeClusterDAO()
|
||||
var SharedNodeClusterDAO *NodeClusterDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeClusterDAO = NewNodeClusterDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *NodeClusterDAO) EnableNodeCluster(id int64) error {
|
||||
|
||||
@@ -32,7 +32,13 @@ func NewNodeDAO() *NodeDAO {
|
||||
}).(*NodeDAO)
|
||||
}
|
||||
|
||||
var SharedNodeDAO = NewNodeDAO()
|
||||
var SharedNodeDAO *NodeDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeDAO = NewNodeDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *NodeDAO) EnableNode(id uint32) (rowsAffected int64, err error) {
|
||||
|
||||
@@ -26,7 +26,13 @@ func NewNodeGrantDAO() *NodeGrantDAO {
|
||||
}).(*NodeGrantDAO)
|
||||
}
|
||||
|
||||
var SharedNodeGrantDAO = NewNodeGrantDAO()
|
||||
var SharedNodeGrantDAO *NodeGrantDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeGrantDAO = NewNodeGrantDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *NodeGrantDAO) EnableNodeGrant(id uint32) (rowsAffected int64, err error) {
|
||||
|
||||
@@ -24,7 +24,13 @@ func NewNodeGroupDAO() *NodeGroupDAO {
|
||||
}).(*NodeGroupDAO)
|
||||
}
|
||||
|
||||
var SharedNodeGroupDAO = NewNodeGroupDAO()
|
||||
var SharedNodeGroupDAO *NodeGroupDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeGroupDAO = NewNodeGroupDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *NodeGroupDAO) EnableNodeGroup(id uint32) (rowsAffected int64, err error) {
|
||||
|
||||
@@ -26,7 +26,13 @@ func NewNodeIPAddressDAO() *NodeIPAddressDAO {
|
||||
}).(*NodeIPAddressDAO)
|
||||
}
|
||||
|
||||
var SharedNodeIPAddressDAO = NewNodeIPAddressDAO()
|
||||
var SharedNodeIPAddressDAO *NodeIPAddressDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeIPAddressDAO = NewNodeIPAddressDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *NodeIPAddressDAO) EnableAddress(id int64) (err error) {
|
||||
|
||||
@@ -25,7 +25,13 @@ func NewNodeLogDAO() *NodeLogDAO {
|
||||
}).(*NodeLogDAO)
|
||||
}
|
||||
|
||||
var SharedNodeLogDAO = NewNodeLogDAO()
|
||||
var SharedNodeLogDAO *NodeLogDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeLogDAO = NewNodeLogDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 创建日志
|
||||
func (this *NodeLogDAO) CreateLog(nodeRole NodeRole, nodeId int64, level string, tag string, description string, createdAt int64) error {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewNodeLoginDAO() *NodeLoginDAO {
|
||||
}).(*NodeLoginDAO)
|
||||
}
|
||||
|
||||
var SharedNodeLoginDAO = NewNodeLoginDAO()
|
||||
var SharedNodeLoginDAO *NodeLoginDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedNodeLoginDAO = NewNodeLoginDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *NodeLoginDAO) EnableNodeLogin(id uint32) (rowsAffected int64, err error) {
|
||||
|
||||
@@ -30,7 +30,13 @@ func NewOriginDAO() *OriginDAO {
|
||||
}).(*OriginDAO)
|
||||
}
|
||||
|
||||
var SharedOriginDAO = NewOriginDAO()
|
||||
var SharedOriginDAO *OriginDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedOriginDAO = NewOriginDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *OriginDAO) Init() {
|
||||
|
||||
@@ -24,7 +24,13 @@ func NewProviderDAO() *ProviderDAO {
|
||||
}).(*ProviderDAO)
|
||||
}
|
||||
|
||||
var SharedProviderDAO = NewProviderDAO()
|
||||
var SharedProviderDAO *ProviderDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedProviderDAO = NewProviderDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *ProviderDAO) EnableProvider(id uint32) (rowsAffected int64, err error) {
|
||||
|
||||
@@ -28,7 +28,13 @@ func NewReverseProxyDAO() *ReverseProxyDAO {
|
||||
}).(*ReverseProxyDAO)
|
||||
}
|
||||
|
||||
var SharedReverseProxyDAO = NewReverseProxyDAO()
|
||||
var SharedReverseProxyDAO *ReverseProxyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedReverseProxyDAO = NewReverseProxyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *ReverseProxyDAO) Init() {
|
||||
|
||||
@@ -32,7 +32,13 @@ func NewServerDAO() *ServerDAO {
|
||||
}).(*ServerDAO)
|
||||
}
|
||||
|
||||
var SharedServerDAO = NewServerDAO()
|
||||
var SharedServerDAO *ServerDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedServerDAO = NewServerDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *ServerDAO) Init() {
|
||||
|
||||
@@ -24,22 +24,30 @@ func NewServerGroupDAO() *ServerGroupDAO {
|
||||
}).(*ServerGroupDAO)
|
||||
}
|
||||
|
||||
var SharedServerGroupDAO = NewServerGroupDAO()
|
||||
var SharedServerGroupDAO *ServerGroupDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedServerGroupDAO = NewServerGroupDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *ServerGroupDAO) EnableServerGroup(id uint32) (rowsAffected int64, err error) {
|
||||
return this.Query().
|
||||
func (this *ServerGroupDAO) EnableServerGroup(id uint32) error {
|
||||
_, err := this.Query().
|
||||
Pk(id).
|
||||
Set("state", ServerGroupStateEnabled).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
|
||||
// 禁用条目
|
||||
func (this *ServerGroupDAO) DisableServerGroup(id uint32) (rowsAffected int64, err error) {
|
||||
return this.Query().
|
||||
func (this *ServerGroupDAO) DisableServerGroup(id uint32) error {
|
||||
_, err := this.Query().
|
||||
Pk(id).
|
||||
Set("state", ServerGroupStateDisabled).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
|
||||
// 查找启用中的条目
|
||||
@@ -56,9 +64,8 @@ func (this *ServerGroupDAO) FindEnabledServerGroup(id uint32) (*ServerGroup, err
|
||||
|
||||
// 根据主键查找名称
|
||||
func (this *ServerGroupDAO) FindServerGroupName(id uint32) (string, error) {
|
||||
name, err := this.Query().
|
||||
return this.Query().
|
||||
Pk(id).
|
||||
Result("name").
|
||||
FindCol("")
|
||||
return name.(string), err
|
||||
FindStringCol("")
|
||||
}
|
||||
|
||||
@@ -29,7 +29,13 @@ func NewSSLCertDAO() *SSLCertDAO {
|
||||
}).(*SSLCertDAO)
|
||||
}
|
||||
|
||||
var SharedSSLCertDAO = NewSSLCertDAO()
|
||||
var SharedSSLCertDAO *SSLCertDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedSSLCertDAO = NewSSLCertDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *SSLCertDAO) Init() {
|
||||
|
||||
@@ -24,7 +24,13 @@ func NewSSLCertGroupDAO() *SSLCertGroupDAO {
|
||||
}).(*SSLCertGroupDAO)
|
||||
}
|
||||
|
||||
var SharedSSLCertGroupDAO = NewSSLCertGroupDAO()
|
||||
var SharedSSLCertGroupDAO *SSLCertGroupDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedSSLCertGroupDAO = NewSSLCertGroupDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *SSLCertGroupDAO) EnableSSLCertGroup(id uint32) error {
|
||||
|
||||
@@ -29,7 +29,13 @@ func NewSSLPolicyDAO() *SSLPolicyDAO {
|
||||
}).(*SSLPolicyDAO)
|
||||
}
|
||||
|
||||
var SharedSSLPolicyDAO = NewSSLPolicyDAO()
|
||||
var SharedSSLPolicyDAO *SSLPolicyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedSSLPolicyDAO = NewSSLPolicyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *SSLPolicyDAO) Init() {
|
||||
|
||||
@@ -21,7 +21,13 @@ func NewSysEventDAO() *SysEventDAO {
|
||||
}).(*SysEventDAO)
|
||||
}
|
||||
|
||||
var SharedSysEventDAO = NewSysEventDAO()
|
||||
var SharedSysEventDAO *SysEventDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedSysEventDAO = NewSysEventDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 创建事件
|
||||
func (this *SysEventDAO) CreateEvent(event EventInterface) error {
|
||||
|
||||
@@ -21,7 +21,13 @@ func NewSysLockerDAO() *SysLockerDAO {
|
||||
}).(*SysLockerDAO)
|
||||
}
|
||||
|
||||
var SharedSysLockerDAO = NewSysLockerDAO()
|
||||
var SharedSysLockerDAO *SysLockerDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedSysLockerDAO = NewSysLockerDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 开锁
|
||||
func (this *SysLockerDAO) Lock(key string, timeout int64) (bool, error) {
|
||||
|
||||
@@ -26,7 +26,13 @@ func NewSysSettingDAO() *SysSettingDAO {
|
||||
}).(*SysSettingDAO)
|
||||
}
|
||||
|
||||
var SharedSysSettingDAO = NewSysSettingDAO()
|
||||
var SharedSysSettingDAO *SysSettingDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedSysSettingDAO = NewSysSettingDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 设置配置
|
||||
func (this *SysSettingDAO) UpdateSetting(codeFormat string, valueJSON []byte, codeFormatArgs ...interface{}) error {
|
||||
|
||||
@@ -19,7 +19,13 @@ func NewTCPFirewallPolicyDAO() *TCPFirewallPolicyDAO {
|
||||
}).(*TCPFirewallPolicyDAO)
|
||||
}
|
||||
|
||||
var SharedTCPFirewallPolicyDAO = NewTCPFirewallPolicyDAO()
|
||||
var SharedTCPFirewallPolicyDAO *TCPFirewallPolicyDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedTCPFirewallPolicyDAO = NewTCPFirewallPolicyDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化
|
||||
func (this *TCPFirewallPolicyDAO) Init() {
|
||||
|
||||
@@ -24,7 +24,13 @@ func NewUserDAO() *UserDAO {
|
||||
}).(*UserDAO)
|
||||
}
|
||||
|
||||
var SharedUserDAO = NewUserDAO()
|
||||
var SharedUserDAO *UserDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedUserDAO = NewUserDAO()
|
||||
})
|
||||
}
|
||||
|
||||
// 启用条目
|
||||
func (this *UserDAO) EnableUser(id uint32) (rowsAffected int64, err error) {
|
||||
|
||||
28
internal/db/models/version_dao.go
Normal file
28
internal/db/models/version_dao.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
)
|
||||
|
||||
type VersionDAO dbs.DAO
|
||||
|
||||
func NewVersionDAO() *VersionDAO {
|
||||
return dbs.NewDAO(&VersionDAO{
|
||||
DAOObject: dbs.DAOObject{
|
||||
DB: Tea.Env,
|
||||
Table: "edgeVersions",
|
||||
Model: new(Version),
|
||||
PkName: "id",
|
||||
},
|
||||
}).(*VersionDAO)
|
||||
}
|
||||
|
||||
var SharedVersionDAO *VersionDAO
|
||||
|
||||
func init() {
|
||||
dbs.OnReady(func() {
|
||||
SharedVersionDAO = NewVersionDAO()
|
||||
})
|
||||
}
|
||||
5
internal/db/models/version_dao_test.go
Normal file
5
internal/db/models/version_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
)
|
||||
16
internal/db/models/version_model.go
Normal file
16
internal/db/models/version_model.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package models
|
||||
|
||||
// 数据库结构版本
|
||||
type Version struct {
|
||||
Id uint64 `field:"id"` // ID
|
||||
Version string `field:"version"` //
|
||||
}
|
||||
|
||||
type VersionOperator struct {
|
||||
Id interface{} // ID
|
||||
Version interface{} //
|
||||
}
|
||||
|
||||
func NewVersionOperator() *VersionOperator {
|
||||
return &VersionOperator{}
|
||||
}
|
||||
1
internal/db/models/version_model_ext.go
Normal file
1
internal/db/models/version_model_ext.go
Normal file
@@ -0,0 +1 @@
|
||||
package models
|
||||
Reference in New Issue
Block a user