115 lines
2.7 KiB
Go
115 lines
2.7 KiB
Go
package database
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
uuid "github.com/satori/go.uuid"
|
|
)
|
|
|
|
var (
|
|
DB *sql.DB
|
|
)
|
|
|
|
func Database() {
|
|
DB, _ = sql.Open("mysql", "sginIn:sXeP48Xje2NLJ4Ek@(112.125.95.197:3306)/sginin")
|
|
//设置数据库最大连接数
|
|
DB.SetConnMaxLifetime(100)
|
|
//设置上数据库最大闲置连接数
|
|
DB.SetMaxIdleConns(10)
|
|
//验证连接
|
|
if err := DB.Ping(); err != nil {
|
|
fmt.Println("数据库连接失败!")
|
|
return
|
|
}
|
|
fmt.Println("数据库链接成功!")
|
|
}
|
|
|
|
// 表结构
|
|
type User struct {
|
|
Uid string
|
|
Account string
|
|
Username string
|
|
Role string
|
|
Integration int
|
|
}
|
|
|
|
func SelectData() string {
|
|
rows, err := DB.Query("SELECT * FROM User")
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
}
|
|
|
|
var integration_ sql.NullInt64
|
|
var uid_, account_wx_, username_, role_ sql.NullString
|
|
var user User
|
|
var stringLine string
|
|
|
|
for rows.Next() {
|
|
err := rows.Scan(&uid_, &account_wx_, &username_, &role_, &integration_)
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
}
|
|
user = User{
|
|
Uid: uid_.String,
|
|
Account: account_wx_.String,
|
|
Username: username_.String,
|
|
Role: role_.String,
|
|
Integration: int(integration_.Int64),
|
|
}
|
|
fmt.Println(user)
|
|
|
|
stringLine = fmt.Sprintf("\n uid: %s \n account: %s \n username:%s \n role: %s \n integration: %d \n",
|
|
user.Uid, user.Account, user.Username, user.Role, user.Integration)
|
|
}
|
|
|
|
return stringLine
|
|
}
|
|
|
|
func SelectUserIntegrationByNickName(nickname string) int {
|
|
var integration_ sql.NullInt64
|
|
var user User
|
|
row := DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'")
|
|
err := row.Scan(&integration_)
|
|
if err != nil {
|
|
row, err := DB.Exec("insert into User(uid,account_wx,username,role,integration) "+
|
|
"values (?,?,?,?,?)", uuid.NewV4().String(), nickname, nickname, "user", 1)
|
|
if err != nil {
|
|
fmt.Println("exec success, ", row)
|
|
fmt.Println("exec failed, ", err)
|
|
return 9990999
|
|
}
|
|
}
|
|
|
|
row = DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'")
|
|
err = row.Scan(&integration_)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
user = User{
|
|
Integration: int(integration_.Int64),
|
|
}
|
|
return user.Integration
|
|
}
|
|
|
|
func UpDataUserIntegrationByNickName(nickname string, integration int) int {
|
|
var integration_ sql.NullInt64
|
|
var user User
|
|
row := DB.QueryRow("update User set integration=? where username=?", integration+1, nickname)
|
|
err := row.Scan(&integration_)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
row = DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'")
|
|
err = row.Scan(&integration_)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
user = User{
|
|
Integration: int(integration_.Int64),
|
|
}
|
|
return user.Integration
|
|
}
|