main.go
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package main
import (
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
beeorm "github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/common"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/config"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/redis"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/websocket"
"opp/controllers"
"opp/internal/utils"
_ "opp/routers"
"opp/services/contrab"
"os"
"strings"
"time"
)
func init() {
time.Local = time.FixedZone("CST", 3600*8)
log.InitLog(config.Logger{
Filename: beego.AppConfig.String("aliyun_logs_access"),
Level: fmt.Sprintf("%v", utils.ResolveLogLevel(beego.AppConfig.String("log_level"))),
})
//TODO:kafka log配置
//log.InitKafkaLogger(log.KafkaConfig{
// Topic: "ability",
// Addrs: []string{"127.0.0.1:9092"},
// Level: 6,
//})
redisSource := fmt.Sprintf("%v:%v", beego.AppConfig.String("redis_add"), beego.AppConfig.String("redis_add_port"))
err := redis.InitWithDb(100, redisSource, beego.AppConfig.String("redis_auth"), "0")
log.Info(fmt.Sprintf("init redis:%v", redisSource))
if err != nil {
log.Fatal("connect to redis error address:", beego.AppConfig.String("redis_add_port"), beego.AppConfig.String("redis_auth"), err)
panic(err)
}
dataSource := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?loc=Asia%%2FShanghai&charset=utf8mb4",
beego.AppConfig.String("mysql_user"),
beego.AppConfig.String("mysql_password"),
beego.AppConfig.String("mysql_host"),
beego.AppConfig.String("mysql_port"),
beego.AppConfig.String("mysql_db_name"),
)
//log.Info(fmt.Sprintf("init mysql:%v", dataSource))
NewBeeormEngine(config.Mysql{
//AliasName: "default",
DataSource: dataSource,
MaxIdle: 100,
MaxOpen: 100,
})
//TODO:邮件服务配置
common.InitMailService(&common.MailConfig{
//Host:"smtp.qq.com",
//Port:465,
//From:"785410885@qq.com",
//Password:"ibfduqhfmgypbffe", //授权码
//IsUseSsl:true,
})
//im.InitImClient(beego.AppConfig.String("net_im_base_url"), beego.AppConfig.String("net_im_app_key"), beego.AppConfig.String("net_im_app_secret"))
websocket.InitWebsocketConnmgrs(10)
//log.Info(fmt.Sprintf("env MYSQL_USER:%v", os.Getenv("MYSQL_USER")))
//log.Info(fmt.Sprintf("env MYSQL_PASSWORD:%v", os.Getenv("MYSQL_PASSWORD")))
//log.Info(fmt.Sprintf("env MYSQL_HOST:%v", os.Getenv("MYSQL_HOST")))
//log.Info(fmt.Sprintf("env MYSQL_PORT:%v", os.Getenv("MYSQL_PORT")))
log.Info(fmt.Sprintf("env MYSQL_DB_NAME:%v", os.Getenv("MYSQL_DB_NAME")))
log.Info(fmt.Sprintf("env LOG_LEVEL:%v", os.Getenv("LOG_LEVEL")))
log.Info(fmt.Sprintf("env aliyun_logs_access:%v", os.Getenv("aliyun_logs_access")))
log.Info(fmt.Sprintf("env REDIS_HOST:%v", os.Getenv("REDIS_HOST")))
log.Info(fmt.Sprintf("env REDIS_PORT:%v", os.Getenv("REDIS_PORT")))
log.Info(fmt.Sprintf("env aliyun_file_access:%v", os.Getenv("aliyun_file_access")))
//mime.AddExtensionType(".mp3","audio/mpeg")
}
func main() {
defer func() {
log.Info("app on stop!")
}()
log.Info("app on start!")
log.Info("Beego Run Mode:", beego.BConfig.RunMode)
//StaticFileAllowCors()
beego.InsertFilter("file/opp/*", beego.BeforeStatic, FilterBeforeStatic)
//https
beego.BConfig.Listen.EnableHTTPS = true
beego.BConfig.Listen.Graceful = true
beego.BConfig.Listen.HTTPSPort = 443
beego.BConfig.Listen.HTTPSCertFile = "conf/_.fjmaimaimai.com_bundle.crt"
beego.BConfig.Listen.HTTPSKeyFile = "conf/_.fjmaimaimai.com.key"
contrab.Run()
//beego.BConfig.Listen.EnableAdmin = true //开启进程内监控模块
beego.Run()
}
var FilterBeforeStatic = func(ctx *context.Context) {
if strings.HasSuffix(ctx.Request.RequestURI, ".mp3") {
//If-Modified-Since
//ctx.Request.Header.Add("If-Modified-Since","")
ctx.ResponseWriter.Header().Add("Content-Type", "audio/mpeg")
}
}
func StaticFileAllowCors() {
beego.InsertFilter("/file/opp/*", beego.BeforeRouter, controllers.AllowOption)
}
func NewBeeormEngine(conf config.Mysql) {
aliasName := "default"
if len(conf.AliasName) > 0 {
aliasName = conf.AliasName
}
err := beeorm.RegisterDataBase(aliasName, "mysql", conf.DataSource)
if err != nil {
log.Error(err)
} else {
//log.Debug("open db address:",conf.DataSource)
}
beeorm.SetMaxIdleConns(aliasName, conf.MaxIdle)
beeorm.SetMaxOpenConns(aliasName, conf.MaxOpen)
//orm.DefaultTimeLoc = time.Local
//orm.Debug = true
}