db_platform.go
1.88 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
package db
import (
"World/common"
"common/beegomap"
"common/logger"
"encoding/json"
"errors"
"fmt"
)
var (
m_platformIncome *beegomap.BeeMap //make(map[int]*common.PlatformIncomeInfo)
)
func CheckAndLoadPlatformIncome(uid uint32) error {
if m_platformIncome.Check(uint32(uid)) {
return nil
}
return LoadPlatformIncome(int(uid))
}
func LoadPlatformIncome(uid int) error {
cmd := fmt.Sprintf("select data from t_platform_income where uid = %d", uid)
//glog.Info("select sql:", cmd, " uid:", uid)
rows, err := m_game_db.Query(cmd)
if rows != nil {
defer rows.Close()
}
if err != nil {
logger.Notic("mysql select error:%v", 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.PlatformIncomeInfo
err = json.Unmarshal([]byte(value), &data)
if err != nil {
//glog.Info
logger.Notic("unmarshal json failed:%v for:%v", err, value)
return err
}
m_platformIncome.Set(uint32(uid), &data)
break
}
return nil
}
func GetPlatformIncome(uid int) (*common.PlatformIncomeInfo, error) {
vv := m_platformIncome.Get(uint32(uid))
if vv != nil {
v := vv.(*common.PlatformIncomeInfo)
return v, nil
}
return nil, errors.New("not found")
}
func UpdatePlatformIncome(uid int, platform *common.PlatformIncomeInfo) {
m_platformIncome.Set(uint32(uid), platform)
return
}
func SyncPlatformIncomeToDB(uid int) {
vv := m_platformIncome.Get(uint32(uid))
if vv != nil {
data := vv.(*common.PlatformIncomeInfo)
tmp, _ := json.Marshal(data)
cmd := "replace into t_platform_income values(?, ?)"
rows, err := m_game_db.Query(cmd, uid, string(tmp))
if rows != nil {
defer rows.Close()
}
if err != nil {
logger.Notic("mysql update error:%v for sql:", err, cmd)
} else {
logger.Info("mysql update success for sql:%v", cmd)
}
}
}