| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package main
- import (
- "database/sql"
- "encoding/json"
- "fmt"
- "time"
- )
- var logData string
- var logAdmin string
- var logDetail string
- func init() {
- go loadLog()
- }
- func loadLog() {
- logData = "[]"
- logAdmin = "[]"
- logDetail = "[]"
- ticker := time.NewTicker(3 * time.Second)
- for {
- // user
- rows, err := db.Query("select UNIX_TIMESTAMP(`log`.`time`), `user`.`name`, `log`.`type` from `log` LEFT JOIN `user` on `log`.`uid` = `user`.`id` where `log`.`type` != 0 AND `log`.`type` != 3 order by `log`.`time` desc LIMIT 50")
- if err != nil {
- logData = "[]"
- fmt.Printf("loadLog query error: %s\n", err)
- continue
- }
- var data []*LogData
- for rows.Next() {
- d := &LogData{}
- rows.Scan(&d.Time, &d.Name, &d.Type)
- data = append(data, d)
- }
- rows.Close()
- j, err := json.Marshal(data)
- if err != nil {
- logData = "[]"
- fmt.Printf("loadLog json error: %s\n", err)
- continue
- }
- logData = string(j)
- // admin
- rows, err = db.Query("select UNIX_TIMESTAMP(`log`.`time`), `user`.`name`, `log`.`type`, `log`.`admin_msg` from `log` LEFT JOIN `user` on `log`.`uid` = `user`.`id` order by `log`.`time` desc")
- if err != nil {
- logAdmin = "[]"
- fmt.Printf("loadLog query error: %s\n", err)
- continue
- }
- var dataAdmin []*LogDataAdmin
- for rows.Next() {
- d := &LogDataAdmin{}
- rows.Scan(&d.Time, &d.Name, &d.Type, &d.Msg)
- dataAdmin = append(dataAdmin, d)
- }
- rows.Close()
- j, err = json.Marshal(dataAdmin)
- if err != nil {
- logAdmin = "[]"
- fmt.Printf("loadLog json error: %s\n", err)
- continue
- }
- logAdmin = string(j)
- // select detail
- rows, err = db.Query("call get_log_details()")
- if err != nil {
- logDetail = "[]"
- fmt.Printf("loadLog query error: %s\n", err)
- continue
- }
- var dataDetails []*LogDataDetails
- for rows.Next() {
- d := &LogDataDetails{}
- var t sql.NullInt64
- err = rows.Scan(&d.Uid, &d.Name, &t, &d.Fail)
- d.Time = int(t.Int64)
- dataDetails = append(dataDetails, d)
- }
- rows.Close()
- j, err = json.Marshal(dataDetails)
- if err != nil {
- logDetail = "[]"
- fmt.Printf("loadLog json error: %s\n", err)
- continue
- }
- logDetail = string(j)
- <-ticker.C
- }
- }
|