Commit 55c2be39efbc18d05f5c3cbe64064282df347274

Authored by 陆恒
1 parent dcce4952

修复每日任务清零的问题

src/HttpServer/logic/constdef.go
... ... @@ -2,51 +2,49 @@ package logic
2 2  
3 3 //任务成就类型枚举 协议上报用
4 4 const (
5   - TASKTYPE_PASSLEVEL = 1 //表示通过x关卡
6   - TASKTYPE_GETREDBAG = 2 //领取x次红包
7   - TASKTYPE_WATCHADS = 3 //3表示观看x次广告
8   - TASKTYPE_KILLSTAR = 4 //4表示消除x颗星星
9   - TASKTYPE_USEITEM = 5 //5表示使用x次道具
  5 + TASKTYPE_PASSLEVEL = 1 //表示通过x关卡
  6 + TASKTYPE_GETREDBAG = 2 //领取x次红包
  7 + TASKTYPE_WATCHADS = 3 //3表示观看x次广告
  8 + TASKTYPE_KILLSTAR = 4 //4表示消除x颗星星
  9 + TASKTYPE_USEITEM = 5 //5表示使用x次道具
10 10 )
11 11  
12   -
13 12 //任务类型 对应表
14 13 const (
15   - DAILY_TASKTYPE_LOGIN =1 //1 每日登录
16   - DAILY_TASKTYPE_GETGUANCNT = 2 //提取存钱罐
17   - DAILY_TASKTYPE_PASSLEVEL = 3 //近日通过关
18   - DAILY_TASKTYPE_USEITEM = 4 //使用道具数
19   - DAILY_TASKTYPE_GETREDBAG = 5 //领取红包次数
20   - DAILY_TASKTYPE_GETGUANGOLD = 6 //收取金币x枚
21   - DAILY_TASKTYPE_ONLINEMIN = 7 //在线分钟数
  14 + DAILY_TASKTYPE_LOGIN = 1 //1 每日登录
  15 + DAILY_TASKTYPE_GETGUANCNT = 2 //提取存钱罐
  16 + DAILY_TASKTYPE_PASSLEVEL = 3 //近日通过关
  17 + DAILY_TASKTYPE_USEITEM = 4 //使用道具数
  18 + DAILY_TASKTYPE_GETREDBAG = 5 //领取红包次数
  19 + DAILY_TASKTYPE_GETGUANGOLD = 6 //收取金币x枚
  20 + DAILY_TASKTYPE_ONLINEMIN = 7 //在线分钟数
22 21 )
23 22  
24 23 //成就类型 对应表
25 24 const (
26   - ACHIEVETYPE_WATCHADDS = 1 //累计观看广告次数
27   - ACHIEVETYPE_USERLV = 2 //人物等级
28   - ACHIEVETYPE_KILLSTAR = 3 //累计消除星星数
29   - ACHIEVETYPE_GETGUANCNT = 4 //累计存钱罐提取
30   - ACHIEVETYPE_USEITEMCNT = 5 //累计道具使用
  25 + ACHIEVETYPE_WATCHADDS = 1 //累计观看广告次数
  26 + ACHIEVETYPE_USERLV = 2 //人物等级
  27 + ACHIEVETYPE_KILLSTAR = 3 //累计消除星星数
  28 + ACHIEVETYPE_GETGUANCNT = 4 //累计存钱罐提取
  29 + ACHIEVETYPE_USEITEMCNT = 5 //累计道具使用
31 30  
32 31 )
33 32  
34 33 //奖励类型枚举
35 34 const (
36   - REWARDTYPE_STAR = 1 //星星
37   - REWARDTYPE_CHUI =2
38   - REWARDTYPE_SHUA = 3
39   - REWARDTYPE_SWAP = 4
  35 + REWARDTYPE_STAR = 1 //星星
  36 + REWARDTYPE_CHUI = 2
  37 + REWARDTYPE_SHUA = 3
  38 + REWARDTYPE_SWAP = 4
40 39 REWARDTYPE_ELIMITE = 5
41   - REWARDTYPE_EXP = 6
42   - REWARDTYPE_GOLD = 7
  40 + REWARDTYPE_EXP = 6
  41 + REWARDTYPE_GOLD = 7
43 42 )
44 43  
45   -var (
46   - WETCHATAPPID="wx572a2a5ec4538f33"
47   - WETCHATSERCRT = "b31e2e7406af88fe7395cd178bdb64fc"
  44 +const (
  45 + XIAOXINGXING_SERVERKEY = "33e0c3238c108a36d87025544c6a2d2f"
48 46 )
49 47  
50 48 const (
51   - WATCH_ADD_DAY_LIMIT = 9 //当天观看视频次数限制
52   -)
53 49 \ No newline at end of file
  50 + WATCH_ADD_DAY_LIMIT = 9 //当天观看视频次数限制
  51 +)
