/
ping.go
55 lines (49 loc) · 1.2 KB
/
ping.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package dao
import (
"context"
"fmt"
m "github.com/fuwensun/goms/eApi/internal/model"
log "github.com/sirupsen/logrus"
)
const (
_readPing = "SELECT type,count FROM ping_table WHERE type=?"
_updatePing = "UPDATE ping_table SET count=? WHERE type=?"
)
// ReadPing read ping.
func (d *dao) ReadPing(ctx context.Context, t string) (*m.Ping, error) {
db := d.db
p := &m.Ping{}
rows, err := db.Query(_readPing, t)
if err != nil {
err = fmt.Errorf("db query: %w", err)
return nil, err
}
defer rows.Close()
if rows.Next() {
err := rows.Scan(&p.Type, &p.Count)
if err != nil {
err = fmt.Errorf("db rows scan: %w", err)
return nil, err
}
log.Debugf("db read ping: %v", *p)
return p, nil
}
log.Debugf("db not found ping, type: %v", t)
return p, nil //not found data
}
// UpdatePing update ping.
func (d *dao) UpdatePing(ctx context.Context, p *m.Ping) error {
db := d.db
result, err := db.Exec(_updatePing, p.Count, p.Type)
if err != nil {
err = fmt.Errorf("db exec update: %w", err)
return err
}
_, err = result.RowsAffected()
if err != nil {
err = fmt.Errorf("db rows affected: %w", err)
return err
}
log.Debugf("db update ping: %v", *p) //Int64("rows", num).
return nil
}