devops/feishu/data/operation.go
2025-04-02 10:26:57 +08:00

48 lines
1.3 KiB
Go

package data
import (
"feishu/util"
"log"
"time"
)
type Operation struct {
Date time.Time `db:"Date"`
Register int `db:"Register"`
SecondRemain int `db:"SecondRemain"`
ThirdRemain int `db:"ThirdRemain"`
SeventhRemain int `db:"SeventhRemain"`
ThirtiethRemain int `db:"ThirtiethRemain"`
Recharge float64 `db:"Recharge"`
Login int `db:"Login"`
}
type User struct {
Uid int `db:"Uid"`
Level int `db:"Level"`
Exp int `db:"Exp"`
Diamond int `db:"Diamond"`
Star int `db:"Star"`
Energy int `db:"Energy"`
}
func GetOperation() ([]*Operation, error) {
Db, err := util.MySQL()
if err != nil {
log.Printf("GetOperation MySQL error: %v", err)
return nil, err
}
defer Db.Close()
Result := []*Operation{}
ZeroTimestamp := util.ZeroTimestampByTz("Europe/London") - 86400
ZeroTime := time.Unix(ZeroTimestamp, 0).In(time.UTC)
StartDate := ZeroTime.AddDate(0, 0, -7).Format("2006-01-02")
EndDate := ZeroTime.Format("2006-01-02")
err = Db.Select(&Result, "SELECT `Date`, `Register`, `SecondRemain`, `ThirdRemain`, `SeventhRemain`, `ThirtiethRemain`, `Recharge`, `Login` FROM remain where `Date` >= ? and `Date` <= ? order by `Date` desc", StartDate, EndDate)
if err != nil {
log.Printf("GetOperation Select error: %v", err)
return nil, err
}
return Result, nil
}