E5BotForSQLite/sqlite.go

133 lines
3.1 KiB
Go
Raw Normal View History

2020-03-27 09:08:58 +08:00
package main
import (
"database/sql"
2020-03-27 11:19:57 +08:00
"fmt"
2020-03-27 09:08:58 +08:00
_ "github.com/mattn/go-sqlite3"
2020-03-27 11:19:57 +08:00
"time"
2020-03-27 09:08:58 +08:00
)
type MSData struct {
2020-03-27 18:24:43 +08:00
tgId int64
2020-03-27 09:08:58 +08:00
refreshToken string
2020-03-27 18:13:14 +08:00
msId string
2020-03-27 11:19:57 +08:00
uptime time.Time
2020-03-27 09:08:58 +08:00
other string
}
func init() {
}
2020-03-27 11:19:57 +08:00
2020-03-27 18:13:14 +08:00
//update data by msId
2020-03-27 11:19:57 +08:00
func UpdateData(db *sql.DB, u MSData) (bool, error) {
2020-03-27 18:13:14 +08:00
sqlString := `UPDATE users set tg_id=?,refresh_token=?,uptime=?,other=? where ms_id=?`
2020-03-27 11:19:57 +08:00
stmt, err := db.Prepare(sqlString)
if err != nil {
return false, err
}
2020-03-27 18:13:14 +08:00
res, err := stmt.Exec(u.tgId, u.refreshToken, u.uptime, u.other, u.msId)
2020-03-27 11:19:57 +08:00
if err != nil {
return false, err
}
fmt.Println("Update Data Successd:", res)
return true, nil
}
//add data
func AddData(db *sql.DB, u MSData) (bool, error) {
2020-03-27 09:08:58 +08:00
sqlString := `
2020-03-27 18:13:14 +08:00
INSERT INTO users (tg_id, refresh_token,ms_id, uptime,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
}
2020-03-27 18:13:14 +08:00
_, err = stmt.Exec(u.tgId, u.refreshToken, u.msId, u.uptime, 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
2020-03-28 15:12:28 +08:00
func DelData(db *sql.DB, msId string) (bool, error) {
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-28 11:20:01 +08:00
func QueryDataByMS(db *sql.DB, msId string) []MSData {
2020-03-28 10:20:31 +08:00
rows, err := db.Query("select * from users where ms_id = ?", msId)
CheckErr(err)
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() {
var refresht, othert, msidt string
var tgIdt int64
var uptimet time.Time
rows.Scan(&tgIdt, &refresht, &msidt, &uptimet, &othert)
2020-03-28 14:19:54 +08:00
//fmt.Println(string(tgNamet) + "=>" + uptimet.Format("2006-01-02 15:04:05"))
result = append(result, MSData{tgIdt, refresht, msidt, uptimet, othert})
}
return result
}
func QueryDataAll(db *sql.DB) []MSData {
rows, err := db.Query("select * from users ")
CheckErr(err)
var result = make([]MSData, 0)
defer rows.Close()
for rows.Next() {
var refresht, othert, msidt string
var tgIdt int64
var uptimet time.Time
rows.Scan(&tgIdt, &refresht, &msidt, &uptimet, &othert)
2020-03-28 11:20:01 +08:00
//fmt.Println(string(tgNamet) + "=>" + uptimet.Format("2006-01-02 15:04:05"))
result = append(result, MSData{tgIdt, refresht, msidt, uptimet, othert})
}
return result
2020-03-28 10:20:31 +08:00
}
2020-03-27 11:19:57 +08:00
//query data by tg_id
2020-03-28 10:20:31 +08:00
func QueryDataByTG(db *sql.DB, tgId int64) []MSData {
2020-03-27 21:46:03 +08:00
rows, err := db.Query("select * from users where tg_id = ?", tgId)
2020-03-27 09:08:58 +08:00
CheckErr(err)
2020-03-27 11:19:57 +08:00
var result = make([]MSData, 0)
defer rows.Close()
for rows.Next() {
2020-03-27 18:13:14 +08:00
var refresht, othert, msidt string
2020-03-27 18:24:43 +08:00
var tgIdt int64
2020-03-27 11:19:57 +08:00
var uptimet time.Time
2020-03-27 18:13:14 +08:00
rows.Scan(&tgIdt, &refresht, &msidt, &uptimet, &othert)
result = append(result, MSData{tgIdt, refresht, msidt, uptimet, othert})
2020-03-27 11:19:57 +08:00
}
return result
2020-03-27 09:08:58 +08:00
}
2020-03-27 11:19:57 +08:00
func CreateTB(db *sql.DB) (bool, error) {
2020-03-27 09:08:58 +08:00
sqltable := `
create table if not exists "users"
(
tg_id INTEGER,
refresh_token TEXT,
2020-03-27 18:13:14 +08:00
ms_id TEXT,
2020-03-27 11:19:57 +08:00
uptime DATE,
2020-03-27 09:08:58 +08:00
other TEXT
);`
2020-03-27 11:19:57 +08:00
_, err := db.Exec(sqltable)
if err != nil {
return false, err
}
return true, nil
2020-03-27 09:08:58 +08:00
}