Commit 55c2be39efbc18d05f5c3cbe64064282df347274

Authored by 陆恒
1 parent dcce4952

修复每日任务清零的问题

src/HttpServer/logic/constdef.go
@@ -2,51 +2,49 @@ package logic @@ -2,51 +2,49 @@ package logic
2 2
3 //任务成就类型枚举 协议上报用 3 //任务成就类型枚举 协议上报用
4 const ( 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 const ( 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 const ( 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 const ( 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 REWARDTYPE_ELIMITE = 5 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 const ( 48 const (
51 - WATCH_ADD_DAY_LIMIT = 9 //当天观看视频次数限制  
52 -)  
53 \ No newline at end of file 49 \ No newline at end of file
  50 + WATCH_ADD_DAY_LIMIT = 9 //当天观看视频次数限制
  51 +)
src/HttpServer/logic/datadef.go
1 package logic 1 package logic
2 2
3 type UserLoginReq struct { 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 type UserLoginData struct { 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 type UserLoginResp struct { 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 type GetuserdataReq struct { 24 type GetuserdataReq struct {
26 - Gameid string `json:"gameid"` 25 + Gameid string `json:"gameid"`
27 Channel string `json:"channel"` 26 Channel string `json:"channel"`
28 } 27 }
29 28
30 type GetuserdataData struct { 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 type GetuserdataResp struct { 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 type WatchadsData struct { 43 type WatchadsData struct {
47 - Leftads int `json:"leftads"` 44 + Leftads int `json:"leftads"`
48 } 45 }
49 46
50 type WatchadsResp struct { 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 type QueryguaninfoData struct { 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 type QueryguaninfoResp struct { 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 type GetguangoldReq struct { 68 type GetguangoldReq struct {
74 - Goldnum int `json:"goldnum"` 69 + Goldnum int `json:"goldnum"`
75 } 70 }
76 71
77 type GetguangoldData struct { 72 type GetguangoldData struct {
78 - Guangold int `json:"guangold"` 73 + Guangold int `json:"guangold"`
79 } 74 }
80 75
81 type GetguangoldResp struct { 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 type DrawguangoldReq struct { 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 type DrawguangoldResp struct { 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 type QuerdrawinfoResp struct { 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 type GetcashReq struct { 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 Money float32 `json:"money"` 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 type GetcashData struct { 114 type GetcashData struct {
120 - Walletgold int `json:"walletgold"` 115 + Walletgold int `json:"walletgold"`
121 } 116 }
122 type GetcashResp struct { 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 type GetcashrecordResp struct { 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 type OnlinentfResp struct { 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 type UpdatetaskReq struct { 134 type UpdatetaskReq struct {
140 - Tasktype int `json:"tasktype"` 135 + Tasktype int `json:"tasktype"`
141 Value int `json:"value"` 136 Value int `json:"value"`
142 } 137 }
143 138
144 type UpdatetaskResp struct { 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 type QuerytaskinfoReq struct { 144 type QuerytaskinfoReq struct {
151 - Tasktype int `json:"tasktype"` 145 + Tasktype int `json:"tasktype"`
152 } 146 }
153 147
154 type QuerytaskinfoResp struct { 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 type GettaskrewardReq struct { 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 type GettaskrewardData struct { 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 Goldnum int `json:"goldnum"` 168 Goldnum int `json:"goldnum"`
177 } 169 }
178 type GettaskrewardResp struct { 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 type GetnewlevelrewardReq struct { 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 Channel string `json:"channel"` 179 Channel string `json:"channel"`
190 } 180 }
191 181
192 type GetnewlevelrewardData struct { 182 type GetnewlevelrewardData struct {
193 - Goldnum int `json:"goldnum"` 183 + Goldnum int `json:"goldnum"`
194 } 184 }
195 type GetnewlevelrewardResp struct { 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 type TaskListDesc struct { 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 type TaskList struct { 199 type TaskList struct {
@@ -213,58 +202,67 @@ type TaskList struct { @@ -213,58 +202,67 @@ type TaskList struct {
213 202
214 //其中提取次数和当日登陆在userdata中记录 203 //其中提取次数和当日登陆在userdata中记录
215 type TaskInfo struct { 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 type AchieveMentInfo struct { 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 type WithDrawList struct { 220 type WithDrawList struct {
233 Withdata []WithDrawRecord `json:"withdata"` 221 Withdata []WithDrawRecord `json:"withdata"`
234 } 222 }
235 223
236 //提现记录结构 224 //提现记录结构
237 type WithDrawRecord struct { 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 type WithDrawInfo struct { 230 type WithDrawInfo struct {
243 - Cashdata []WithDrawDesc `json:"cashdata"` 231 + Cashdata []WithDrawDesc `json:"cashdata"`
244 } 232 }
245 233
246 type WithDrawDesc struct { 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 type UserData struct { 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,6 +5,8 @@ import (
5 "HttpServer/redishandler" 5 "HttpServer/redishandler"
6 "common/logger" 6 "common/logger"
7 "common/redis" 7 "common/redis"
  8 + "crypto/sha1"
  9 + "encoding/hex"
8 "encoding/json" 10 "encoding/json"
9 "errors" 11 "errors"
10 "net/http" 12 "net/http"
@@ -25,7 +27,6 @@ func (v *TaskList) Less(i, j int) bool { @@ -25,7 +27,6 @@ func (v *TaskList) Less(i, j int) bool {
25 return v.Taskdata[i].Taskstatus > v.Taskdata[j].Taskstatus 27 return v.Taskdata[i].Taskstatus > v.Taskdata[j].Taskstatus
26 } 28 }
27 29
28 -  
29 func SetHeader(w http.ResponseWriter) { 30 func SetHeader(w http.ResponseWriter) {
30 w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域 31 w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
31 w.Header().Set("Content-Type", "application/json") 32 w.Header().Set("Content-Type", "application/json")
@@ -34,33 +35,33 @@ func SetHeader(w http.ResponseWriter) { @@ -34,33 +35,33 @@ func SetHeader(w http.ResponseWriter) {
34 35
35 func SaveUserInfo(data *UserData) error { 36 func SaveUserInfo(data *UserData) error {
36 37
37 - savestr,err := json.Marshal(data) 38 + savestr, err := json.Marshal(data)
38 if err != nil { 39 if err != nil {
39 return err 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 return err 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 if err != nil { 51 if err != nil {
51 - return nil,err 52 + return nil, err
52 } 53 }
53 var tmp UserData 54 var tmp UserData
54 - err = json.Unmarshal([]byte(data),&tmp) 55 + err = json.Unmarshal([]byte(data), &tmp)
55 if err != nil { 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 func GetUserLvConfig(lv int) *jsonconf.LevelDesc { 63 func GetUserLvConfig(lv int) *jsonconf.LevelDesc {
63 - for _,val := range jsonconf.GetJsonConf().LevelConfig { 64 + for _, val := range jsonconf.GetJsonConf().LevelConfig {
64 if lv == val.Level { 65 if lv == val.Level {
65 return &val 66 return &val
66 } 67 }
@@ -69,7 +70,7 @@ func GetUserLvConfig(lv int) *jsonconf.LevelDesc { @@ -69,7 +70,7 @@ func GetUserLvConfig(lv int) *jsonconf.LevelDesc {
69 } 70 }
70 71
71 func GetTaskConfig(taskid int) *jsonconf.AchieveDesc { 72 func GetTaskConfig(taskid int) *jsonconf.AchieveDesc {
72 - for _,val := range jsonconf.GetJsonConf().TaskConfig { 73 + for _, val := range jsonconf.GetJsonConf().TaskConfig {
73 if val.Id == taskid { 74 if val.Id == taskid {
74 return &val 75 return &val
75 } 76 }
@@ -78,7 +79,7 @@ func GetTaskConfig(taskid int) *jsonconf.AchieveDesc { @@ -78,7 +79,7 @@ func GetTaskConfig(taskid int) *jsonconf.AchieveDesc {
78 } 79 }
79 80
80 func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc { 81 func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc {
81 - for _,val := range jsonconf.GetJsonConf().AchieventConfig { 82 + for _, val := range jsonconf.GetJsonConf().AchieventConfig {
82 if val.Id == taskid { 83 if val.Id == taskid {
83 return &val 84 return &val
84 } 85 }
@@ -88,39 +89,38 @@ func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc { @@ -88,39 +89,38 @@ func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc {
88 89
89 func (uinfo *UserData) CalcTaskList(list *TaskList) { 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 if val.Taskstatus != 1 { 94 if val.Taskstatus != 1 {
94 continue 95 continue
95 } 96 }
96 cfg := GetTaskConfig(val.Taskid) 97 cfg := GetTaskConfig(val.Taskid)
97 if cfg == nil { 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 continue 100 continue
100 } 101 }
101 102
102 -  
103 if cfg.TaskType == DAILY_TASKTYPE_LOGIN { 103 if cfg.TaskType == DAILY_TASKTYPE_LOGIN {
104 nowloginday := time.Now().Day() 104 nowloginday := time.Now().Day()
105 lasttime := time.Unix(int64(uinfo.LastLoginTime), 0) 105 lasttime := time.Unix(int64(uinfo.LastLoginTime), 0)
106 lastloginday := lasttime.Day() 106 lastloginday := lasttime.Day()
107 107
108 - if nowloginday == lastloginday && val.Taskstatus == 1{ 108 + if nowloginday == lastloginday && val.Taskstatus == 1 {
109 list.Taskdata[k].Taskprogress = 1 109 list.Taskdata[k].Taskprogress = 1
110 list.Taskdata[k].Taskstatus = 2 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 list.Taskdata[k].Taskprogress = uinfo.GetFromGuanCnt 113 list.Taskdata[k].Taskprogress = uinfo.GetFromGuanCnt
114 //当日提取存钱罐次数 114 //当日提取存钱罐次数
115 if uinfo.GetFromGuanCnt >= cfg.Num { 115 if uinfo.GetFromGuanCnt >= cfg.Num {
116 list.Taskdata[k].Taskstatus = 2 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 list.Taskdata[k].Taskprogress = uinfo.Task.PassLevel 119 list.Taskdata[k].Taskprogress = uinfo.Task.PassLevel
120 if uinfo.Task.PassLevel >= cfg.Num { 120 if uinfo.Task.PassLevel >= cfg.Num {
121 list.Taskdata[k].Taskstatus = 2 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 list.Taskdata[k].Taskprogress = uinfo.Task.UseItemCnt 124 list.Taskdata[k].Taskprogress = uinfo.Task.UseItemCnt
125 if uinfo.Task.UseItemCnt >= cfg.Num { 125 if uinfo.Task.UseItemCnt >= cfg.Num {
126 list.Taskdata[k].Taskstatus = 2 126 list.Taskdata[k].Taskstatus = 2
@@ -130,12 +130,12 @@ func (uinfo *UserData) CalcTaskList(list *TaskList) { @@ -130,12 +130,12 @@ func (uinfo *UserData) CalcTaskList(list *TaskList) {
130 if uinfo.Task.GetRedbagCnt >= cfg.Num { 130 if uinfo.Task.GetRedbagCnt >= cfg.Num {
131 list.Taskdata[k].Taskstatus = 2 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 list.Taskdata[k].Taskprogress = uinfo.Task.GetGuanGold 134 list.Taskdata[k].Taskprogress = uinfo.Task.GetGuanGold
135 if uinfo.Task.GetGuanGold >= cfg.Num { 135 if uinfo.Task.GetGuanGold >= cfg.Num {
136 list.Taskdata[k].Taskstatus = 2 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 list.Taskdata[k].Taskprogress = uinfo.Task.OnlineMin 139 list.Taskdata[k].Taskprogress = uinfo.Task.OnlineMin
140 if uinfo.Task.OnlineMin >= cfg.Num { 140 if uinfo.Task.OnlineMin >= cfg.Num {
141 list.Taskdata[k].Taskstatus = 2 141 list.Taskdata[k].Taskstatus = 2
@@ -145,7 +145,7 @@ func (uinfo *UserData) CalcTaskList(list *TaskList) { @@ -145,7 +145,7 @@ func (uinfo *UserData) CalcTaskList(list *TaskList) {
145 } 145 }
146 146
147 //需要保存到redis 147 //需要保存到redis
148 - SaveTaskInfo(uinfo.Userid,1,list) 148 + SaveTaskInfo(uinfo.Userid, 1, list)
149 149
150 //排序 150 //排序
151 sort.Sort(list) 151 sort.Sort(list)
@@ -165,26 +165,26 @@ func (uinfo *UserData) CalcAchieveProgress(ttype int) int { @@ -165,26 +165,26 @@ func (uinfo *UserData) CalcAchieveProgress(ttype int) int {
165 case ACHIEVETYPE_USEITEMCNT: 165 case ACHIEVETYPE_USEITEMCNT:
166 rtval = uinfo.Achieve.SumUseItemCnt 166 rtval = uinfo.Achieve.SumUseItemCnt
167 default: 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 return rtval 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 newlist := new(TaskList) 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 cfg := GetAchieveConfig(val.Taskid) 181 cfg := GetAchieveConfig(val.Taskid)
182 if cfg == nil { 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 continue 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 switch cfg.TaskType { 188 switch cfg.TaskType {
189 case ACHIEVETYPE_WATCHADDS: 189 case ACHIEVETYPE_WATCHADDS:
190 if uinfo.Achieve.WatchAdsCnt >= cfg.Num { 190 if uinfo.Achieve.WatchAdsCnt >= cfg.Num {
@@ -207,16 +207,15 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{ @@ -207,16 +207,15 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{
207 list.Taskdata[k].Taskstatus = 2 207 list.Taskdata[k].Taskstatus = 2
208 } 208 }
209 default: 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 cfg := GetAchieveConfig(val.Taskid) 216 cfg := GetAchieveConfig(val.Taskid)
218 if cfg == nil { 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 continue 219 continue
221 } 220 }
222 221
@@ -224,98 +223,97 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{ @@ -224,98 +223,97 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList{
224 //未领取已完成 只需要加入第一种 223 //未领取已完成 只需要加入第一种
225 if curtype == cfg.TaskType { 224 if curtype == cfg.TaskType {
226 continue 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 curtype = cfg.TaskType 229 curtype = cfg.TaskType
231 } 230 }
232 - }else if val.Taskstatus == 1 { 231 + } else if val.Taskstatus == 1 {
233 //未完成 返回第一个 232 //未完成 返回第一个
234 if curtype == cfg.TaskType { 233 if curtype == cfg.TaskType {
235 continue 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 curtype = cfg.TaskType 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 nextcfg := GetAchieveConfig(list.Taskdata[k+1].Taskid) 244 nextcfg := GetAchieveConfig(list.Taskdata[k+1].Taskid)
246 - if nextcfg!=nil { 245 + if nextcfg != nil {
247 if nextcfg.TaskType != cfg.TaskType { 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 curtype = cfg.TaskType 249 curtype = cfg.TaskType
251 } 250 }
252 } 251 }
253 252
254 } else { 253 } else {
255 //最后一条 加入 254 //最后一条 加入
256 - newlist.Taskdata = append(newlist.Taskdata,list.Taskdata[k]) 255 + newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])
257 curtype = cfg.TaskType 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 sort.Sort(newlist) 266 sort.Sort(newlist)
269 - logger.Info("CalcAchieveList alist=%v",newlist) 267 + logger.Info("CalcAchieveList alist=%v", newlist)
270 return newlist 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 if err != nil { 273 if err != nil {
276 - logger.Error("SaveTaskInfo err =%v",err) 274 + logger.Error("SaveTaskInfo err =%v", err)
277 return err 275 return err
278 } 276 }
279 277
280 if tasktype == 1 { 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 logger.Error("tasktype invalid") 283 logger.Error("tasktype invalid")
286 return errors.New("tasktype invalid") 284 return errors.New("tasktype invalid")
287 } 285 }
288 return err 286 return err
289 } 287 }
290 288
291 -func GetTaskInfo(uuid ,tasktype int) (*TaskList,error) { 289 +func GetTaskInfo(uuid, tasktype int) (*TaskList, error) {
292 var data string 290 var data string
293 var err error 291 var err error
294 if tasktype == 1 { 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 logger.Error("tasktype invalid") 297 logger.Error("tasktype invalid")
300 - return nil,errors.New("tasktype invalid") 298 + return nil, errors.New("tasktype invalid")
301 } 299 }
302 300
303 var list TaskList 301 var list TaskList
304 - err = json.Unmarshal([]byte(data),&list) 302 + err = json.Unmarshal([]byte(data), &list)
305 if err != nil { 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 isfind := false 313 isfind := false
316 index := -1 314 index := -1
317 var taskdesc *TaskListDesc 315 var taskdesc *TaskListDesc
318 - for k,val := range list.Taskdata { 316 + for k, val := range list.Taskdata {
319 if val.Taskid == req.Taskid { 317 if val.Taskid == req.Taskid {
320 isfind = true 318 isfind = true
321 index = k 319 index = k
@@ -324,7 +322,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre @@ -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 if taskdesc.Taskstatus != 2 { 326 if taskdesc.Taskstatus != 2 {
329 //状态不是可领取状态 无法领取 327 //状态不是可领取状态 无法领取
330 resp.Code = ERROR_TASKCANNOTGET 328 resp.Code = ERROR_TASKCANNOTGET
@@ -340,14 +338,14 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre @@ -340,14 +338,14 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
340 return errors.New("当前任务未完成或已领取") 338 return errors.New("当前任务未完成或已领取")
341 } 339 }
342 } 340 }
343 - }else { 341 + } else {
344 resp.Code = ERROR_TASKID_WRONG 342 resp.Code = ERROR_TASKID_WRONG
345 resp.Message = "当前任务id错误" 343 resp.Message = "当前任务id错误"
346 return errors.New("当前任务id错误") 344 return errors.New("当前任务id错误")
347 } 345 }
348 346
349 cfg := GetTaskConfig(taskdesc.Taskid) 347 cfg := GetTaskConfig(taskdesc.Taskid)
350 - if cfg == nil || len (cfg.Reward) < 2{ 348 + if cfg == nil || len(cfg.Reward) < 2 {
351 resp.Code = ERROR_SRV_ERROR 349 resp.Code = ERROR_SRV_ERROR
352 resp.Message = "网络错误" 350 resp.Message = "网络错误"
353 return errors.New("获取配置失败") 351 return errors.New("获取配置失败")
@@ -357,10 +355,10 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre @@ -357,10 +355,10 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
357 list.Taskdata[index].Taskstatus = 0 355 list.Taskdata[index].Taskstatus = 0
358 //发奖励 356 //发奖励
359 sub := len(cfg.Reward) / 2 357 sub := len(cfg.Reward) / 2
360 - for i:=0;i<sub;i++ { 358 + for i := 0; i < sub; i++ {
361 rtype := cfg.Reward[i*2] 359 rtype := cfg.Reward[i*2]
362 rnum := cfg.Reward[i*2+1] 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 if resp.Data.Lv != r1 { 362 if resp.Data.Lv != r1 {
365 resp.Data.Lv = r1 363 resp.Data.Lv = r1
366 } 364 }
@@ -375,29 +373,29 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre @@ -375,29 +373,29 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq,resp *Gettaskre
375 return nil 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 switch rtype { 377 switch rtype {
380 case REWARDTYPE_STAR: 378 case REWARDTYPE_STAR:
381 - return 0,num,0,0,0,0 379 + return 0, num, 0, 0, 0, 0
382 case REWARDTYPE_CHUI: 380 case REWARDTYPE_CHUI:
383 - return 0,0,num,0,0,0 381 + return 0, 0, num, 0, 0, 0
384 case REWARDTYPE_SHUA: 382 case REWARDTYPE_SHUA:
385 - return 0,0,0,num,0,0 383 + return 0, 0, 0, num, 0, 0
386 case REWARDTYPE_SWAP: 384 case REWARDTYPE_SWAP:
387 - return 0,0,0,0,num,0 385 + return 0, 0, 0, 0, num, 0
388 case REWARDTYPE_ELIMITE: 386 case REWARDTYPE_ELIMITE:
389 - return 0,0,0,0,0,num 387 + return 0, 0, 0, 0, 0, num
390 case REWARDTYPE_EXP: 388 case REWARDTYPE_EXP:
391 isup := uinfo.AddUserExp(num) 389 isup := uinfo.AddUserExp(num)
392 if isup { 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 case REWARDTYPE_GOLD: 395 case REWARDTYPE_GOLD:
398 - _,err :=AddCoinToSdk(uinfo.Userid,num,gameid,channel,100) 396 + _, err := AddCoinToSdk(uinfo.Userid, num, gameid, channel, 100)
399 if err != nil { 397 if err != nil {
400 - logger.Error("RewardUser failer err=%v",err) 398 + logger.Error("RewardUser failer err=%v", err)
401 } 399 }
402 //uinfo.RealGold = 400 //uinfo.RealGold =
403 uinfo.RealGold += num 401 uinfo.RealGold += num
@@ -407,7 +405,7 @@ func (uinfo *UserData) RewardUser(rtype int,num int,gameid string,channel string @@ -407,7 +405,7 @@ func (uinfo *UserData) RewardUser(rtype int,num int,gameid string,channel string
407 return 0, 0, 0, 0, 0, 0 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 var initdata UserData 410 var initdata UserData
413 initdata.Lv = 1 411 initdata.Lv = 1
@@ -419,24 +417,24 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{ @@ -419,24 +417,24 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
419 initdata.GuanGold = 0 417 initdata.GuanGold = 0
420 initdata.LastLoginTime = int(time.Now().Unix()) 418 initdata.LastLoginTime = int(time.Now().Unix())
421 initdata.RealGold = 0 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 var tmp WithDrawDesc 423 var tmp WithDrawDesc
426 tmp.Cid = val.Id 424 tmp.Cid = val.Id
427 tmp.Cnum = val.Money 425 tmp.Cnum = val.Money
428 if val.Isnew == 1 { 426 if val.Isnew == 1 {
429 tmp.Isnew = 1 427 tmp.Isnew = 1
430 - }else { 428 + } else {
431 tmp.Isnew = 2 429 tmp.Isnew = 2
432 } 430 }
433 tmp.Limitlv = val.Level 431 tmp.Limitlv = val.Level
434 if val.Id == 1 { 432 if val.Id == 1 {
435 tmp.Preisfind = 1 433 tmp.Preisfind = 1
436 - }else { 434 + } else {
437 tmp.Preisfind = 0 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 resp.Data.Guangold = initdata.GuanGold 440 resp.Data.Guangold = initdata.GuanGold
@@ -445,7 +443,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{ @@ -445,7 +443,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
445 443
446 err := SaveUserInfo(&initdata) 444 err := SaveUserInfo(&initdata)
447 if err != nil { 445 if err != nil {
448 - logger.Error("InitUserInfo err=%v",err) 446 + logger.Error("InitUserInfo err=%v", err)
449 return err 447 return err
450 } 448 }
451 449
@@ -455,35 +453,35 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{ @@ -455,35 +453,35 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
455 return err 453 return err
456 } 454 }
457 455
458 -func InitTaskAndAchievement(uuid int) error{ 456 +func InitTaskAndAchievement(uuid int) error {
459 //先初始化任务 457 //先初始化任务
460 tasklist := new(TaskList) 458 tasklist := new(TaskList)
461 - for _,val := range jsonconf.GetJsonConf().TaskConfig { 459 + for _, val := range jsonconf.GetJsonConf().TaskConfig {
462 var tmp TaskListDesc 460 var tmp TaskListDesc
463 tmp.Taskstatus = 1 461 tmp.Taskstatus = 1
464 tmp.Taskid = val.Id 462 tmp.Taskid = val.Id
465 tmp.Taskprogress = 0 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 if err != nil { 468 if err != nil {
471 - logger.Error("InitTaskAndAchievement err=%v",err) 469 + logger.Error("InitTaskAndAchievement err=%v", err)
472 return err 470 return err
473 } 471 }
474 472
475 achievelist := new(TaskList) 473 achievelist := new(TaskList)
476 - for _,val := range jsonconf.GetJsonConf().AchieventConfig { 474 + for _, val := range jsonconf.GetJsonConf().AchieventConfig {
477 var tmp TaskListDesc 475 var tmp TaskListDesc
478 tmp.Taskstatus = 1 476 tmp.Taskstatus = 1
479 tmp.Taskid = val.Id 477 tmp.Taskid = val.Id
480 tmp.Taskprogress = 0 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 if err != nil { 483 if err != nil {
486 - logger.Error("InitTaskAndAchievement err=%v",err) 484 + logger.Error("InitTaskAndAchievement err=%v", err)
487 return err 485 return err
488 } 486 }
489 487
@@ -494,7 +492,7 @@ func InitTaskAndAchievement(uuid int) error{ @@ -494,7 +492,7 @@ func InitTaskAndAchievement(uuid int) error{
494 func (u *UserData) CalcTotalCnt() int { 492 func (u *UserData) CalcTotalCnt() int {
495 maxtime := 0 493 maxtime := 0
496 usertime := 0 494 usertime := 0
497 - for _,val := range jsonconf.GetJsonConf().MoneyBoxTimeConfig { 495 + for _, val := range jsonconf.GetJsonConf().MoneyBoxTimeConfig {
498 if maxtime < val.Times { 496 if maxtime < val.Times {
499 maxtime = val.Times 497 maxtime = val.Times
500 } 498 }
@@ -518,25 +516,24 @@ func (u *UserData) HandlePassDay() { @@ -518,25 +516,24 @@ func (u *UserData) HandlePassDay() {
518 nowtimestamp := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location()) 516 nowtimestamp := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location())
519 lasttimestamp := time.Date(lasttime.Year(), lasttime.Month(), lasttime.Day(), 0, 0, 0, 0, lasttime.Location()) 517 lasttimestamp := time.Date(lasttime.Year(), lasttime.Month(), lasttime.Day(), 0, 0, 0, 0, lasttime.Location())
520 518
521 -  
522 if nowdaynum == lastdaynum { 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 //u.LastLoginTime = int(time.Now().Unix()) 523 //u.LastLoginTime = int(time.Now().Unix())
527 u.ContinueLoginDay = 1 524 u.ContinueLoginDay = 1
528 isdiffday = true 525 isdiffday = true
529 - }else { 526 + } else {
530 //t同一天 不做处理 527 //t同一天 不做处理
531 } 528 }
532 - }else { 529 + } else {
533 //不是同一天了 530 //不是同一天了
534 isdiffday = true 531 isdiffday = true
535 - if nowtimestamp.Unix() > lasttimestamp.Unix() + 86399 { 532 + if nowtimestamp.Unix() > lasttimestamp.Unix()+86399 {
536 //超过一天了 533 //超过一天了
537 u.ContinueLoginDay = 1 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,6 +548,17 @@ func (u *UserData) HandlePassDay() {
551 u.Task.OnlineMin = 0 548 u.Task.OnlineMin = 0
552 u.Task.PassLevel = 0 549 u.Task.PassLevel = 0
553 u.Task.UseItemCnt = 0 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 u.LastLoginTime = int(nowtime.Unix()) 564 u.LastLoginTime = int(nowtime.Unix())
@@ -558,9 +566,9 @@ func (u *UserData) HandlePassDay() { @@ -558,9 +566,9 @@ func (u *UserData) HandlePassDay() {
558 SaveUserInfo(u) 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 resp.Code = ERROR_SRV_ERROR 572 resp.Code = ERROR_SRV_ERROR
565 resp.Message = "ERROR_SRV_ERROR" 573 resp.Message = "ERROR_SRV_ERROR"
566 return err 574 return err
@@ -570,7 +578,7 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{ @@ -570,7 +578,7 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{
570 data.HandlePassDay() 578 data.HandlePassDay()
571 579
572 //此处处理一下从sdk拉取钱包金币数量 580 //此处处理一下从sdk拉取钱包金币数量
573 - gold,err := GetCoinFromSdk(uuid,req.Gameid,req.Channel) 581 + gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel)
574 if err != nil { 582 if err != nil {
575 data.RealGold = gold 583 data.RealGold = gold
576 } 584 }
@@ -579,7 +587,7 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{ @@ -579,7 +587,7 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{
579 if data.LvRewardGet == 1 { 587 if data.LvRewardGet == 1 {
580 cfg := GetUserLvConfig(data.Lv) 588 cfg := GetUserLvConfig(data.Lv)
581 if cfg != nil { 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 if err != nil { 591 if err != nil {
584 data.RealGold = gold 592 data.RealGold = gold
585 } 593 }
@@ -600,46 +608,46 @@ func GetUserData(uuid int, req *UserLoginReq,resp *UserLoginResp) error{ @@ -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 var list *WithDrawList 612 var list *WithDrawList
605 list = new(WithDrawList) 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 if err != nil { 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 if err != nil { 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 if err != nil { 638 if err != nil {
631 return err 639 return err
632 } 640 }
633 if !exist { 641 if !exist {
634 //添加新的记录 642 //添加新的记录
635 var tmp WithDrawList 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 if err != nil { 647 if err != nil {
640 return err 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 return err 651 return err
644 } 652 }
645 653
@@ -654,35 +662,33 @@ func AddWithDrawList(uuid int,data *WithDrawRecord) error { @@ -654,35 +662,33 @@ func AddWithDrawList(uuid int,data *WithDrawRecord) error {
654 return err 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 return err 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 if err != nil { 672 if err != nil {
665 return err 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 return err 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 totalexp := num 682 totalexp := num
677 isup := false 683 isup := false
678 for { 684 for {
679 lvcfg := GetUserLvConfig(uinfo.Lv) 685 lvcfg := GetUserLvConfig(uinfo.Lv)
680 if lvcfg == nil { 686 if lvcfg == nil {
681 - logger.Error("AddUserExp fail lv=%v",uinfo.Lv) 687 + logger.Error("AddUserExp fail lv=%v", uinfo.Lv)
682 break 688 break
683 } 689 }
684 //判断下是否满级了 690 //判断下是否满级了
685 - nexcfg := GetUserLvConfig(uinfo.Lv+1) 691 + nexcfg := GetUserLvConfig(uinfo.Lv + 1)
686 if nexcfg == nil { 692 if nexcfg == nil {
687 //已经满级了 693 //已经满级了
688 uinfo.Exp += totalexp 694 uinfo.Exp += totalexp
@@ -696,10 +702,10 @@ func (uinfo* UserData) AddUserExp(num int) bool { @@ -696,10 +702,10 @@ func (uinfo* UserData) AddUserExp(num int) bool {
696 //不够升级的 702 //不够升级的
697 uinfo.Exp += totalexp 703 uinfo.Exp += totalexp
698 break 704 break
699 - }else { 705 + } else {
700 //够升级的 升一级 706 //够升级的 升一级
701 - uinfo.Lv ++  
702 - uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取 707 + uinfo.Lv++
  708 + uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取
703 isup = true 709 isup = true
704 totalexp -= needexp 710 totalexp -= needexp
705 uinfo.Exp = 0 711 uinfo.Exp = 0
@@ -710,16 +716,60 @@ func (uinfo* UserData) AddUserExp(num int) bool { @@ -710,16 +716,60 @@ func (uinfo* UserData) AddUserExp(num int) bool {
710 return isup 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 \ No newline at end of file 774 \ No newline at end of file
  775 + return 0, nil
  776 +}