E5BotForSQLite/db/mysql.go

155 lines
3.5 KiB
Go
Raw Normal View History

2021-03-11 12:57:30 +08:00
package db
2020-03-27 09:08:58 +08:00
import (
"database/sql"
2020-03-29 12:07:15 +08:00
_ "github.com/go-sql-driver/mysql"
2021-03-11 12:57:30 +08:00
"main/logger"
"main/util"
2020-03-27 09:08:58 +08:00
)
type MSData struct {
2021-03-11 12:57:30 +08:00
TgId int64
RefreshToken string
MsId string
Uptime int64
Alias string
ClientId string
ClientSecret string
Other string
2020-03-27 09:08:58 +08:00
}
2020-03-27 18:13:14 +08:00
//update data by msId
func UpdateData(u MSData) (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
2020-03-30 22:18:09 +08:00
sqlString := `UPDATE users set tg_id=?,refresh_token=?,uptime=?,alias=?,client_id=?,client_secret=?,other=? where ms_id=?`
2020-03-27 11:19:57 +08:00
stmt, err := db.Prepare(sqlString)
if err != nil {
return false, err
}
2021-03-11 12:57:30 +08:00
_, err = stmt.Exec(u.TgId, u.RefreshToken, u.Uptime, u.Alias, u.ClientId, u.ClientSecret, u.Other, u.MsId)
2020-03-27 11:19:57 +08:00
if err != nil {
return false, err
}
return true, nil
}
//add data
func AddData(u MSData) (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
2020-03-27 09:08:58 +08:00
sqlString := `
2020-03-30 22:18:09 +08:00
INSERT INTO users (tg_id, refresh_token,ms_id, uptime,alias,client_id,client_secret,other)
VALUES (?,?,?,?,?,?,?,?)`
2020-03-27 09:08:58 +08:00
stmt, err := db.Prepare(sqlString)
2020-03-27 11:19:57 +08:00
if err != nil {
return false, err
}
2021-03-11 12:57:30 +08:00
_, err = stmt.Exec(u.TgId, u.RefreshToken, u.MsId, u.Uptime, u.Alias, u.ClientId, u.ClientSecret, u.Other)
2020-03-27 11:19:57 +08:00
if err != nil {
return false, err
}
return true, nil
}
2020-03-27 18:13:14 +08:00
//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()
2020-03-27 18:13:14 +08:00
sqlString := `delete from users where ms_id=?`
2020-03-27 11:19:57 +08:00
stmt, err := db.Prepare(sqlString)
if err != nil {
return false, err
}
2020-03-28 15:12:28 +08:00
res, err := stmt.Exec(msId)
2020-03-27 11:19:57 +08:00
if err != nil {
return false, err
}
_, err = res.RowsAffected()
if err != nil {
return false, err
}
return true, nil
}
2020-03-30 22:18:09 +08:00
func QueryData(rows *sql.Rows) []MSData {
2020-03-28 11:20:01 +08:00
var result = make([]MSData, 0)
2020-03-28 10:20:31 +08:00
defer rows.Close()
2020-03-28 11:20:01 +08:00
for rows.Next() {
2020-03-29 12:07:15 +08:00
var (
2020-03-30 22:18:09 +08:00
tgIdt, uptimet int64
refresht, othert, msidt, aliast, clientIdt, clientSet string
2020-03-29 12:07:15 +08:00
)
2020-03-30 22:18:09 +08:00
rows.Scan(&tgIdt, &refresht, &msidt, &uptimet, &aliast, &clientIdt, &clientSet, &othert)
2020-03-28 14:19:54 +08:00
//fmt.Println(string(tgNamet) + "=>" + uptimet.Format("2006-01-02 15:04:05"))
2020-03-30 22:18:09 +08:00
result = append(result, MSData{tgIdt, refresht, msidt, uptimet, aliast, clientIdt, clientSet, othert})
2020-03-28 14:19:54 +08:00
}
return result
}
func QueryDataByMS(msId string) []MSData {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
2020-03-30 22:18:09 +08:00
rows, err := db.Query("select * from users where ms_id = ?", msId)
2021-03-11 12:57:30 +08:00
util.CheckErr(err)
2020-03-30 22:18:09 +08:00
return QueryData(rows)
}
2020-03-28 14:19:54 +08:00
func QueryDataAll() []MSData {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
2020-03-28 14:19:54 +08:00
rows, err := db.Query("select * from users ")
2021-03-11 12:57:30 +08:00
util.CheckErr(err)
2020-03-30 22:18:09 +08:00
return QueryData(rows)
2020-03-28 10:20:31 +08:00
}
2020-03-27 11:19:57 +08:00
//query data by tg_id
func QueryDataByTG(tgId int64) []MSData {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
2020-03-27 21:46:03 +08:00
rows, err := db.Query("select * from users where tg_id = ?", tgId)
2021-03-11 12:57:30 +08:00
util.CheckErr(err)
2020-03-30 22:18:09 +08:00
return QueryData(rows)
2020-03-27 09:08:58 +08:00
}
func CreateTB() (bool, error) {
db, err := sql.Open(dbDriverName, dbPath)
if err != nil {
logger.Println(err)
}
defer db.Close()
2020-03-27 09:08:58 +08:00
sqltable := `
2020-03-29 12:07:15 +08:00
create table if not exists users
2020-03-27 09:08:58 +08:00
(
tg_id INTEGER,
refresh_token TEXT,
2020-03-30 22:18:09 +08:00
ms_id VARCHAR(255),
2020-03-29 12:07:15 +08:00
uptime INTEGER,
2020-03-30 22:18:09 +08:00
alias VARCHAR(255),
client_id VARCHAR(255),
client_secret VARCHAR(255),
2020-03-27 09:08:58 +08:00
other TEXT
);`
_, err = db.Exec(sqltable)
2020-03-27 11:19:57 +08:00
if err != nil {
return false, err
}
return true, nil
2020-03-27 09:08:58 +08:00
}