... ...
src/HttpServer/logic/datadef.go
1 1 package logic
2 2  
3 3 type UserLoginReq struct {
4   - Fromid int `json:"fromid"`
5   - Sharetype int `json:"sharetype"`
6   - Gameid string `json:"gameid"`
7   - Channel string `json:"channel"`
  4 + Fromid int `json:"fromid"`
  5 + Sharetype int `json:"sharetype"`
  6 + Gameid string `json:"gameid"`
  7 + Channel string `json:"channel"`
8 8 }
9 9  
10 10 type UserLoginData struct {
11   - Walletgold int `json:"walletgold"`
12   - Leftads int `json:"leftads"`
13   - Guangold int `json:"guangold"`
14   - Userlv int `json:"userlv"`
15   - Userexp int `json:"userexp"`
  11 + Walletgold int `json:"walletgold"`
  12 + Leftads int `json:"leftads"`
  13 + Guangold int `json:"guangold"`
  14 + Userlv int `json:"userlv"`
  15 + Userexp int `json:"userexp"`
16 16 }
17 17  
18 18 type UserLoginResp struct {
19   - Code int `json:"code"`
20   - Message string `json:"message"`
21   - Data UserLoginData `json:"data"`
22   -
  19 + Code int `json:"code"`
  20 + Message string `json:"message"`
  21 + Data UserLoginData `json:"data"`
23 22 }
24 23  
25 24 type GetuserdataReq struct {
26   - Gameid string `json:"gameid"`
  25 + Gameid string `json:"gameid"`
27 26 Channel string `json:"channel"`
28 27 }
29 28  
30 29 type GetuserdataData struct {
31   - Walletgold int `json:"walletgold"`
32   - Leftads int `json:"leftads"`
33   - Guangold int `json:"guangold"`
34   - Userlv int `json:"userlv"`
35   - Userexp int `json:"userexp"`
  30 + Walletgold int `json:"walletgold"`
  31 + Leftads int `json:"leftads"`
  32 + Guangold int `json:"guangold"`
  33 + Userlv int `json:"userlv"`
  34 + Userexp int `json:"userexp"`
36 35 }
37 36  
38 37 type GetuserdataResp struct {
39   - Code int `json:"code"`
40   - Message string `json:"message"`
41   - Data GetuserdataData `json:"data"`
42   -
  38 + Code int `json:"code"`
  39 + Message string `json:"message"`
  40 + Data GetuserdataData `json:"data"`
43 41 }
44 42  
45   -
46 43 type WatchadsData struct {
47   - Leftads int `json:"leftads"`
  44 + Leftads int `json:"leftads"`
48 45 }
49 46  
50 47 type WatchadsResp struct {
51   - Code int `json:"code"`
52   - Message string `json:"message"`
53   - Data WatchadsData `json:"data"`
54   -
  48 + Code int `json:"code"`
  49 + Message string `json:"message"`
  50 + Data WatchadsData `json:"data"`
55 51 }
56 52  
57 53 type QueryguaninfoData struct {
58   - Leftcnt int `json:"leftcnt"`
59   - Totalcnt int `json:"totalcnt"`
60   - Guangold int `json:"guangold"`
61   - Minget int `json:"minget"`
62   - Maxget int `json:"maxget"`
63   - Loginday int `json:"loginday"`
  54 + Leftcnt int `json:"leftcnt"`
  55 + Totalcnt int `json:"totalcnt"`
  56 + Guangold int `json:"guangold"`
  57 + Minget int `json:"minget"`
  58 + Maxget int `json:"maxget"`
  59 + Loginday int `json:"loginday"`
64 60 }
65 61  
66 62 type QueryguaninfoResp struct {
67   - Code int `json:"code"`
68   - Message string `json:"message"`
69   - Data QueryguaninfoData `json:"data"`
  63 + Code int `json:"code"`
  64 + Message string `json:"message"`
  65 + Data QueryguaninfoData `json:"data"`
70 66 }
71 67  
72   -
73 68 type GetguangoldReq struct {
74   - Goldnum int `json:"goldnum"`
  69 + Goldnum int `json:"goldnum"`
75 70 }
76 71  
77 72 type GetguangoldData struct {
78   - Guangold int `json:"guangold"`
  73 + Guangold int `json:"guangold"`
79 74 }
80 75  
81 76 type GetguangoldResp struct {
82   - Code int `json:"code"`
83   - Message string `json:"message"`
84   - Data GetguangoldData `json:"data"`
  77 + Code int `json:"code"`
  78 + Message string `json:"message"`
  79 + Data GetguangoldData `json:"data"`
85 80 }
86 81  
87 82 type DrawguangoldReq struct {
88   - Goldnum int `json:"goldnum"`
89   - Gameid string `json:"gameid"`
90   - Channel string `json:"channel"`
  83 + Goldnum int `json:"goldnum"`
  84 + Gameid string `json:"gameid"`
  85 + Channel string `json:"channel"`
91 86 }
92 87  
93   -type DrawguangoldData struct {
94   - Guangold int `json:"guangold"`
95   - Wallgold int `json:"wallgold"`
  88 +type DrawguangoldData struct {
  89 + Guangold int `json:"guangold"`
  90 + Wallgold int `json:"wallgold"`
96 91 }
97 92  
98 93 type DrawguangoldResp struct {
99   - Code int `json:"code"`
100   - Message string `json:"message"`
101   - Data DrawguangoldData `json:"data"`
  94 + Code int `json:"code"`
  95 + Message string `json:"message"`
  96 + Data DrawguangoldData `json:"data"`
102 97 }
103 98  
104 99 type QuerdrawinfoResp struct {
105   - Code int `json:"code"`
106   - Message string `json:"message"`
107   - Data WithDrawInfo `json:"data"`
  100 + Code int `json:"code"`
  101 + Message string `json:"message"`
  102 + Data WithDrawInfo `json:"data"`
108 103 }
109 104  
110 105 type GetcashReq struct {
111   - Gameid string `json:"gameid"`
112   - Channel string `json:"channel"`
  106 + Gameid string `json:"gameid"`
  107 + Channel string `json:"channel"`
113 108 Money float32 `json:"money"`
114   - Openid string `json:"openid"`
115   - Nickname string `json:"nickname"`
116   - Headurl string `json:"headurl"`
  109 + Openid string `json:"openid"`
  110 + Nickname string `json:"nickname"`
  111 + Headurl string `json:"headurl"`
117 112 }
118 113  
119 114 type GetcashData struct {
120   - Walletgold int `json:"walletgold"`
  115 + Walletgold int `json:"walletgold"`
121 116 }
122 117 type GetcashResp struct {
123   - Code int `json:"code"`
124   - Message string `json:"message"`
125   - Data GetcashData `json:"data"`
  118 + Code int `json:"code"`
  119 + Message string `json:"message"`
  120 + Data GetcashData `json:"data"`
126 121 }
127 122  
128 123 type GetcashrecordResp struct {
129   - Code int `json:"code"`
130   - Message string `json:"message"`
131   - Data WithDrawList `json:"data"`
  124 + Code int `json:"code"`
  125 + Message string `json:"message"`
  126 + Data WithDrawList `json:"data"`
132 127 }
133 128  
134 129 type OnlinentfResp struct {
135   - Code int `json:"code"`
136   - Message string `json:"message"`
  130 + Code int `json:"code"`
  131 + Message string `json:"message"`
137 132 }
138 133  
139 134 type UpdatetaskReq struct {
140   - Tasktype int `json:"tasktype"`
  135 + Tasktype int `json:"tasktype"`
141 136 Value int `json:"value"`
142 137 }
143 138  
144 139 type UpdatetaskResp struct {
145   - Code int `json:"code"`
146   - Message string `json:"message"`
  140 + Code int `json:"code"`
  141 + Message string `json:"message"`
147 142 }
148 143  
149   -
150 144 type QuerytaskinfoReq struct {
151   - Tasktype int `json:"tasktype"`
  145 + Tasktype int `json:"tasktype"`
152 146 }
153 147  
154 148 type QuerytaskinfoResp struct {
155   - Code int `json:"code"`
156   - Message string `json:"message"`
157   - Data TaskList `json:"data"`
  149 + Code int `json:"code"`
  150 + Message string `json:"message"`
  151 + Data TaskList `json:"data"`
158 152 }
159 153  
160   -
161   -
162 154 type GettaskrewardReq struct {
163   - Tasktype int `json:"tasktype"`
164   - Taskid int `json:"taskid"`
165   - Gameid string `json:"gameid"`
166   - Channel string `json:"channel"`
  155 + Tasktype int `json:"tasktype"`
  156 + Taskid int `json:"taskid"`
  157 + Gameid string `json:"gameid"`
  158 + Channel string `json:"channel"`
167 159 }
168 160  
169 161 type GettaskrewardData struct {
170   - Lv int `json:"lv"`
171   - Rewardstar int `json:"rewardstar"`
172   - Chuiitem int `json:"chuiitem"`
173   - Shuaitem int `json:"shuaitem"`
174   - Swapitem int `json:"swapitem"`
175   - Eliminitem int `json:"eliminitem"`
  162 + Lv int `json:"lv"`
  163 + Rewardstar int `json:"rewardstar"`
  164 + Chuiitem int `json:"chuiitem"`
  165 + Shuaitem int `json:"shuaitem"`
  166 + Swapitem int `json:"swapitem"`
  167 + Eliminitem int `json:"eliminitem"`
176 168 Goldnum int `json:"goldnum"`
177 169 }
178 170 type GettaskrewardResp struct {
179   - Code int `json:"code"`
180   - Message string `json:"message"`
181   - Data GettaskrewardData `json:"data"`
  171 + Code int `json:"code"`
  172 + Message string `json:"message"`
  173 + Data GettaskrewardData `json:"data"`
182 174 }
183 175  
184   -
185   -
186 176 type GetnewlevelrewardReq struct {
187   - Rewardtype int `json:"rewardtype"`
188   - Gameid string `json:"gameid"`
  177 + Rewardtype int `json:"rewardtype"`
  178 + Gameid string `json:"gameid"`
189 179 Channel string `json:"channel"`
190 180 }
191 181  
192 182 type GetnewlevelrewardData struct {
193   - Goldnum int `json:"goldnum"`
  183 + Goldnum int `json:"goldnum"`
194 184 }
195 185 type GetnewlevelrewardResp struct {
196   - Code int `json:"code"`
197   - Message string `json:"message"`
198   - Data GetnewlevelrewardData `json:"data"`
  186 + Code int `json:"code"`
  187 + Message string `json:"message"`
  188 + Data GetnewlevelrewardData `json:"data"`
199 189 }
200 190  
201   -
202 191 //**********************************************************************************************************
203 192  
204 193 type TaskListDesc struct {
205   - Taskid int `json:"taskid"`
206   - Taskstatus int `json:"taskstatus"`
207   - Taskprogress int `json:"taskprogress"`
  194 + Taskid int `json:"taskid"`
  195 + Taskstatus int `json:"taskstatus"`
  196 + Taskprogress int `json:"taskprogress"`
208 197 }
209 198  
210 199 type TaskList struct {
... ... @@ -213,58 +202,67 @@ type TaskList struct {
213 202  
214 203 //其中提取次数和当日登陆在userdata中记录
215 204 type TaskInfo struct {
216   - OnlineMin int //在线分钟数
217   - PassLevel int //通过关卡数
218   - UseItemCnt int //使用道具次数
219   - GetRedbagCnt int //领取红包次数
220   - GetGuanGold int //收集金币数
  205 + OnlineMin int //在线分钟数
  206 + PassLevel int //通过关卡数
  207 + UseItemCnt int //使用道具次数
  208 + GetRedbagCnt int //领取红包次数
  209 + GetGuanGold int //收集金币数
221 210 }
222 211  
223 212 //
224 213 type AchieveMentInfo struct {
225   - WatchAdsCnt int //观看广告数
226   - KillStar int //消除星星数
227   - SumGetGuan int //存钱罐累计提取
228   - SumUseItemCnt int //使用道具次数累计
  214 + WatchAdsCnt int //观看广告数
  215 + KillStar int //消除星星数
  216 + SumGetGuan int //存钱罐累计提取
  217 + SumUseItemCnt int //使用道具次数累计
229 218 }
230 219  
231   -
232 220 type WithDrawList struct {
233 221 Withdata []WithDrawRecord `json:"withdata"`
234 222 }
235 223  
236 224 //提现记录结构
237 225 type WithDrawRecord struct {
238   - Withdrawtime int `json:"wichdrawtime"`
239   - Withdrawmoney float32 `json:"withdrawmoney"`
  226 + Withdrawtime int `json:"wichdrawtime"`
  227 + Withdrawmoney float32 `json:"withdrawmoney"`
240 228 }
241 229  
242 230 type WithDrawInfo struct {
243   - Cashdata []WithDrawDesc `json:"cashdata"`
  231 + Cashdata []WithDrawDesc `json:"cashdata"`
244 232 }
245 233  
246 234 type WithDrawDesc struct {
247   - Cid int `json:"cid"`
248   - Cnum float32 `json:"cnum"`
249   - Isnew int `json:"isnew"`
250   - Limitlv int `json:"limitlv"`
251   - Preisfind int `json:"preisfind"`
  235 + Cid int `json:"cid"`
  236 + Cnum float32 `json:"cnum"`
  237 + Isnew int `json:"isnew"`
  238 + Limitlv int `json:"limitlv"`
  239 + Preisfind int `json:"preisfind"`
252 240 }
253 241  
254 242 //玩家数据
255 243 type UserData struct {
256   - Userid int //玩家id
257   - Lv int //玩家当前等级
258   - LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取
259   - Exp int //玩家当前经验值
260   - GuanGold int //玩家存钱罐中金币数量
261   - RealGold int //玩家实际金币数量(可用于提现的)
262   - WatchAddsTime int //当天观看激励视频次数
263   - LastLoginTime int //上次登陆时间
264   - ContinueLoginDay int //连续登录天数
265   - GetFromGuanCnt int //当天从存钱款提取金币次数
266   - WithDraw WithDrawInfo //提现记录信息
267   - Task TaskInfo //玩家任务完成相关信息
268   - Achieve AchieveMentInfo //玩家成就完成相关数据
  244 + Userid int //玩家id
  245 + Lv int //玩家当前等级
  246 + LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取
  247 + Exp int //玩家当前经验值
  248 + GuanGold int //玩家存钱罐中金币数量
  249 + RealGold int //玩家实际金币数量(可用于提现的)
  250 + WatchAddsTime int //当天观看激励视频次数
  251 + LastLoginTime int //上次登陆时间
  252 + ContinueLoginDay int //连续登录天数
  253 + GetFromGuanCnt int //当天从存钱款提取金币次数
  254 + WithDraw WithDrawInfo //提现记录信息
  255 + Task TaskInfo //玩家任务完成相关信息
  256 + Achieve AchieveMentInfo //玩家成就完成相关数据
  257 +}
  258 +
  259 +type AddCoinDesc struct {
  260 + Sign string `json:"sign"`
  261 + Sign_type string `json:"sign_type"`
  262 + Time_stamp string `json:"time_stamp"`
  263 + Gameid string `json:"gameid"`
  264 + Channel string `json:"channel"`
  265 + Uid int `json:"uid"`
  266 + Coin int `json:"coin"`
  267 + Typ int `json:"typ"`
269 268 }
270   -
... ...
src/HttpServer/logic/function.go
... ... @@ -5,6 +5,8 @@ import (
5 5 "HttpServer/redishandler"
6 6 "common/logger"
7 7 "common/redis"
  8 + "crypto/sha1"
  9 + "encoding/hex"
8 10 "encoding/json"
9 11 "errors"
10 12 "net/http"
... ... @@ -25,7 +27,6 @@ func (v *TaskList) Less(i, j int) bool {
25 27 return v.Taskdata[i].Taskstatus > v.Taskdata[j].Taskstatus
26 28 }
27 29  
28   -
29 30 func SetHeader(w http.ResponseWriter) {
30 31 w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
31 32 w.Header().Set("Content-Type", "application/json")
... ... @@ -34,33 +35,33 @@ func SetHeader(w http.ResponseWriter) {
34 35  
35 36 func SaveUserInfo(data *UserData) error {
36 37  
37   - savestr,err := json.Marshal(data)
  38 + savestr, err := json.Marshal(data)
38 39 if err != nil {
39 40 return err
40 41 }
41 42  
42   - err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY,strconv.Itoa(data.Userid),string(savestr))
  43 + err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY, strconv.Itoa(data.Userid), string(savestr))
43 44  
44 45 return err
45 46 }
46 47  
47   -func GetUserInfo(uuid int) (*UserData,error) {
  48 +func GetUserInfo(uuid int) (*UserData, error) {
48 49  
49   - data,err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY,strconv.Itoa(uuid))
  50 + data, err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY, strconv.Itoa(uuid))
50 51 if err != nil {
51   - return nil,err
  52 + return nil, err
52 53 }
53 54 var tmp UserData
54   - err = json.Unmarshal([]byte(data),&tmp)
  55 + err = json.Unmarshal([]byte(data), &tmp)
55 56 if err != nil {
56   - return nil,err
  57 + return nil, err
57 58 }
58 59  
59   - return &tmp,nil
  60 + return &tmp, nil
60 61 }
61 62  
62 63 func GetUserLvConfig(lv int) *jsonconf.LevelDesc {
63   - for _,val := range jsonconf.GetJsonConf().LevelConfig {
  64 + for _, val := range jsonconf.GetJsonConf().LevelConfig {
64 65 if lv == val.Level {
65 66 return &val
66 67 }
... ... @@ -69,7 +70,7 @@ func GetUserLvConfig(lv int) *jsonconf.LevelDesc {
69 70 }
70 71  
71 72 func GetTaskConfig(taskid int) *jsonconf.AchieveDesc {
72   - for _,val := range jsonconf.GetJsonConf().TaskConfig {
  73 + for _, val := range jsonconf.GetJsonConf().TaskConfig {
73 74 if val.Id == taskid {
74 75 return &val
75 76 }
... ... @@ -78,7 +79,7 @@ func GetTaskConfig(taskid int) *jsonconf.AchieveDesc {
78 79 }
79 80  
80 81 func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc {
81   - for _,val := range jsonconf.GetJsonConf().AchieventConfig {
  82 + for _, val := range jsonconf.GetJsonConf().AchieventConfig {
82 83 if val.Id == taskid {
83 84 return &val
84 85 }
... ... @@ -88,39 +89,38 @@ func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc {
88 89  
89 90 func (uinfo *UserData) CalcTaskList(list *TaskList) {
90 91  
91   - for k,val := range list.Taskdata {
  92 + for k, val := range list.Taskdata {
92 93 //未完成的才做判断
93 94 if val.Taskstatus != 1 {
94 95 continue
95 96 }
96 97 cfg := GetTaskConfig(val.Taskid)
97 98 if cfg == nil {
98   - logger.Error("CalcTaskList GetTaskConfig failed id=%v",val.Taskid)
  99 + logger.Error("CalcTaskList GetTaskConfig failed id=%v", val.Taskid)
99 100 continue
100 101 }
101 102  
102   -
103 103 if cfg.TaskType == DAILY_TASKTYPE_LOGIN {
104 104 nowloginday := time.Now().Day()
105 105 lasttime := time.Unix(int64(uinfo.LastLoginTime), 0)
106 106 lastloginday := lasttime.Day()
107 107  
108   - if nowloginday == lastloginday && val.Taskstatus == 1{
  108 + if nowloginday == lastloginday && val.Taskstatus == 1 {
109 109 list.Taskdata[k].Taskprogress = 1
110 110 list.Taskdata[k].Taskstatus = 2
111 111 }
112   - }else if cfg.TaskType == DAILY_TASKTYPE_GETGUANCNT {
  112 + } else if cfg.TaskType == DAILY_TASKTYPE_GETGUANCNT {
113 113 list.Taskdata[k].Taskprogress = uinfo.GetFromGuanCnt
114 114 //当日提取存钱罐次数
115 115 if uinfo.GetFromGuanCnt >= cfg.Num {
116 116 list.Taskdata[k].Taskstatus = 2
117 117 }
118   - }else if cfg.TaskType == DAILY_TASKTYPE_PASSLEVEL {
  118 + } else if cfg.TaskType == DAILY_TASKTYPE_PASSLEVEL {
119 119 list.Taskdata[k].Taskprogress = uinfo.Task.PassLevel
120 120 if uinfo.Task.PassLevel >= cfg.Num {
121 121 list.Taskdata[k].Taskstatus = 2
122 122 }
123   - }else if cfg.TaskType == DAILY_TASKTYPE_USEITEM {
  123 + } else if cfg.TaskType == DAILY_TASKTYPE_USEITEM {
124 124 list.Taskdata[k].Taskprogress = uinfo.Task.UseItemCnt
125 125 if uinfo.Task.UseItemCnt >= cfg.Num {
126 126 list.Taskdata[k].Taskstatus = 2
... ... @@ -130,12 +130,12 @@ func (uinfo *UserData) CalcTaskList(list *TaskList) {
130 130 if uinfo.Task.GetRedbagCnt >= cfg.Num {
131 131 list.Taskdata[k].Taskstatus = 2
132 132 }
133   - }else if cfg.TaskType == DAILY_TASKTYPE_GETGUANGOLD {
  133 + } else if cfg.TaskType == DAILY_TASKTYPE_GETGUANGOLD {
134 134 list.Taskdata[k].Taskprogress = uinfo.Task.GetGuanGold
135 135 if uinfo.Task.GetGuanGold >= cfg.Num {
136 136 list.Taskdata[k].Taskstatus = 2
137 137 }
138   - }else if cfg.TaskType == DAILY_TASKTYPE_ONLINEMIN {
  138 + } else if cfg.TaskType == DAILY_TASKTYPE_ONLINEMIN {
139 139 list.Taskdata[k].Taskprogress = uinfo.Task.OnlineMin
140 140 if uinfo.Task.OnlineMin >= cfg.Num {
141 141 list.Taskdata[k].Taskstatus = 2
... ... @@ -145,7 +145,7 @@ func (uinfo *UserData) CalcTaskList(list *TaskList) {
145 145 }
146 146  
147 147 //需要保存到redis
148   - SaveTaskInfo(uinfo.Userid,1,list)
  148 + SaveTaskInfo(uinfo.Userid, 1, list)
149 149  
150 150 //排序
151 151 sort.Sort(list)
... ... @@ -165,26 +165,26 @@ func (uinfo *UserData) CalcAchieveProgress(ttype int) int {
165 165 case ACHIEVETYPE_USEITEMCNT:
166 166 rtval = uinfo.Achieve.SumUseItemCnt
167 167 default:
168   - logger.Error("CalcAchieveProgress type wrong ttype=%v",ttype)
  168 + logger.Error("CalcAchieveProgress type wrong ttype=%v", ttype)
169 169 }
170 170  
171 171 return rtval
172 172 }
173 173  
174 174 //成就返回的是新的成就列表
175   -func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{
  175 +func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList {
176 176 newlist := new(TaskList)
177   - curtype := -1 //记录当前类型
  177 + curtype := -1 //记录当前类型
178 178  
179 179 //第一遍首先将所有进度设置为正确的状态
180   - for k,val := range list.Taskdata {
  180 + for k, val := range list.Taskdata {
181 181 cfg := GetAchieveConfig(val.Taskid)
182 182 if cfg == nil {
183   - logger.Error("CalcAchieveList GetTaskConfig failed id=%v",val.Taskid)
  183 + logger.Error("CalcAchieveList GetTaskConfig failed id=%v", val.Taskid)
184 184 continue
185 185 }
186 186  
187   - list.Taskdata[k].Taskprogress =uinfo.CalcAchieveProgress(cfg.TaskType)
  187 + list.Taskdata[k].Taskprogress = uinfo.CalcAchieveProgress(cfg.TaskType)
188 188 switch cfg.TaskType {
189 189 case ACHIEVETYPE_WATCHADDS:
190 190 if uinfo.Achieve.WatchAdsCnt >= cfg.Num {
... ... @@ -207,16 +207,15 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{
207 207 list.Taskdata[k].Taskstatus = 2
208 208 }
209 209 default:
210   - logger.Error("CalcAchieveProgress type wrong ttype=%v",cfg.TaskType)
  210 + logger.Error("CalcAchieveProgress type wrong ttype=%v", cfg.TaskType)
211 211 }
212 212 }
213 213  
214   -
215   - for k,val := range list.Taskdata {
  214 + for k, val := range list.Taskdata {
216 215  
217 216 cfg := GetAchieveConfig(val.Taskid)
218 217 if cfg == nil {
219   - logger.Error("CalcAchieveList GetTaskConfig failed id=%v",val.Taskid)
  218 + logger.Error("CalcAchieveList GetTaskConfig failed id=%v", val.Taskid)
220 219 continue
221 220 }
222 221  
... ... @@ -224,98 +223,97 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{
224 223 //未领取已完成 只需要加入第一种
225 224 if curtype == cfg.TaskType {
226 225 continue
227   - }else {
  226 + } else {
228 227 //将类型加入返回列表
229   - newlist.Taskdata = append(newlist.Taskdata,list.Taskdata[k])
  228 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])
230 229 curtype = cfg.TaskType
231 230 }
232   - }else if val.Taskstatus == 1 {
  231 + } else if val.Taskstatus == 1 {
233 232 //未完成 返回第一个
234 233 if curtype == cfg.TaskType {
235 234 continue
236   - }else {
  235 + } else {
237 236 //将类型加入返回列表
238   - newlist.Taskdata = append(newlist.Taskdata,list.Taskdata[k])
  237 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])
239 238 curtype = cfg.TaskType
240 239 }
241   - }else {
  240 + } else {
242 241 //已领取 需要判断一下是否最后一项
243   - if k!= len(list.Taskdata)-1 {
  242 + if k != len(list.Taskdata)-1 {
244 243 //不是最后一条数据
245 244 nextcfg := GetAchieveConfig(list.Taskdata[k+1].Taskid)
246   - if nextcfg!=nil {
  245 + if nextcfg != nil {
247 246 if nextcfg.TaskType != cfg.TaskType {
248 247 //下面一天不是此类型了
249   - newlist.Taskdata = append(newlist.Taskdata,list.Taskdata[k])
  248 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])
250 249 curtype = cfg.TaskType
251 250 }
252 251 }
253 252  
254 253 } else {
255 254 //最后一条 加入
256   - newlist.Taskdata = append(newlist.Taskdata,list.Taskdata[k])
  255 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])
257 256 curtype = cfg.TaskType
258 257 }
259 258 }
260 259  
261   -
262 260 }
263 261  
264 262 //保存旧的列表
265   - SaveTaskInfo(uinfo.Userid,2,list)
  263 + SaveTaskInfo(uinfo.Userid, 2, list)
266 264  
267 265 //将返回的列表排序
268 266 sort.Sort(newlist)
269   - logger.Info("CalcAchieveList alist=%v",newlist)
  267 + logger.Info("CalcAchieveList alist=%v", newlist)
270 268 return newlist
271 269 }
272 270  
273   -func SaveTaskInfo(uuid ,tasktype int,list *TaskList) error {
274   - savestr,err := json.Marshal(list)
  271 +func SaveTaskInfo(uuid, tasktype int, list *TaskList) error {
  272 + savestr, err := json.Marshal(list)
275 273 if err != nil {
276   - logger.Error("SaveTaskInfo err =%v",err)
  274 + logger.Error("SaveTaskInfo err =%v", err)
277 275 return err
278 276 }
279 277  
280 278 if tasktype == 1 {
281   - err = redishandler.GetRedisClient().HSet(redis.USER_TASKINFO_LIST,strconv.Itoa(uuid),string(savestr))
282   - }else if tasktype == 2 {
283   - err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST,strconv.Itoa(uuid),string(savestr))
284   - }else {
  279 + err = redishandler.GetRedisClient().HSet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid), string(savestr))
  280 + } else if tasktype == 2 {
  281 + err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid), string(savestr))
  282 + } else {
285 283 logger.Error("tasktype invalid")
286 284 return errors.New("tasktype invalid")
287 285 }
288 286 return err
289 287 }
290 288  
291   -func GetTaskInfo(uuid ,tasktype int) (*TaskList,error) {
  289 +func GetTaskInfo(uuid, tasktype int) (*TaskList, error) {
292 290 var data string
293 291 var err error
294 292 if tasktype == 1 {
295   - data,err = redishandler.GetRedisClient().HGet(redis.USER_TASKINFO_LIST,strconv.Itoa(uuid))
296   - }else if tasktype == 2 {
297   - data,err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST,strconv.Itoa(uuid))
298   - }else {
  293 + data, err = redishandler.GetRedisClient().HGet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid))
  294 + } else if tasktype == 2 {
  295 + data, err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid))
  296 + } else {
299 297 logger.Error("tasktype invalid")
300   - return nil,errors.New("tasktype invalid")
  298 + return nil, errors.New("tasktype invalid")
301 299 }
302 300  
303 301 var list TaskList
304   - err = json.Unmarshal([]byte(data),&list)
  302 + err = json.Unmarshal([]byte(data), &list)
305 303 if err != nil {
306   - logger.Error("GetTaskInfo err=%v",err)
307   - return nil,err
  304 + logger.Error("GetTaskInfo err=%v", err)
  305 + return nil, err
308 306 }
309 307  
310   - return &list,err
  308 + return &list, err
311 309 }
312 310  
313 311 //处理领取任务
314   -func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *GettaskrewardResp,list *TaskList) error {
  312 +func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *GettaskrewardResp, list *TaskList) error {
315 313 isfind := false
316 314 index := -1
317 315 var taskdesc *TaskListDesc
318   - for k,val := range list.Taskdata {
  316 + for k, val := range list.Taskdata {
319 317 if val.Taskid == req.Taskid {
320 318 isfind = true
321 319 index = k
... ... @@ -324,7 +322,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
324 322 }
325 323 }
326 324  
327   - if isfind && taskdesc != nil && index != -1{
  325 + if isfind && taskdesc != nil && index != -1 {
328 326 if taskdesc.Taskstatus != 2 {
329 327 //状态不是可领取状态 无法领取
330 328 resp.Code = ERROR_TASKCANNOTGET
... ... @@ -340,14 +338,14 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
340 338 return errors.New("当前任务未完成或已领取")
341 339 }
342 340 }
343   - }else {
  341 + } else {
344 342 resp.Code = ERROR_TASKID_WRONG
345 343 resp.Message = "当前任务id错误"
346 344 return errors.New("当前任务id错误")
347 345 }
348 346  
349 347 cfg := GetTaskConfig(taskdesc.Taskid)
350   - if cfg == nil || len (cfg.Reward) < 2{
  348 + if cfg == nil || len(cfg.Reward) < 2 {
351 349 resp.Code = ERROR_SRV_ERROR
352 350 resp.Message = "网络错误"
353 351 return errors.New("获取配置失败")
... ... @@ -357,10 +355,10 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
357 355 list.Taskdata[index].Taskstatus = 0
358 356 //发奖励
359 357 sub := len(cfg.Reward) / 2
360   - for i:=0;i<sub;i++ {
  358 + for i := 0; i < sub; i++ {
361 359 rtype := cfg.Reward[i*2]
362 360 rnum := cfg.Reward[i*2+1]
363   - r1,r2,r3,r4,r5,r6 :=uinfo.RewardUser(rtype,rnum,req.Gameid,req.Channel)
  361 + r1, r2, r3, r4, r5, r6 := uinfo.RewardUser(rtype, rnum, req.Gameid, req.Channel)
364 362 if resp.Data.Lv != r1 {
365 363 resp.Data.Lv = r1
366 364 }
... ... @@ -375,29 +373,29 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
375 373 return nil
376 374 }
377 375  
378   -func (uinfo *UserData) RewardUser(rtype int,num int,gameid string,channel string) (int,int,int,int,int,int){
  376 +func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel string) (int, int, int, int, int, int) {
379 377 switch rtype {
380 378 case REWARDTYPE_STAR:
381   - return 0,num,0,0,0,0
  379 + return 0, num, 0, 0, 0, 0
382 380 case REWARDTYPE_CHUI:
383   - return 0,0,num,0,0,0
  381 + return 0, 0, num, 0, 0, 0
384 382 case REWARDTYPE_SHUA:
385   - return 0,0,0,num,0,0
  383 + return 0, 0, 0, num, 0, 0
386 384 case REWARDTYPE_SWAP:
387   - return 0,0,0,0,num,0
  385 + return 0, 0, 0, 0, num, 0
388 386 case REWARDTYPE_ELIMITE:
389   - return 0,0,0,0,0,num
  387 + return 0, 0, 0, 0, 0, num
390 388 case REWARDTYPE_EXP:
391 389 isup := uinfo.AddUserExp(num)
392 390 if isup {
393   - return uinfo.Lv,0,0,0,0,0
394   - }else {
395   - return 0,0,0,0,0,0
  391 + return uinfo.Lv, 0, 0, 0, 0, 0
  392 + } else {
  393 + return 0, 0, 0, 0, 0, 0
396 394 }
397 395 case REWARDTYPE_GOLD:
398   - _,err :=AddCoinToSdk(uinfo.Userid,num,gameid,channel,100)
  396 + _, err := AddCoinToSdk(uinfo.Userid, num, gameid, channel, 100)
399 397 if err != nil {
400   - logger.Error("RewardUser failer err=%v",err)
  398 + logger.Error("RewardUser failer err=%v", err)
401 399 }
402 400 //uinfo.RealGold =
403 401 uinfo.RealGold += num
... ... @@ -407,7 +405,7 @@ func (uinfo *UserData) RewardUser(rtype int,num int,gameid string,channel string
407 405 return 0, 0, 0, 0, 0, 0
408 406 }
409 407  
410   -func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
  408 +func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error {
411 409  
412 410 var initdata UserData
413 411 initdata.Lv = 1
... ... @@ -419,24 +417,24 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
419 417 initdata.GuanGold = 0
420 418 initdata.LastLoginTime = int(time.Now().Unix())
421 419 initdata.RealGold = 0
422   - initdata.WatchAddsTime =WATCH_ADD_DAY_LIMIT
  420 + initdata.WatchAddsTime = WATCH_ADD_DAY_LIMIT
423 421  
424   - for _,val := range jsonconf.GetJsonConf().WithDrawConfig {
  422 + for _, val := range jsonconf.GetJsonConf().WithDrawConfig {
425 423 var tmp WithDrawDesc
426 424 tmp.Cid = val.Id
427 425 tmp.Cnum = val.Money
428 426 if val.Isnew == 1 {
429 427 tmp.Isnew = 1
430   - }else {
  428 + } else {
431 429 tmp.Isnew = 2
432 430 }
433 431 tmp.Limitlv = val.Level
434 432 if val.Id == 1 {
435 433 tmp.Preisfind = 1
436   - }else {
  434 + } else {
437 435 tmp.Preisfind = 0
438 436 }
439   - initdata.WithDraw.Cashdata = append(initdata.WithDraw.Cashdata,tmp)
  437 + initdata.WithDraw.Cashdata = append(initdata.WithDraw.Cashdata, tmp)
440 438 }
441 439  
442 440 resp.Data.Guangold = initdata.GuanGold
... ... @@ -445,7 +443,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
445 443  
446 444 err := SaveUserInfo(&initdata)
447 445 if err != nil {
448   - logger.Error("InitUserInfo err=%v",err)
  446 + logger.Error("InitUserInfo err=%v", err)
449 447 return err
450 448 }
451 449  
... ... @@ -455,35 +453,35 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
455 453 return err
456 454 }
457 455  
458   -func InitTaskAndAchievement(uuid int) error{
  456 +func InitTaskAndAchievement(uuid int) error {
459 457 //先初始化任务
460 458 tasklist := new(TaskList)
461   - for _,val := range jsonconf.GetJsonConf().TaskConfig {
  459 + for _, val := range jsonconf.GetJsonConf().TaskConfig {
462 460 var tmp TaskListDesc
463 461 tmp.Taskstatus = 1
464 462 tmp.Taskid = val.Id
465 463 tmp.Taskprogress = 0
466   - tasklist.Taskdata = append(tasklist.Taskdata,tmp)
  464 + tasklist.Taskdata = append(tasklist.Taskdata, tmp)
467 465 }
468 466  
469   - err := SaveTaskInfo(uuid,1,tasklist)
  467 + err := SaveTaskInfo(uuid, 1, tasklist)
470 468 if err != nil {
471   - logger.Error("InitTaskAndAchievement err=%v",err)
  469 + logger.Error("InitTaskAndAchievement err=%v", err)
472 470 return err
473 471 }
474 472  
475 473 achievelist := new(TaskList)
476   - for _,val := range jsonconf.GetJsonConf().AchieventConfig {
  474 + for _, val := range jsonconf.GetJsonConf().AchieventConfig {
477 475 var tmp TaskListDesc
478 476 tmp.Taskstatus = 1
479 477 tmp.Taskid = val.Id
480 478 tmp.Taskprogress = 0
481   - achievelist.Taskdata = append(achievelist.Taskdata,tmp)
  479 + achievelist.Taskdata = append(achievelist.Taskdata, tmp)
482 480 }
483 481  
484   - err = SaveTaskInfo(uuid,2,achievelist)
  482 + err = SaveTaskInfo(uuid, 2, achievelist)
485 483 if err != nil {
486   - logger.Error("InitTaskAndAchievement err=%v",err)
  484 + logger.Error("InitTaskAndAchievement err=%v", err)
487 485 return err
488 486 }
489 487  
... ... @@ -494,7 +492,7 @@ func InitTaskAndAchievement(uuid int) error{
494 492 func (u *UserData) CalcTotalCnt() int {
495 493 maxtime := 0
496 494 usertime := 0
497   - for _,val := range jsonconf.GetJsonConf().MoneyBoxTimeConfig {
  495 + for _, val := range jsonconf.GetJsonConf().MoneyBoxTimeConfig {
498 496 if maxtime < val.Times {
499 497 maxtime = val.Times
500 498 }
... ... @@ -518,25 +516,24 @@ func (u *UserData) HandlePassDay() {
518 516 nowtimestamp := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location())
519 517 lasttimestamp := time.Date(lasttime.Year(), lasttime.Month(), lasttime.Day(), 0, 0, 0, 0, lasttime.Location())
520 518  
521   -
522 519 if nowdaynum == lastdaynum {
523 520 //同一天
524   - if int64(u.LastLoginTime) - time.Now().Unix() > 86400 {
  521 + if int64(u.LastLoginTime)-time.Now().Unix() > 86400 {
525 522 //已经过了很多天了
526 523 //u.LastLoginTime = int(time.Now().Unix())
527 524 u.ContinueLoginDay = 1
528 525 isdiffday = true
529   - }else {
  526 + } else {
530 527 //t同一天 不做处理
531 528 }
532   - }else {
  529 + } else {
533 530 //不是同一天了
534 531 isdiffday = true
535   - if nowtimestamp.Unix() > lasttimestamp.Unix() + 86399 {
  532 + if nowtimestamp.Unix() > lasttimestamp.Unix()+86399 {
536 533 //超过一天了
537 534 u.ContinueLoginDay = 1
538   - }else {
539   - u.ContinueLoginDay ++
  535 + } else {
  536 + u.ContinueLoginDay++
540 537 }
541 538 }
542 539  
... ... @@ -551,6 +548,17 @@ func (u *UserData) HandlePassDay() {
551 548 u.Task.OnlineMin = 0
552 549 u.Task.PassLevel = 0
553 550 u.Task.UseItemCnt = 0
  551 +
  552 + //任务也需要处理
  553 + tasklist, err := GetTaskInfo(u.Userid, 1)
  554 + if err == nil {
  555 + for k, _ := range tasklist.Taskdata {
  556 + tasklist.Taskdata[k].Taskstatus = 1
  557 + tasklist.Taskdata[k].Taskprogress = 0
  558 + }
  559 + } else {
  560 + logger.Error("HandlePassDay GetTaskInfo failer err=%v", err)
  561 + }
554 562 }
555 563  
556 564 u.LastLoginTime = int(nowtime.Unix())
... ... @@ -558,9 +566,9 @@ func (u *UserData) HandlePassDay() {
558 566 SaveUserInfo(u)
559 567 }
560 568  
561   -func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{
562   - data,err := GetUserInfo(uuid)
563   - if err != nil || data == nil{
  569 +func GetUserData(uuid int, req *UserLoginReq, resp *UserLoginResp) error {
  570 + data, err := GetUserInfo(uuid)
  571 + if err != nil || data == nil {
564 572 resp.Code = ERROR_SRV_ERROR
565 573 resp.Message = "ERROR_SRV_ERROR"
566 574 return err
... ... @@ -570,7 +578,7 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{
570 578 data.HandlePassDay()
571 579  
572 580 //此处处理一下从sdk拉取钱包金币数量
573   - gold,err := GetCoinFromSdk(uuid,req.Gameid,req.Channel)
  581 + gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel)
574 582 if err != nil {
575 583 data.RealGold = gold
576 584 }
... ... @@ -579,7 +587,7 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{
579 587 if data.LvRewardGet == 1 {
580 588 cfg := GetUserLvConfig(data.Lv)
581 589 if cfg != nil {
582   - gold,err := AddCoinToSdk(uuid,cfg.Cash,req.Gameid,req.Channel,100)
  590 + gold, err := AddCoinToSdk(uuid, cfg.Cash, req.Gameid, req.Channel, 100)
583 591 if err != nil {
584 592 data.RealGold = gold
585 593 }
... ... @@ -600,46 +608,46 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{
600 608 }
601 609  
602 610 //获取提现记录
603   -func GetWithDrawList(uuid int) (*WithDrawList,error) {
  611 +func GetWithDrawList(uuid int) (*WithDrawList, error) {
604 612 var list *WithDrawList
605 613 list = new(WithDrawList)
606   - liststr,err := redishandler.GetRedisClient().HGet(redis.USER_WITHDRAW_RECORDLIST,strconv.Itoa(uuid))
  614 + liststr, err := redishandler.GetRedisClient().HGet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid))
607 615 if err != nil {
608   - return nil,err
  616 + return nil, err
609 617 }
610   - err = json.Unmarshal([]byte(liststr),list)
  618 + err = json.Unmarshal([]byte(liststr), list)
611 619 if err != nil {
612   - return nil,err
  620 + return nil, err
613 621 }
614   - return list,nil
  622 + return list, nil
615 623 }
616 624  
617   -func (uinfo *UserData)GetWithDrawData(money float32) (int,*WithDrawDesc){
  625 +func (uinfo *UserData) GetWithDrawData(money float32) (int, *WithDrawDesc) {
618 626 //处理提现状态
619   - for k,val := range uinfo.WithDraw.Cashdata {
620   - if val.Cnum == money{
621   - return k,&val
  627 + for k, val := range uinfo.WithDraw.Cashdata {
  628 + if val.Cnum == money {
  629 + return k, &val
622 630 }
623 631 }
624   - return -1,nil
  632 + return -1, nil
625 633 }
626 634  
627 635 //添加提现记录
628   -func AddWithDrawList(uuid int,data *WithDrawRecord) error {
629   - exist,err := redishandler.GetRedisClient().HExists(redis.USER_WITHDRAW_RECORDLIST,strconv.Itoa(uuid))
  636 +func AddWithDrawList(uuid int, data *WithDrawRecord) error {
  637 + exist, err := redishandler.GetRedisClient().HExists(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid))
630 638 if err != nil {
631 639 return err
632 640 }
633 641 if !exist {
634 642 //添加新的记录
635 643 var tmp WithDrawList
636   - tmp.Withdata = append(tmp.Withdata,*data)
  644 + tmp.Withdata = append(tmp.Withdata, *data)
637 645  
638   - savestr,err := json.Marshal(&tmp)
  646 + savestr, err := json.Marshal(&tmp)
639 647 if err != nil {
640 648 return err
641 649 }
642   - err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST,strconv.Itoa(uuid),string(savestr))
  650 + err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid), string(savestr))
643 651 return err
644 652 }
645 653  
... ... @@ -654,35 +662,33 @@ func AddWithDrawList(uuid int,data *WithDrawRecord) error {
654 662 return err
655 663 }*/
656 664  
657   - list,err := GetWithDrawList(uuid)
658   - if err != nil || list == nil{
659   - logger.Error("AddWithDrawList err=%v",err)
  665 + list, err := GetWithDrawList(uuid)
  666 + if err != nil || list == nil {
  667 + logger.Error("AddWithDrawList err=%v", err)
660 668 return err
661 669 }
662   - list.Withdata = append(list.Withdata,*data)
663   - savestr,err := json.Marshal(list)
  670 + list.Withdata = append(list.Withdata, *data)
  671 + savestr, err := json.Marshal(list)
664 672 if err != nil {
665 673 return err
666 674 }
667   - err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST,strconv.Itoa(uuid),string(savestr))
  675 + err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid), string(savestr))
668 676 return err
669 677  
670   -
671   -
672 678 }
673 679  
674 680 //返回是否升级
675   -func (uinfo* UserData) AddUserExp(num int) bool {
  681 +func (uinfo *UserData) AddUserExp(num int) bool {
676 682 totalexp := num
677 683 isup := false
678 684 for {
679 685 lvcfg := GetUserLvConfig(uinfo.Lv)
680 686 if lvcfg == nil {
681   - logger.Error("AddUserExp fail lv=%v",uinfo.Lv)
  687 + logger.Error("AddUserExp fail lv=%v", uinfo.Lv)
682 688 break
683 689 }
684 690 //判断下是否满级了
685   - nexcfg := GetUserLvConfig(uinfo.Lv+1)
  691 + nexcfg := GetUserLvConfig(uinfo.Lv + 1)
686 692 if nexcfg == nil {
687 693 //已经满级了
688 694 uinfo.Exp += totalexp
... ... @@ -696,10 +702,10 @@ func (uinfo* UserData) AddUserExp(num int) bool {
696 702 //不够升级的
697 703 uinfo.Exp += totalexp
698 704 break
699   - }else {
  705 + } else {
700 706 //够升级的 升一级
701   - uinfo.Lv ++
702   - uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取
  707 + uinfo.Lv++
  708 + uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取
703 709 isup = true
704 710 totalexp -= needexp
705 711 uinfo.Exp = 0
... ... @@ -710,16 +716,60 @@ func (uinfo* UserData) AddUserExp(num int) bool {
710 716 return isup
711 717 }
712 718  
713   -func GetCoinFromSdk(uuid int,gameid string,channel string) (int,error) {
714   - return 0,nil
  719 +func GetCoinFromSdk(uuid int, gameid string, channel string) (int, error) {
  720 + return 0, nil
715 721 }
716 722  
717   -func AddCoinToSdk(uuid int,goldnum int,gameid string,channel string,atype int) (int,error) {
718   - //暂时先不对接 接口调通遗憾对接后台
719   - return 0,nil
  723 +func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype int) (int, error) {
  724 + var paramlist []string
  725 + sign_type := "sign_type=md5"
  726 + paramlist = append(paramlist, sign_type)
  727 + time_stamp := "time_stamp=" + strconv.Itoa(int(time.Now().Unix()))
  728 + paramlist = append(paramlist, time_stamp)
  729 + paramgameid := "gameid=" + gameid
  730 + paramlist = append(paramlist, paramgameid)
  731 + pchannel := "channel=" + channel
  732 + paramlist = append(paramlist, pchannel)
  733 + puid := "uid=" + strconv.Itoa(uuid)
  734 + paramlist = append(paramlist, puid)
  735 + pcoin := "coin=" + strconv.Itoa(goldnum)
  736 + paramlist = append(paramlist, pcoin)
  737 + ptyp := "typ=" + strconv.Itoa(atype)
  738 + paramlist = append(paramlist, ptyp)
  739 +
  740 + //排序
  741 + sort.Strings(paramlist)
  742 +
  743 + //拼接
  744 + sumparam := ""
  745 + for _, val := range paramlist {
  746 + sumparam += val
  747 + }
  748 +
  749 + //加serverkey
  750 + signsum := sumparam + XIAOXINGXING_SERVERKEY
  751 + logger.Info("AddCoinToSdk sumparam=%v", signsum)
  752 +
  753 + //进行hash
  754 + h := sha1.New()
  755 + h.Write([]byte(signsum))
  756 + bs := h.Sum(nil)
  757 + sign := hex.EncodeToString(bs)
  758 +
  759 + var req AddCoinDesc
  760 + req.Channel = channel
  761 + req.Gameid = gameid
  762 + req.Coin = goldnum
  763 + req.Sign = sign
  764 + req.Sign_type = sign_type
  765 + req.Time_stamp = time_stamp
  766 + req.Typ = atype
  767 + req.Uid = uuid
  768 +
  769 + return 0, nil
720 770 }
721 771  
722   -func GetCashFromSDK(uuid int,goldnum int,gameid ,channel,openid,nickname,headurl string) (int,error) {
  772 +func GetCashFromSDK(uuid int, goldnum int, gameid, channel, openid, nickname, headurl string) (int, error) {
723 773 //先不接
724   - return 0,nil
725   -}
726 774 \ No newline at end of file
  775 + return 0, nil
  776 +}
... ...