package main import ( "fmt" "time" "91porn-server/app/appg" "91porn-server/app/middleware/authuser" "91porn-server/app/router" "91porn-server/common" "91porn-server/common/cachev2" "91porn-server/common/conf" "91porn-server/common/db" "91porn-server/common/log" "91porn-server/common/services" "91porn-server/models" "91porn-server/models/Init" fw "git.ruishengces.com/pub_tool/autotest" "github.com/gin-gonic/gin" ) type Env struct { AppToken string // APP 用户 token TestUID uint64 } func (e *Env) Start(cfg fw.Config, base *fw.BaseEnv) { time.Local, _ = time.LoadLocation("Asia/Shanghai") // 读取配置 appCfg := appg.GlobalConfig{} if err := conf.LoadJSON("../../app/config/app.json", &appCfg); err != nil { panic("load config error: " + err.Error()) } appg.Conf = &appCfg log.Init(log.Options{Level: appCfg.Log.Level, DisableStack: appCfg.Log.DisableStacktrace}) common.InitGinSecret(appCfg.Base.ResKey, appCfg.Base.ResKey360, appCfg.Base.Env) // 初始化 MongoDB ds := db.InitDS(appg.InitMongodbParam(models.RegisterPool)) for k, v := range ds { switch k { case models.VideoDb: appg.VideoDB = v case models.LogDb: appg.LogDB = v case models.StatDb: appg.StatDB = v } } // 初始化 Redis appg.InitRedis() services.Init(appg.Redis) cachev2.Init(appg.Redis, log.ZapLog) // 初始化 Models Init.InitMongo() // 生成 APP 测试 token e.TestUID = 300100 var err error e.AppToken, err = authuser.GenToken(&authuser.Claims{ UID: e.TestUID, Timestamp: time.Now().Unix(), Type: 0, }) if err != nil { panic("gen token error: " + err.Error()) } // 缓存到 Redis tokenKey := fmt.Sprintf("token:user:%d", e.TestUID) _ = appg.Redis.Set(tokenKey, e.AppToken, 24*time.Hour) // 启动 HTTP 服务 gin.SetMode(gin.TestMode) base.AppBaseURL = base.StartHTTP("APP", 13051, router.SetupGin()) } func (e *Env) SetupData() { // 基础数据由各 Suite 的 Setup 负责 } func (e *Env) CleanData() {} func (e *Env) Destroy() { db.CloseDS() _ = appg.RedisClose() } func (e *Env) Meta() []fw.ReportMeta { return []fw.ReportMeta{ {Key: "项目", Value: "91porn-server"}, {Key: "模块", Value: "签到"}, {Key: "时间", Value: time.Now().Format("2006-01-02 15:04:05")}, } }