@@ -5,60 +5,64 @@ import (
5
5
"chat/utils"
6
6
"database/sql"
7
7
"fmt"
8
+ "math"
8
9
"strings"
9
10
)
10
11
11
- func GetRedeemData (db * sql.DB ) []RedeemData {
12
- var data []RedeemData
12
+ func GetRedeemData (db * sql.DB , page int64 ) PaginationForm {
13
+ var data []interface {}
14
+ var total int64
15
+ if err := globals .QueryRowDb (db , `
16
+ SELECT COUNT(*) FROM redeem
17
+ ` ).Scan (& total ); err != nil {
18
+ return PaginationForm {
19
+ Status : false ,
20
+ Message : err .Error (),
21
+ }
22
+ }
13
23
14
24
rows , err := globals .QueryDb (db , `
15
- SELECT quota, COUNT(*) AS total, SUM(IF( used = 0, 0, 1)) AS used
25
+ SELECT code, quota, used, created_at, updated_at
16
26
FROM redeem
17
- GROUP BY quota
18
- ` )
27
+ ORDER BY id DESC LIMIT ? OFFSET ?
28
+ ` , pagination , page * pagination )
29
+
19
30
if err != nil {
20
- return data
31
+ return PaginationForm {
32
+ Status : false ,
33
+ Message : err .Error (),
34
+ }
21
35
}
22
36
23
37
for rows .Next () {
24
- var d RedeemData
25
- if err := rows .Scan (& d .Quota , & d .Total , & d .Used ); err != nil {
26
- return data
38
+ var redeem RedeemData
39
+ var createdAt []uint8
40
+ var updatedAt []uint8
41
+ if err := rows .Scan (& redeem .Code , & redeem .Quota , & redeem .Used , & createdAt , & updatedAt ); err != nil {
42
+ return PaginationForm {
43
+ Status : false ,
44
+ Message : err .Error (),
45
+ }
27
46
}
28
- data = append (data , d )
29
- }
30
-
31
- return data
32
- }
33
-
34
- func GetRedeemSegment (db * sql.DB , quota float32 , onlyUnused bool ) ([]string , error ) {
35
- var codes []string
36
- var rows * sql.Rows
37
- var err error
38
47
39
- if onlyUnused {
40
- rows , err = globals .QueryDb (db , `
41
- SELECT code FROM redeem WHERE quota = ? AND used = 0
42
- ` , quota )
43
- } else {
44
- rows , err = globals .QueryDb (db , `
45
- SELECT code FROM redeem WHERE quota = ?
46
- ` , quota )
48
+ redeem .CreatedAt = utils .ConvertTime (createdAt ).Format ("2006-01-02 15:04:05" )
49
+ redeem .UpdatedAt = utils .ConvertTime (updatedAt ).Format ("2006-01-02 15:04:05" )
50
+ data = append (data , redeem )
47
51
}
48
52
49
- if err != nil {
50
- return codes , err
53
+ return PaginationForm {
54
+ Status : true ,
55
+ Total : int (math .Ceil (float64 (total ) / float64 (pagination ))),
56
+ Data : data ,
51
57
}
58
+ }
52
59
53
- for rows .Next () {
54
- var code string
55
- if err := rows .Scan (& code ); err != nil {
56
- return codes , err
57
- }
58
- codes = append (codes , code )
59
- }
60
+ func DeleteRedeemCode (db * sql.DB , code string ) error {
61
+ _ , err := globals .ExecDb (db , `
62
+ DELETE FROM redeem WHERE code = ?
63
+ ` , code )
60
64
61
- return codes , nil
65
+ return err
62
66
}
63
67
64
68
func GenerateRedeemCodes (db * sql.DB , num int , quota float32 ) RedeemGenerateResponse {
0 commit comments