|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"sync"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/go-redis/redis/v8"
|
|
|
|
"github.com/rocboss/paopao-ce/global"
|
|
|
|
"github.com/rocboss/paopao-ce/internal/model"
|
|
|
|
"github.com/rocboss/paopao-ce/internal/service"
|
|
|
|
"github.com/rocboss/paopao-ce/pkg/logger"
|
|
|
|
"github.com/rocboss/paopao-ce/pkg/setting"
|
|
|
|
"github.com/rocboss/paopao-ce/pkg/zinc"
|
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
err := setupSetting()
|
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("init.setupSetting err: %v", err)
|
|
|
|
}
|
|
|
|
err = setupLogger()
|
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("init.setupLogger err: %v", err)
|
|
|
|
}
|
|
|
|
err = setupDBEngine()
|
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("init.setupDBEngine err: %v", err)
|
|
|
|
}
|
|
|
|
client := zinc.NewClient(global.SearchSetting)
|
|
|
|
service.Initialize(global.DBEngine, client)
|
|
|
|
}
|
|
|
|
|
|
|
|
func setupSetting() error {
|
|
|
|
setting, err := setting.NewSetting()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
err = setting.ReadSection("Server", &global.ServerSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("App", &global.AppSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("Runtime", &global.RuntimeSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("Log", &global.LoggerSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("Database", &global.DatabaseSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("Search", &global.SearchSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("Redis", &global.RedisSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("JWT", &global.JWTSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = setting.ReadSection("Storage", &global.AliossSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
global.JWTSetting.Expire *= time.Second
|
|
|
|
global.ServerSetting.ReadTimeout *= time.Second
|
|
|
|
global.ServerSetting.WriteTimeout *= time.Second
|
|
|
|
global.Mutex = &sync.Mutex{}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func setupLogger() error {
|
|
|
|
logger, err := logger.New(global.LoggerSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
global.Logger = logger
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func setupDBEngine() error {
|
|
|
|
var err error
|
|
|
|
global.DBEngine, err = model.NewDBEngine(global.DatabaseSetting)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
global.Redis = redis.NewClient(&redis.Options{
|
|
|
|
Addr: global.RedisSetting.Host,
|
|
|
|
Password: global.RedisSetting.Password,
|
|
|
|
DB: global.RedisSetting.DB,
|
|
|
|
})
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|