package dbdata import ( "github.com/bjdgyc/anylink/base" _ "github.com/go-sql-driver/mysql" _ "github.com/lib/pq" _ "github.com/mattn/go-sqlite3" "xorm.io/xorm" ) var ( xdb *xorm.Engine ) func GetXdb() *xorm.Engine { return xdb } func initDb() { var err error xdb, err = xorm.NewEngine(base.Cfg.DbType, base.Cfg.DbSource) // xdb.ShowSQL(true) if err != nil { base.Fatal(err) } // 初始化数据库 err = xdb.Sync2(&User{}, &Setting{}, &Group{}, &IpMap{}, &AccessAudit{}) if err != nil { base.Fatal(err) } // fmt.Println("s1=============", err) } func initData() { var ( err error ) // 判断是否初次使用 install := &SettingInstall{} err = SettingGet(install) if err == nil && install.Installed { // 已经安装过 return } // 发生错误 if err != ErrNotFound { base.Fatal(err) } err = addInitData() if err != nil { base.Fatal(err) } } func addInitData() error { var ( err error ) sess := xdb.NewSession() defer sess.Close() err = sess.Begin() if err != nil { return err } // SettingSmtp smtp := &SettingSmtp{ Host: "127.0.0.1", Port: 25, From: "vpn@xx.com", Encryption: "None", } err = SettingSessAdd(sess, smtp) if err != nil { return err } // SettingOther other := &SettingOther{ LinkAddr: "vpn.xx.com", Banner: "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为!", AccountMail: accountMail, } err = SettingSessAdd(sess, other) if err != nil { return err } // Install install := &SettingInstall{Installed: true} err = SettingSessAdd(sess, install) if err != nil { return err } return sess.Commit() } func CheckErrNotFound(err error) bool { return err == ErrNotFound } const accountMail = `

您好:

  您的{{.Issuer}}账号已经审核开通。

登陆地址: {{.LinkAddr}}
用户组: {{.Group}}
用户名: {{.Username}}
用户PIN码: {{.PinCode}}
用户动态码(3天后失效):

使用说明:

软件下载地址: https://{{.LinkAddr}}/files/info.txt

`