2022-03-17 15:11:43 +00:00
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"database/sql"
|
2022-11-08 07:44:47 +00:00
|
|
|
|
"os"
|
2022-08-20 02:31:18 +00:00
|
|
|
|
"sync"
|
2022-03-17 15:11:43 +00:00
|
|
|
|
|
2022-03-18 02:13:35 +00:00
|
|
|
|
_ "modernc.org/sqlite"
|
2022-11-08 07:44:47 +00:00
|
|
|
|
"xorm.io/xorm"
|
2022-03-17 15:11:43 +00:00
|
|
|
|
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
2022-11-08 07:44:47 +00:00
|
|
|
|
|
2022-12-14 07:43:39 +00:00
|
|
|
|
"github.com/sjkhsl/study_xxqg/utils"
|
2022-03-17 15:11:43 +00:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
2022-11-08 07:44:47 +00:00
|
|
|
|
engine *xorm.Engine
|
2022-08-20 02:31:18 +00:00
|
|
|
|
|
|
|
|
|
db1 *sql.DB
|
2022-03-17 15:11:43 +00:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func init() {
|
2022-11-08 07:44:47 +00:00
|
|
|
|
en, err := xorm.NewEngine("sqlite", "./config/user.db")
|
2022-03-17 15:11:43 +00:00
|
|
|
|
if err != nil {
|
2022-11-08 07:44:47 +00:00
|
|
|
|
log.Errorln("打开数据库失败!" + err.Error())
|
|
|
|
|
os.Exit(3)
|
2022-03-17 15:11:43 +00:00
|
|
|
|
}
|
2022-11-08 07:44:47 +00:00
|
|
|
|
err = en.Sync2(new(User), new(WechatUser))
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Errorln("同步数据库结构失败" + err.Error())
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
en.SetLogger(&utils.MyLog{})
|
|
|
|
|
en.ShowSQL(true)
|
2022-09-09 15:14:06 +00:00
|
|
|
|
|
2022-11-08 07:44:47 +00:00
|
|
|
|
engine = en
|
2022-03-17 15:11:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-08-20 02:31:18 +00:00
|
|
|
|
func initQuestionDb() {
|
|
|
|
|
once := sync.Once{}
|
|
|
|
|
once.Do(func() {
|
|
|
|
|
var err error
|
2022-08-26 15:00:28 +00:00
|
|
|
|
db1, err = sql.Open("sqlite", "./QuestionBank.db")
|
2022-08-20 02:31:18 +00:00
|
|
|
|
if err != nil {
|
2022-09-22 12:17:06 +00:00
|
|
|
|
log.Errorln("题目数据库打开失败,请检查QuestionDB是否存在")
|
2022-08-20 02:31:18 +00:00
|
|
|
|
log.Panicln(err.Error())
|
|
|
|
|
}
|
2022-11-06 07:01:22 +00:00
|
|
|
|
db1.SetMaxOpenConns(1)
|
2022-08-20 02:31:18 +00:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-08 07:44:47 +00:00
|
|
|
|
// User
|
|
|
|
|
/**
|
|
|
|
|
* @Description:
|
|
|
|
|
*/
|
|
|
|
|
type User struct {
|
|
|
|
|
Nick string `xorm:"TEXT" json:"nick,omitempty"`
|
|
|
|
|
Uid string `xorm:"TEXT" json:"uid,omitempty"`
|
|
|
|
|
Token string `xorm:"TEXT" json:"token,omitempty"`
|
|
|
|
|
LoginTime int64 `xorm:"integer" json:"loginTime,omitempty"`
|
|
|
|
|
PushId string `xorm:"TEXT" json:"pushId,omitempty"`
|
|
|
|
|
Status int `xorm:"integer" json:"status,omitempty"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type WechatUser struct {
|
|
|
|
|
OpenId string `xorm:"TEXT" json:"openId,omitempty"`
|
|
|
|
|
Remark string `xorm:"TEXT" json:"remark,omitempty"`
|
|
|
|
|
Status int `xorm:"INTEGER" json:"status,omitempty"`
|
|
|
|
|
LastRequestTime int64 `xorm:"INTEGER" json:"lastRequestTime,omitempty"`
|
2022-03-17 15:11:43 +00:00
|
|
|
|
}
|