first commit

This commit is contained in:
2026-02-17 13:06:23 +08:00
commit 7cbd3d061d
349 changed files with 126558 additions and 0 deletions

179
apns/deviceToken.go Normal file
View File

@@ -0,0 +1,179 @@
package apns
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"time"
)
// 连接MySQL数据库
func ConnectDB() (*sql.DB, error) {
// 数据库连接信息
dsn := "wechat_mmtls:hNPpcsT2RH6pYRRk@tcp(106.53.106.115:3306)/wechat_mmtls"
// 连接到数据库
db, err := sql.Open("mysql", dsn)
if err != nil {
return nil, err
}
// 测试连接是否成功
err = db.Ping()
if err != nil {
return nil, err
}
return db, nil
}
// 结果结构体
type APNSVip struct {
ID int
DeviceToken string
Status int
UserName string
WxID string
}
// 结果结构体
type LicenseKey struct {
ID int
DeviceToken string
Status int
License string
expiryDate string
}
// 查询数据
func QueryData(db *sql.DB, query string) ([]APNSVip, error) {
// 查询数据
rows, err := db.Query(query)
if err != nil {
return nil, err
}
defer rows.Close()
var result []APNSVip
for rows.Next() {
var apns APNSVip
if err := rows.Scan(&apns.ID, &apns.DeviceToken, &apns.Status, &apns.UserName, &apns.WxID); err != nil {
return nil, err
}
result = append(result, apns)
}
return result, nil
}
// 查询单条记录数据(防止 SQL 注入)
func queryDataByField(db *sql.DB, fieldName string, value interface{}) (*APNSVip, error) {
// 构建查询语句
query := fmt.Sprintf("SELECT * FROM apns_vip WHERE %s = ? LIMIT 1", fieldName)
// 查询数据
row := db.QueryRow(query, value)
var apns APNSVip
err := row.Scan(&apns.ID, &apns.DeviceToken, &apns.Status, &apns.UserName, &apns.WxID)
if err != nil {
if err == sql.ErrNoRows {
// 如果未找到记录,则返回 nil 和 nil
return nil, nil
}
return nil, err
}
return &apns, nil
}
func IsLicenseBind(db *sql.DB, value string) (*LicenseKey, error) {
// 构建查询语句
query := fmt.Sprintf("SELECT * FROM license_key WHERE license = ? and status=1 LIMIT 1")
// 查询数据
row := db.QueryRow(query, value)
var licenseKey LicenseKey
err := row.Scan(&licenseKey.ID, &licenseKey.DeviceToken, &licenseKey.Status, &licenseKey.License, &licenseKey.expiryDate)
if err != nil {
if err == sql.ErrNoRows {
// 如果未找到记录,则返回 nil 和 nil
return nil, nil
}
return nil, err
}
return &licenseKey, nil
}
func UpdateLicenseBindStatus(db *sql.DB, device_token string, license string) error {
// 构建更新语句
query := "UPDATE license_key SET status = 1,device_token=? WHERE license = ? and status=0"
// 执行更新操作
_, err := db.Exec(query, device_token, license)
if err != nil {
return err
}
return nil
}
func HasLicense(db *sql.DB, value string) (*LicenseKey, error) {
// 构建查询语句
query := fmt.Sprintf("SELECT license FROM license_key WHERE license = ? LIMIT 1")
// 查询数据
row := db.QueryRow(query, value)
var licenseKey LicenseKey
err := row.Scan(&licenseKey.License)
if err != nil {
if err == sql.ErrNoRows {
// 如果未找到记录,则返回 nil 和 nil
return nil, nil
}
return nil, err
}
return &licenseKey, nil
}
// CheckExpiry 检查日期是否过期
func CheckExpiry(expiryDateString string) bool {
// 将字符串解析为时间对象
expiryDate, err := time.Parse("2006-01-02", expiryDateString)
if err != nil {
fmt.Println("Error parsing expiry date:", err)
return false
}
// 获取当前时间
currentTime := time.Now()
// 比较过期日期和当前日期
if expiryDate.Before(currentTime) {
return true
}
return false
}
func main777() {
// 连接数据库
db, err := ConnectDB()
if err != nil {
fmt.Println(err.Error())
}
defer db.Close()
// 根据字段查询数据(防止 SQL 注入)
license := "123"
license_key, err := IsLicenseBind(db, license)
if err != nil {
fmt.Println(err.Error())
}
_ = UpdateLicenseBindStatus(db, "333", "123")
fmt.Println(license_key)
}