-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi_page.go
More file actions
67 lines (58 loc) · 1.7 KB
/
api_page.go
File metadata and controls
67 lines (58 loc) · 1.7 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
package qsql
import (
"context"
"fmt"
"github.com/gwaylib/errors"
)
type PageSql struct {
countSql string
querySql string
}
func NewPageSql(countSql, querySql string) *PageSql {
return &PageSql{
countSql: countSql,
querySql: querySql,
}
}
// format sql and return a new PageSql
func (p *PageSql) FmtPage(args ...interface{}) *PageSql {
return &PageSql{
countSql: fmt.Sprintf(p.countSql, args...),
querySql: fmt.Sprintf(p.querySql, args...),
}
}
func (p *PageSql) QueryCount(db *DB, args ...interface{}) (int64, error) {
count := int64(0)
if err := queryElem(db, context.TODO(), &count, p.countSql, args...); err != nil {
return 0, errors.As(err)
}
return count, nil
}
func (p *PageSql) QueryPageArr(db *DB, args ...interface{}) ([]string, [][]interface{}, error) {
titles, data, err := queryPageArr(db, context.TODO(), p.querySql, args...)
if err != nil {
return nil, nil, errors.As(err)
}
return titles, data, nil
}
func (p *PageSql) QueryDBDataArr(db *DB, args ...interface{}) ([]string, [][]*DBData, error) {
titles, data, err := queryDBDataArr(db, context.TODO(), p.querySql, args...)
if err != nil {
return nil, nil, errors.As(err)
}
return titles, data, nil
}
func (p *PageSql) QueryPageMap(db *DB, args ...interface{}) ([]string, []map[string]interface{}, error) {
titles, data, err := queryPageMap(db, context.TODO(), p.querySql, args...)
if err != nil {
return nil, nil, errors.As(err)
}
return titles, data, nil
}
func (p *PageSql) QueryDBDataMap(db *DB, args ...interface{}) ([]string, []map[string]*DBData, error) {
titles, data, err := queryDBDataMap(db, context.TODO(), p.querySql, args...)
if err != nil {
return nil, nil, errors.As(err)
}
return titles, data, nil
}