Files
novatask/internal/config/config.go
2024-12-13 16:15:20 +08:00

44 lines
949 B
Go

package config
import (
"fmt"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/rest"
"net/url"
"nova_task/internal/pkg/earn"
"time"
)
type Config struct {
rest.RestConf
MySql MySqlConf
Auth struct {
AccessSecret string
AccessExpire time.Duration
}
Earn earn.Config
}
// MySqlConf mysql配置
type MySqlConf struct {
Addr string
User string
Password string
Database string
Loc string `json:",default=Local"`
Log string `json:",default=disableStmt,options=allow|disable|disableStmt"`
}
func (m MySqlConf) Dsn() string {
return fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=%s", m.User, m.Password, m.Addr, m.Database, url.QueryEscape(m.Loc))
}
func (m MySqlConf) Conn(opts ...sqlx.SqlOption) sqlx.SqlConn {
if m.Log == "disable" {
sqlx.DisableLog()
} else if m.Log == "disableStmt" {
sqlx.DisableStmtLog()
}
return sqlx.NewMysql(m.Dsn(), opts...)
}