初步实现安装界面

This commit is contained in:
刘祥超
2020-10-13 20:05:13 +08:00
parent 6d268d0b73
commit 0e3330e1c6
76 changed files with 2550 additions and 88 deletions

View File

@@ -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
}

View File

@@ -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 {

View File

@@ -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()
}
}

View File

@@ -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 {

View File

@@ -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()

View File

@@ -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 {

View File

@@ -25,7 +25,9 @@ type HTTPAccessLogDAOWrapper struct {
func init() {
initializer := NewDBNodeInitializer()
go initializer.Start()
dbs.OnReady(func() {
go initializer.Start()
})
}
// 获取获取DAO

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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{

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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
}

View File

@@ -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() {

View File

@@ -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()

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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 {

View File

@@ -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) {

View File

@@ -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() {

View File

@@ -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) {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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("")
}

View File

@@ -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() {

View File

@@ -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 {

View File

@@ -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() {

View File

@@ -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 {

View File

@@ -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) {

View File

@@ -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 {

View File

@@ -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() {

View File

@@ -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) {

View 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()
})
}

View File

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

View 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{}
}

View File

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