change db to sqlite

This commit is contained in:
iyear 2021-06-14 21:37:58 +08:00
parent 088d0f2708
commit 3e5ed2b26c
3 changed files with 32 additions and 170 deletions

View File

@ -1,161 +0,0 @@
package core
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"gorm.io/gorm"
"main/logger"
"main/outlook"
"main/util"
"time"
)
var db *gorm.DB
func InitDB() error {
var err error
db, err = gorm.Open("11", &gorm.Config{
NowFunc: func() time.Time {
return time.Now().UTC()
},
})
if err != nil {
return err
}
return nil
}
//update data by msId
func UpdateData(u Client) (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
sqlString := `UPDATE Clients set tg_id=?,refresh_token=?,uptime=?,alias=?,client_id=?,client_secret=?,other=? where ms_id=?`
stmt, err := db.Prepare(sqlString)
if err != nil {
return false, err
}
_, err = stmt.Exec(u.TgId, u.RefreshToken, u.Uptime, u.Alias, u.ClientId, u.ClientSecret, u.Other, u.MsId)
if err != nil {
return false, err
}
return true, nil
}
//add data
func AddData(u Client) (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
sqlString := `
INSERT INTO Clients (tg_id, refresh_token,ms_id, uptime,alias,client_id,client_secret,other)
VALUES (?,?,?,?,?,?,?,?)`
stmt, err := db.Prepare(sqlString)
if err != nil {
return false, err
}
_, err = stmt.Exec(u.TgId, u.RefreshToken, u.MsId, u.Uptime, u.Alias, u.ClientId, u.ClientSecret, u.Other)
if err != nil {
return false, err
}
return true, nil
}
//del data by ms_id
func DelData(msId string) (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
sqlString := `delete from Clients where ms_id=?`
stmt, err := db.Prepare(sqlString)
if err != nil {
return false, err
}
res, err := stmt.Exec(msId)
if err != nil {
return false, err
}
_, err = res.RowsAffected()
if err != nil {
return false, err
}
return true, nil
}
func QueryData(rows *sql.Rows) []Client {
var result = make([]Client, 0)
defer rows.Close()
for rows.Next() {
var (
tgIdt, uptimet int64
refresht, othert, msidt, aliast, clientIdt, clientSet string
)
rows.Scan(&tgIdt, &refresht, &msidt, &uptimet, &aliast, &clientIdt, &clientSet, &othert)
//fmt.Println(string(tgNamet) + "=>" + uptimet.Format("2006-01-02 15:04:05"))
result = append(result, Client{tgIdt, refresht, msidt, uptimet, aliast, clientIdt, clientSet, othert})
}
return result
}
func QueryDataByMS(msId string) []Client {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
rows, err := db.Query("select * from Clients where ms_id = ?", msId)
util.CheckErr(err)
return QueryData(rows)
}
func QueryDataAll() []Client {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
rows, err := db.Query("select * from Clients ")
util.CheckErr(err)
return QueryData(rows)
}
//query data by tg_id
func QueryDataByTG(tgId int64) []Client {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
rows, err := db.Query("select * from Clients where tg_id = ?", tgId)
util.CheckErr(err)
return QueryData(rows)
}
func CreateTB() (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
sqltable := `
create table if not exists Clients
(
tg_id INTEGER,
refresh_token TEXT,
ms_id VARCHAR(255),
uptime INTEGER,
alias VARCHAR(255),
client_id VARCHAR(255),
client_secret VARCHAR(255),
other TEXT
);`
_, err = db.Exec(sqltable)
if err != nil {
return false, err
}
return true, nil
}

View File

@ -1,4 +1,4 @@
package core
package model
import (
"github.com/pkg/errors"
@ -10,14 +10,14 @@ import (
)
type Client struct {
TgId int64 `gorm:"column:tg_id"`
RefreshToken string `gorm:"column:refresh_token"`
MsId string `gorm:"column:ms_id"`
Uptime int64 `gorm:"column:uptime"`
Alias string `gorm:"column:alias"`
ClientId string `gorm:"column:client_id"`
ClientSecret string `gorm:"column:client_secret"`
Other string `gorm:"column:other"`
TgId int64 `gorm:"unique;not null"`
RefreshToken string `gorm:"not null"`
MsId string `gorm:"unique;primaryKey;not null"`
Uptime int64 `gorm:"autoUpdateTime;not null"`
Alias string `gorm:"not null"`
ClientId string `gorm:"not null"`
ClientSecret string `gorm:"not null"`
Other string
}
const (

23
model/sqlite.go Normal file
View File

@ -0,0 +1,23 @@
package model
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"time"
)
var DB *gorm.DB
func InitDB() error {
var err error
DB, err = gorm.Open(sqlite.Open("data.db"), &gorm.Config{
NowFunc: func() time.Time {
return time.Now().UTC()
},
})
if err != nil {
return err
}
DB.AutoMigrate(&Client{})
return nil
}