123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package base
- import (
- "fmt"
- "github.com/druidcaesa/gotool"
- _ "github.com/go-sql-driver/mysql"
- "log"
- "time"
- "ulink-admin/config"
- "ulink-admin/pkg/common"
- redisTool "ulink-admin/pkg/redistool"
- "xorm.io/xorm"
- )
- // X 全局DB
- var (
- SqlDB *xorm.Engine
- RedisDB *redisTool.RedisClient
- )
- func init() {
- var err error
- //配置mysql数据库
- mysql := config.GetMysqlCfg()
- jdbc := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local",
- mysql.Username, mysql.Password, mysql.Host, mysql.Port, mysql.Database)
- SqlDB, err = xorm.NewEngine(mysql.ShowType, jdbc)
- if err != nil {
- log.Fatalf("db error: %#v\n", err.Error())
- }
- err = SqlDB.Ping()
- if err != nil {
- log.Printf("db connect error: %#v\n", err.Error())
- }
- SqlDB.SetMaxIdleConns(10)
- SqlDB.SetMaxOpenConns(100)
- timer := time.NewTicker(time.Minute * 30)
- go func(x *xorm.Engine) {
- for range timer.C {
- err = x.Ping()
- if err != nil {
- log.Fatalf("db connect error: %#v\n", err.Error())
- }
- }
- }(SqlDB)
- SqlDB.ShowSQL(true)
- if config.GetServerCfg().Redis {
- //初始化redis开始
- redisCfg := config.GetRedisCfg()
- redisOpt := common.RedisConnOpt{
- Enable: true,
- Host: redisCfg.RedisHost,
- Port: int32(redisCfg.Port),
- Password: redisCfg.RedisPwd,
- Index: int32(redisCfg.RedisDB),
- TTL: 240,
- }
- RedisDB = redisTool.NewRedis(redisOpt)
- }
- //配置redis结束
- //缓存初始化数据
- //saveCache()
- }
- func GetBeanByIdDesc(bean interface{}) {
- _, err := SqlDB.NewSession().Desc("id").Limit(1).Get(bean)
- if err != nil {
- gotool.Logs.ErrorLog().Println(err)
- }
- }
- // 初始化缓存数据
- /*func saveCache() {
- initDict()
- initConfig()
- }
- func initDict() {
- //查询字典类型数据
- dictTypeDao := new(DictTypeDao)
- typeAll := dictTypeDao.FindAll()
- //所有字典数据
- d := new(DictDataDao)
- listData := d.GetDiceDataAll()
- m := new(model.SysDictData)
- for _, dictType := range typeAll {
- dictData := make([]model.SysDictData, 0)
- for _, data := range *listData {
- if dictType.DictType == data.DictType {
- dictData = append(dictData, data)
- }
- }
- RedisDB.SET(dictType.DictType, m.MarshalDictList(dictData))
- }
- }
- func initConfig() {
- //查询配置数据存入到缓存中
- configDao := new(ConfigDao)
- configSession := configDao.sql(SqlDB.NewSession())
- configs := make([]*model.SysConfig, 0)
- err := configSession.Find(&configs)
- if err != nil {
- gotool.Logs.ErrorLog().Println(err)
- return
- }
- m2 := new(model.SysConfig)
- for _, sysConfig := range configs {
- RedisDB.SET(sysConfig.ConfigKey, m2.Marshal(*sysConfig))
- }
- }*/
|