db_club_income.go
2.28 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package db
import (
"World/common"
"common/beegomap"
"common/logger"
"encoding/json"
"fmt"
"strconv"
"sync"
"time"
)
var (
m_clubIncome *beegomap.BeeMap //make(map[int]*common.ClubCreaterIncomeInfo)
ClubIncome_locker sync.Mutex
)
func CheckAndLoadClubIncome(uid uint32) error {
if m_clubIncome.Check(uint32(uid)) {
return nil
}
return LoadClubIncome(int(uid))
}
func LoadClubIncome(uid int) error {
cmd := fmt.Sprintf("select data from t_club_income where uid = %d", uid)
rows, err := m_game_db.Query(cmd)
if rows != nil {
defer rows.Close()
}
if err != nil {
//glog.Info("mysql select error:", err)
return err
}
for rows.Next() {
var value string
err = rows.Scan(&value)
if err != nil {
logger.Notic("mysql handle result error:%v", err)
return err
}
var data common.ClubCreaterIncomeInfo
err = json.Unmarshal([]byte(value), &data)
if err != nil {
logger.Notic("unmarshal json failed:%v", err)
return err
}
m_clubIncome.Set(uint32(uid), &data)
break
}
return nil
}
func GetClubIncome(uid int) (*common.ClubCreaterIncomeInfo, error) {
vv := m_clubIncome.Get(uint32(uid))
if vv != nil {
v := vv.(*common.ClubCreaterIncomeInfo)
return v, nil
}
return nil, nil
}
func UpdateClubIncome(uid int, user *common.ClubCreaterIncomeInfo) {
m_clubIncome.Set(uint32(uid), user)
return
}
func SyncClubIncomeToDB(uid int) error {
var err error = nil
vv := m_clubIncome.Get(uint32(uid))
if vv != nil {
data := vv.(*common.ClubCreaterIncomeInfo)
tmp, _ := json.Marshal(data)
cmd := "replace into t_club_income values(?, ?)"
rows, er := m_game_db.Query(cmd, uid, string(tmp))
if rows != nil {
defer rows.Close()
}
err = er
if er != nil {
logger.Info("mysql update error:%v", err, " for sql:%v", cmd)
} else {
logger.Info("mysql update success for sql:%v", cmd)
}
}
return err
}
func RecordClubIncomeTransfer(uid uint32, amount int64) error {
var err error
logger.Info("RecordClubIncomeTransfer uid:%v amount:%v", uid, amount)
//insert into t_club_income_transfer(uid, amount, time) values (2, 100, 0);
cmd := "insert into t_club_income_transfer(uid, amount, time) values (" + strconv.Itoa(int(uid)) + "," + strconv.Itoa(int(amount)) + "," +
strconv.Itoa(int(time.Now().Unix())) + ")"
err = ExcuteCmd(cmd)
return err
}