Commit bfc50df58f016d95692bec35be2d163a7a822883

Authored by 陆恒
1 parent 71894859
Exists in master

提交相关修改

src/HttpServer/jsonconf/jsonconf.go
@@ -11,101 +11,61 @@ var ( @@ -11,101 +11,61 @@ var (
11 g_jsonconf = new(GameConfig) 11 g_jsonconf = new(GameConfig)
12 ) 12 )
13 13
14 -type AchieveDesc struct {  
15 - Id int `json:"id"`  
16 - Task string `json:"task"`  
17 - Num int `json:"num"`  
18 - Reward []int `json:"reward"`  
19 - TaskType int `json:"type"`  
20 -}  
21 -  
22 -type LevelDesc struct {  
23 - Id int `json:"id"`  
24 - Level int `json:"level"`  
25 - Exp int `json:"exp"`  
26 - Cash int `json:"cash"`  
27 - Extracash int `json:"extracash"`  
28 -}  
29 -  
30 -type MoneyBoxLevelDesc struct {  
31 - Id int `json:"id"`  
32 - Level int `json:"level"`  
33 - Min int `json:"min"`  
34 - Max int `json:"max"`  
35 -}  
36 -  
37 -type MoneyBoxTimesDesc struct {  
38 - Id int `json:"id"`  
39 - Times int `json:"times"`  
40 - Login int `json:"login"`  
41 - Score int `json:"score"`  
42 -}  
43 -  
44 -type WithDrawDesc struct {  
45 - Id int `json:"id"`  
46 - Money float32 `json:"money"`  
47 - Coin int `json:"coin"`  
48 - Task int `json:"task"`  
49 - Level int `json:"level"`  
50 - Isnew int `json:"new"`  
51 -}  
52 -  
53 -type SignRewardDetail struct { 14 +type SignConfig struct {
54 Id int `json:"id"` 15 Id int `json:"id"`
55 Num int `json:"num"` 16 Num int `json:"num"`
56 } 17 }
57 18
58 -type SignReward struct {  
59 - Reward1 []SignRewardDetail `json:"reward1"`  
60 - Reward2 []SignRewardDetail `json:"reward2"` 19 +type GoldGunsConfig struct {
  20 + Level int `json:"level"`
  21 + Speed int `json:"speed"`
61 } 22 }
62 23
63 -type SignConfigDesc struct {  
64 - Rule int `json:"rule"`  
65 - Round int `json:"round"`  
66 - Reward SignReward `json:"reward"` 24 +type GoldChestConfig struct {
  25 + Boxid int `json:"boxid"`
  26 + Score int `json:"score"`
  27 + Reward int `json:"reward"`
67 } 28 }
68 29
69 type GameConfig struct { 30 type GameConfig struct {
70 - AchieventConfig []AchieveDesc  
71 - TaskConfig []AchieveDesc  
72 - LevelConfig []LevelDesc  
73 - MoneyBoxConfig []MoneyBoxLevelDesc  
74 - MoneyBoxTimeConfig []MoneyBoxTimesDesc  
75 - WithDrawConfig []WithDrawDesc  
76 - SignConfig SignConfigDesc 31 + SignCfg []SignConfig
  32 + GunConfig []GoldGunsConfig
  33 + BoxConfig []GoldChestConfig
77 } 34 }
78 35
79 func GetJsonConf() *GameConfig { 36 func GetJsonConf() *GameConfig {
80 return g_jsonconf 37 return g_jsonconf
81 } 38 }
82 39
83 -func GetSignConfig(round, daynum int) *SignRewardDetail {  
84 - if round+1 > g_jsonconf.SignConfig.Round {  
85 - //取reward2  
86 - if daynum > len(g_jsonconf.SignConfig.Reward.Reward2) {  
87 - logger.Error("GetSignConfig failed")  
88 - return nil 40 +func GetSignConfig(daynum int) *SignConfig {
  41 + var rt *SignConfig
  42 + for _, val := range g_jsonconf.SignCfg {
  43 + if val.Id == daynum {
  44 + rt = &val
  45 + break
89 } 46 }
  47 + }
  48 + return rt
  49 +}
90 50
91 - return &g_jsonconf.SignConfig.Reward.Reward2[daynum-1] 51 +func GetGoldGunsConfig(level int) *GoldGunsConfig {
92 52
93 - } else {  
94 - //取reward1  
95 - if daynum > len(g_jsonconf.SignConfig.Reward.Reward1) {  
96 - logger.Error("GetSignConfig failed")  
97 - return nil 53 + var rt *GoldGunsConfig
  54 + for _, val := range g_jsonconf.GunConfig {
  55 + if val.Level == level {
  56 + rt = &val
  57 + break
98 } 58 }
99 -  
100 - return &g_jsonconf.SignConfig.Reward.Reward1[daynum-1]  
101 } 59 }
  60 +
  61 + return rt
102 } 62 }
103 63
104 -func GetMoneyBoxCfg(lv int) *MoneyBoxLevelDesc {  
105 - rt := new(MoneyBoxLevelDesc)  
106 - rt = nil  
107 - for _, val := range g_jsonconf.MoneyBoxConfig {  
108 - if val.Level == lv { 64 +func GetGoldChestConfig(boxid int) *GoldChestConfig {
  65 +
  66 + var rt *GoldChestConfig
  67 + for _, val := range g_jsonconf.BoxConfig {
  68 + if val.Boxid == boxid {
109 rt = &val 69 rt = &val
110 break 70 break
111 } 71 }
@@ -125,79 +85,27 @@ func file_get_contents(path string) ([]byte, error) { @@ -125,79 +85,27 @@ func file_get_contents(path string) ([]byte, error) {
125 func LoadJsonConf() error { 85 func LoadJsonConf() error {
126 //pconf := &GameConfig{} 86 //pconf := &GameConfig{}
127 //加载第一个配置 87 //加载第一个配置
128 - path := "../jsonconf/AchievementConfig.json" 88 + path := "../jsonconf/GoldChestConfig.json"
129 content, err := file_get_contents(path) 89 content, err := file_get_contents(path)
130 if err != nil { 90 if err != nil {
131 logger.Info("loadJsonConf failed1,err=%v", err) 91 logger.Info("loadJsonConf failed1,err=%v", err)
132 return err 92 return err
133 } 93 }
134 94
135 - err = json.Unmarshal([]byte(content), &g_jsonconf.AchieventConfig)  
136 - if err != nil {  
137 - logger.Info("loadJsonConf failed1,err=%v", err)  
138 - return err  
139 - }  
140 -  
141 - path = "../jsonconf/DailyTask.json"  
142 - content, err = file_get_contents(path)  
143 - if err != nil {  
144 - logger.Info("loadJsonConf failed1,err=%v", err)  
145 - return err  
146 - }  
147 -  
148 - err = json.Unmarshal([]byte(content), &g_jsonconf.TaskConfig)  
149 - if err != nil {  
150 - logger.Info("loadJsonConf failed1,err=%v", err)  
151 - return err  
152 - }  
153 -  
154 - path = "../jsonconf/LevelConfig.json"  
155 - content, err = file_get_contents(path)  
156 - if err != nil {  
157 - logger.Info("loadJsonConf failed1,err=%v", err)  
158 - return err  
159 - }  
160 -  
161 - err = json.Unmarshal([]byte(content), &g_jsonconf.LevelConfig)  
162 - if err != nil {  
163 - logger.Info("loadJsonConf failed1,err=%v", err)  
164 - return err  
165 - }  
166 -  
167 - path = "../jsonconf/MoneyboxLevel.json"  
168 - content, err = file_get_contents(path)  
169 - if err != nil {  
170 - logger.Info("loadJsonConf failed1,err=%v", err)  
171 - return err  
172 - }  
173 -  
174 - err = json.Unmarshal([]byte(content), &g_jsonconf.MoneyBoxConfig)  
175 - if err != nil {  
176 - logger.Info("loadJsonConf failed1,err=%v", err)  
177 - return err  
178 - }  
179 -  
180 - path = "../jsonconf/MoneyboxTimes.json"  
181 - content, err = file_get_contents(path)  
182 - if err != nil {  
183 - logger.Info("loadJsonConf failed1,err=%v", err)  
184 - return err  
185 - }  
186 -  
187 - err = json.Unmarshal([]byte(content), &g_jsonconf.MoneyBoxTimeConfig) 95 + err = json.Unmarshal([]byte(content), &g_jsonconf.BoxConfig)
188 if err != nil { 96 if err != nil {
189 logger.Info("loadJsonConf failed1,err=%v", err) 97 logger.Info("loadJsonConf failed1,err=%v", err)
190 return err 98 return err
191 } 99 }
192 100
193 - path = "../jsonconf/WithdrawConfig.json" 101 + path = "../jsonconf/GoldGunsConfig.json"
194 content, err = file_get_contents(path) 102 content, err = file_get_contents(path)
195 if err != nil { 103 if err != nil {
196 logger.Info("loadJsonConf failed1,err=%v", err) 104 logger.Info("loadJsonConf failed1,err=%v", err)
197 return err 105 return err
198 } 106 }
199 107
200 - err = json.Unmarshal([]byte(content), &g_jsonconf.WithDrawConfig) 108 + err = json.Unmarshal([]byte(content), &g_jsonconf.GunConfig)
201 if err != nil { 109 if err != nil {
202 logger.Info("loadJsonConf failed1,err=%v", err) 110 logger.Info("loadJsonConf failed1,err=%v", err)
203 return err 111 return err
@@ -210,7 +118,7 @@ func LoadJsonConf() error { @@ -210,7 +118,7 @@ func LoadJsonConf() error {
210 return err 118 return err
211 } 119 }
212 120
213 - err = json.Unmarshal([]byte(content), &g_jsonconf.SignConfig) 121 + err = json.Unmarshal([]byte(content), &g_jsonconf.SignCfg)
214 if err != nil { 122 if err != nil {
215 logger.Info("loadJsonConf failed1,err=%v", err) 123 logger.Info("loadJsonConf failed1,err=%v", err)
216 return err 124 return err
src/HttpServer/logic/constdef.go
1 package logic 1 package logic
2 -  
3 -//任务成就类型枚举 协议上报用  
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次道具  
10 -)  
11 -  
12 -//任务类型 对应表  
13 -const (  
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 //在线分钟数  
21 -)  
22 -  
23 -//成就类型 对应表  
24 -const (  
25 - ACHIEVETYPE_WATCHADDS = 1 //累计观看广告次数  
26 - ACHIEVETYPE_USERLV = 2 //人物等级  
27 - ACHIEVETYPE_KILLSTAR = 3 //累计消除星星数  
28 - ACHIEVETYPE_GETGUANCNT = 4 //累计存钱罐提取  
29 - ACHIEVETYPE_USEITEMCNT = 5 //累计道具使用  
30 -  
31 -)  
32 -  
33 -//奖励类型枚举  
34 -const (  
35 - REWARDTYPE_STAR = 1 //星星  
36 - REWARDTYPE_CHUI = 2  
37 - REWARDTYPE_SHUA = 3  
38 - REWARDTYPE_SWAP = 4  
39 - REWARDTYPE_ELIMITE = 5  
40 - REWARDTYPE_EXP = 6  
41 - REWARDTYPE_GOLD = 7  
42 -)  
43 -  
44 -const (  
45 - //XIAOXINGXING_SERVERKEY = "33e0c3238c108a36d87025544c6a2d2f"  
46 - //XIAOXINGXING_SERVERKEYTEST = "e2cd22102143cdcd9c181f962d031685"  
47 - XIAOXINGXING_SERVERKEYTEST = "33e0c3238c108a36d87025544c6a2d2f"  
48 - XIAOXINGXING_SDKURL = "https://testapi-gamesdk.d3games.com/"  
49 - XIAOXINGXING_SDKURLOFFICAL = "https://api.gamesdk.hmjoy.cn/"  
50 -)  
51 -  
52 -const (  
53 - WATCH_ADD_DAY_LIMIT = 50 //当天获取红包次数限制  
54 - FREE_REDBAG_NUM = 3 //玩家免费红包次数  
55 -)  
src/HttpServer/logic/datadef.go
1 package logic 1 package logic
2 -  
3 -type UserLoginReq struct {  
4 - Fromid int `json:"fromid"`  
5 - Sharetype int `json:"sharetype"`  
6 - Gameid string `json:"gameid"`  
7 - Channel string `json:"channel"`  
8 -}  
9 -  
10 -type UserLoginData struct {  
11 - Walletgold int `json:"walletgold"`  
12 - Leftredbagcnt int `json:"leftredbagcnt"`  
13 - Guangold int `json:"guangold"`  
14 - Userlv int `json:"userlv"`  
15 - Userexp int `json:"userexp"`  
16 -}  
17 -  
18 -type UserLoginResp struct {  
19 - Code int `json:"code"`  
20 - Message string `json:"message"`  
21 - Data UserLoginData `json:"data"`  
22 -}  
23 -  
24 -type GetuserdataReq struct {  
25 - Gameid string `json:"gameid"`  
26 - Channel string `json:"channel"`  
27 -}  
28 -  
29 -type GetuserdataData struct {  
30 - Walletgold int `json:"walletgold"`  
31 - Leftredbagcnt int `json:"leftredbagcnt"`  
32 - Guangold int `json:"guangold"`  
33 - Userlv int `json:"userlv"`  
34 - Userexp int `json:"userexp"`  
35 - Leftfreeredbag int `json:"leftfreeredbag"`  
36 -}  
37 -  
38 -type GetuserdataResp struct {  
39 - Code int `json:"code"`  
40 - Message string `json:"message"`  
41 - Data GetuserdataData `json:"data"`  
42 -}  
43 -  
44 -type WatchadsData struct {  
45 - Leftads int `json:"leftads"`  
46 -}  
47 -  
48 -type WatchadsResp struct {  
49 - Code int `json:"code"`  
50 - Message string `json:"message"`  
51 - Data WatchadsData `json:"data"`  
52 -}  
53 -  
54 -type QueryguaninfoData struct {  
55 - Leftcnt int `json:"leftcnt"`  
56 - Totalcnt int `json:"totalcnt"`  
57 - Guangold int `json:"guangold"`  
58 - Minget int `json:"minget"`  
59 - Maxget int `json:"maxget"`  
60 - Loginday int `json:"loginday"`  
61 - Totalfetchcnt int `json:"totalfetchcnt"`  
62 -}  
63 -  
64 -type QueryguaninfoResp struct {  
65 - Code int `json:"code"`  
66 - Message string `json:"message"`  
67 - Data QueryguaninfoData `json:"data"`  
68 -}  
69 -  
70 -type GetguangoldReq struct {  
71 - Goldnum int `json:"goldnum"`  
72 -}  
73 -  
74 -type GetguangoldData struct {  
75 - Guangold int `json:"guangold"`  
76 -}  
77 -  
78 -type GetguangoldResp struct {  
79 - Code int `json:"code"`  
80 - Message string `json:"message"`  
81 - Data GetguangoldData `json:"data"`  
82 -}  
83 -  
84 -type DrawguangoldReq struct {  
85 - Goldnum int `json:"goldnum"`  
86 - Gameid string `json:"gameid"`  
87 - Channel string `json:"channel"`  
88 -}  
89 -  
90 -type DrawguangoldData struct {  
91 - Guangold int `json:"guangold"`  
92 - Wallgold int `json:"wallgold"`  
93 - Totalfetchcnt int `json:"totalfetchcnt"`  
94 -}  
95 -  
96 -type DrawguangoldResp struct {  
97 - Code int `json:"code"`  
98 - Message string `json:"message"`  
99 - Data DrawguangoldData `json:"data"`  
100 -}  
101 -  
102 -type QuerdrawinfoResp struct {  
103 - Code int `json:"code"`  
104 - Message string `json:"message"`  
105 - Data WithDrawInfo `json:"data"`  
106 -}  
107 -  
108 -type GetcashReq struct {  
109 - Gameid string `json:"gameid"`  
110 - Channel string `json:"channel"`  
111 - Money float32 `json:"money"`  
112 - Openid string `json:"openid"`  
113 - Nickname string `json:"nickname"`  
114 - Headurl string `json:"headurl"`  
115 - Ver string `json:"ver"`  
116 -}  
117 -  
118 -type GetcashData struct {  
119 - Walletgold int `json:"walletgold"`  
120 -}  
121 -type GetcashResp struct {  
122 - Code int `json:"code"`  
123 - Message string `json:"message"`  
124 - Data GetcashData `json:"data"`  
125 -}  
126 -  
127 -type GetcashrecordReq struct {  
128 - Gameid string `json:"gameid"`  
129 - Channel string `json:"channel"`  
130 -}  
131 -  
132 -type GetcashrecordResp struct {  
133 - Code int `json:"code"`  
134 - Message string `json:"message"`  
135 - Data WithDrawList `json:"data"`  
136 -}  
137 -  
138 -type OnlinentfResp struct {  
139 - Code int `json:"code"`  
140 - Message string `json:"message"`  
141 -}  
142 -  
143 -type UpdatetaskReq struct {  
144 - Tasktype int `json:"tasktype"`  
145 - Value int `json:"value"`  
146 -}  
147 -  
148 -type UpdatetaskResp struct {  
149 - Code int `json:"code"`  
150 - Message string `json:"message"`  
151 -}  
152 -  
153 -type QuerytaskinfoReq struct {  
154 - Tasktype int `json:"tasktype"`  
155 -}  
156 -  
157 -type QuerytaskinfoResp struct {  
158 - Code int `json:"code"`  
159 - Message string `json:"message"`  
160 - Data TaskList `json:"data"`  
161 -}  
162 -  
163 -type GettaskrewardReq struct {  
164 - Tasktype int `json:"tasktype"`  
165 - Taskid int `json:"taskid"`  
166 - Gameid string `json:"gameid"`  
167 - Channel string `json:"channel"`  
168 -}  
169 -  
170 -type GettaskrewardData struct {  
171 - Lv int `json:"lv"`  
172 - Costtime int `json:"costtime"`  
173 - Rewardstar int `json:"rewardstar"`  
174 - Chuiitem int `json:"chuiitem"`  
175 - Shuaitem int `json:"shuaitem"`  
176 - Swapitem int `json:"swapitem"`  
177 - Eliminitem int `json:"eliminitem"`  
178 - Goldnum int `json:"goldnum"`  
179 -}  
180 -type GettaskrewardResp struct {  
181 - Code int `json:"code"`  
182 - Message string `json:"message"`  
183 - Data GettaskrewardData `json:"data"`  
184 -}  
185 -  
186 -type GetnewlevelrewardReq struct {  
187 - Rewardtype int `json:"rewardtype"`  
188 - Gameid string `json:"gameid"`  
189 - Channel string `json:"channel"`  
190 -}  
191 -  
192 -type GetnewlevelrewardData struct {  
193 - Goldnum int `json:"goldnum"`  
194 -}  
195 -type GetnewlevelrewardResp struct {  
196 - Code int `json:"code"`  
197 - Message string `json:"message"`  
198 - Data GetnewlevelrewardData `json:"data"`  
199 -}  
200 -  
201 -type QuerysigndataData struct {  
202 - Signround int `json:"signround"`  
203 - Continuessign int `json:"continuessign"`  
204 - IssignToday int `json:"issignToday"`  
205 -}  
206 -  
207 -type QuerysigndataResp struct {  
208 - Code int `json:"code"`  
209 - Message string `json:"message"`  
210 - Data QuerysigndataData `json:"data"`  
211 -}  
212 -  
213 -type UsersignReq struct {  
214 - Gameid string `json:"gameid"`  
215 - Channel string `json:"channel"`  
216 -}  
217 -  
218 -type UsersignData struct {  
219 - Goldnum int `json:"goldnum"`  
220 -}  
221 -type UsersignResp struct {  
222 - Code int `json:"code"`  
223 - Message string `json:"message"`  
224 - Data UsersignData `json:"data"`  
225 -}  
226 -  
227 -//**********************************************************************************************************  
228 -  
229 -type TaskListDesc struct {  
230 - Taskid int `json:"taskid"`  
231 - Taskstatus int `json:"taskstatus"`  
232 - Taskprogress int `json:"taskprogress"`  
233 -}  
234 -  
235 -type TaskList struct {  
236 - Taskdata []TaskListDesc `json:"taskdata"`  
237 -}  
238 -  
239 -//其中提取次数和当日登陆在userdata中记录  
240 -type TaskInfo struct {  
241 - OnlineMin int //在线分钟数  
242 - PassLevel int //通过关卡数  
243 - UseItemCnt int //使用道具次数  
244 - GetRedbagCnt int //领取红包次数  
245 - GetGuanGold int //收集金币数  
246 -}  
247 -  
248 -//  
249 -type AchieveMentInfo struct {  
250 - WatchAdsCnt int //观看广告数  
251 - KillStar int //消除星星数  
252 - SumGetGuan int //存钱罐累计提取  
253 - SumUseItemCnt int //使用道具次数累计  
254 -}  
255 -  
256 -type WithDrawList struct {  
257 - Withdata []WithDrawRecord `json:"withdata"`  
258 -}  
259 -  
260 -//提现记录结构  
261 -type WithDrawRecord struct {  
262 - Coin int `json:"coin"`  
263 - Create_time int `json:"create_time"`  
264 - Money int `json:"money"`  
265 - No string `json:"no"`  
266 - Status int `json:"status"`  
267 - Statusmsg string `json:"statusmsg"`  
268 - Typ int `json:"typ"`  
269 -}  
270 -  
271 -type WithDrawInfo struct {  
272 - Cashdata []WithDrawDesc `json:"cashdata"`  
273 -}  
274 -  
275 -type WithDrawDesc struct {  
276 - Cid int `json:"cid"`  
277 - Cnum float32 `json:"cnum"`  
278 - Isnew int `json:"isnew"`  
279 - Limitlv int `json:"limitlv"`  
280 - Preisfind int `json:"preisfind"`  
281 -}  
282 -  
283 -//玩家数据  
284 -type UserData struct {  
285 - Userid int //玩家id  
286 - Lv int //玩家当前等级  
287 - LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取  
288 - Exp int //玩家当前经验值  
289 - GuanGold int //玩家存钱罐中金币数量  
290 - RealGold int //玩家实际金币数量(可用于提现的)  
291 - WatchAddsTime int //当天剩余红包次数 初始化50次  
292 - LastLoginTime int //上次登陆时间  
293 - ContinueLoginDay int //连续登录天数  
294 - GetFromGuanCnt int //当天从存钱款提取金币次数  
295 - SignRound int //签到轮数  
296 - SignSum int //累计签到天数  
297 - IsSignToday int //今日是否已经签到 1是 0否  
298 - LeftFreeRB int //剩余免费红包次数  
299 - UpLvCostTime int //上一个等级升级时间  
300 - UpLvCostTimeSec int //上一个等级升级的时间点时刻  
301 - WithDraw WithDrawInfo //提现记录信息  
302 - Task TaskInfo //玩家任务完成相关信息  
303 - Achieve AchieveMentInfo //玩家成就完成相关数据  
304 -}  
305 -  
306 -//----------------------------------------------------------------------------------------------------------------------  
307 -  
308 -type TixianDesc struct {  
309 - Sign string `json:"sign"`  
310 - Sign_type string `json:"sign_type"`  
311 - Time_stamp string `json:"time_stamp"`  
312 - Gameid string `json:"gameid"`  
313 - Channel string `json:"channel"`  
314 - Uid int `json:"uid"`  
315 - Typ int `json:"typ"`  
316 - Money int `json:"money"`  
317 - Openid string `json:"openid"`  
318 - Nickname string `json:"nickname"`  
319 - Headurl string `json:"headurl"`  
320 - Editcoin int `json:"editcoin"`  
321 - Ver string `json:"ver"`  
322 -}  
323 -  
324 -type AddCoinDesc struct {  
325 - Sign string `json:"sign"`  
326 - Sign_type string `json:"sign_type"`  
327 - Time_stamp string `json:"time_stamp"`  
328 - Gameid string `json:"gameid"`  
329 - Channel string `json:"channel"`  
330 - Uid int `json:"uid"`  
331 - Coin int `json:"coin"`  
332 - Typ int `json:"typ"`  
333 -}  
334 -  
335 -type AddCoinResultData struct {  
336 - Mycoin int `json:"mycoin"`  
337 -}  
338 -  
339 -type AddCoinResp struct {  
340 - Code string `json:"code"`  
341 - Msg string `json:"msg"`  
342 - Data AddCoinResultData `json:"data"`  
343 -}  
344 -  
345 -type GetCoinDesc struct {  
346 - Sign string `json:"sign"`  
347 - Sign_type string `json:"sign_type"`  
348 - Time_stamp string `json:"time_stamp"`  
349 - Gameid string `json:"gameid"`  
350 - Channel string `json:"channel"`  
351 - Uid int `json:"uid"`  
352 -}  
353 -  
354 -type GetCashResp struct {  
355 - Code string `json:"code"`  
356 - Msg string `json:"msg"`  
357 -}  
358 -  
359 -type GetCashListDesc struct {  
360 - Sign string `json:"sign"`  
361 - Sign_type string `json:"sign_type"`  
362 - Time_stamp string `json:"time_stamp"`  
363 - Gameid string `json:"gameid"`  
364 - Channel string `json:"channel"`  
365 - Uid int `json:"uid"`  
366 - Start int `json:"start"`  
367 - Number int `json:"number"`  
368 -}  
369 -  
370 -type GetCashListResp struct {  
371 - Code string `json:"code"`  
372 - Msg string `json:"msg"`  
373 - Data []WithDrawRecord `json:"data"`  
374 -}  
src/HttpServer/logic/errordef.go
1 package logic 1 package logic
2 2
3 const ( 3 const (
4 - ERROR_OK = 0 //没有错误  
5 - ERROR_SRV_ERROR = 1 //服务器错误  
6 - ERROR_JSONUNMASH_ERROR = 2 //json解析错误  
7 - ERROR_WATCHADS_ZEOR = 3 //看视频次数已经耗尽  
8 - ERROR_GETCONFIG_FAILED = 4 //获取配置失败  
9 - ERROR_GUANGOLD_NOTENOUGH = 5 //存钱罐金币不足  
10 - ERROR_DRAWGUAN_FAILED = 6 //从存钱罐提取金币不满足限制  
11 - ERROR_DRAWGOLD_FAILED = 7 //从存钱罐提取金币失败了  
12 - ERROR_GETCASH_FAILED = 8 //从后台提现失败了  
13 - ERROR_GETCASH_GOLDNOTENOUGH_FAILED = 9 //提现金币不足  
14 - ERROR_ADDWITHDRAW_LISTFAILED = 10 //添加提现记录失败  
15 - ERROR_WITHDRAWLVLIMIT = 11 //提现等级不够  
16 - ERROR_WITHDRAWONLYONE = 12 //新人专享只能提取一次  
17 - ERROR_PRENOTFINISH = 13 //前置档位未提现  
18 - ERROR_TASKCANNOTGET = 14 //当前任务未完成或已领取  
19 - ERROR_TASKID_WRONG = 15 //当前任务id错误  
20 - ERROR_TASKPRE_NOTGET = 16 //前置任务还未领取  
21 - ERROR_LVREWARDALREADYGET = 17 //当前等级奖励已经领取过了  
22 - ERROR_SINGALREADYTODAY = 18 //今日已经签过到啦  
23 - ERROR_SINGDATAFAILED = 19 //签到数据异常  
24 - ERROR_GUANCNTNOTENOUGH = 20 //存钱罐次数不足 4 + ERROR_OK = 0 //没有错误
  5 +
25 ) 6 )
src/HttpServer/logic/function.go
1 package logic 1 package logic
2 2
3 -import (  
4 - "HttpServer/jsonconf"  
5 - "HttpServer/redishandler"  
6 - "bytes"  
7 - "common/logger"  
8 - "common/redis"  
9 - "crypto/md5"  
10 - "encoding/hex"  
11 - "encoding/json"  
12 - "errors"  
13 - "io/ioutil"  
14 - "net/http"  
15 - "sort"  
16 - "strconv"  
17 - "time"  
18 -)  
19 -  
20 -func (v *TaskList) Len() int {  
21 - return len(v.Taskdata)  
22 -}  
23 -  
24 -func (v *TaskList) Swap(i, j int) {  
25 - v.Taskdata[i], v.Taskdata[j] = v.Taskdata[j], v.Taskdata[i]  
26 -}  
27 -  
28 -func (v *TaskList) Less(i, j int) bool {  
29 - return v.Taskdata[i].Taskstatus > v.Taskdata[j].Taskstatus  
30 -} 3 +import "net/http"
31 4
32 func SetHeader(w http.ResponseWriter) { 5 func SetHeader(w http.ResponseWriter) {
33 w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域 6 w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
34 w.Header().Set("Content-Type", "application/json") 7 w.Header().Set("Content-Type", "application/json")
35 w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") 8 w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid")
36 } 9 }
37 -  
38 -func SaveUserInfo(data *UserData) error {  
39 -  
40 - savestr, err := json.Marshal(data)  
41 - if err != nil {  
42 - return err  
43 - }  
44 -  
45 - err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY, strconv.Itoa(data.Userid), string(savestr))  
46 -  
47 - return err  
48 -}  
49 -  
50 -func GetUserInfo(uuid int) (*UserData, error) {  
51 -  
52 - data, err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY, strconv.Itoa(uuid))  
53 - if err != nil {  
54 - return nil, err  
55 - }  
56 - var tmp UserData  
57 - err = json.Unmarshal([]byte(data), &tmp)  
58 - if err != nil {  
59 - return nil, err  
60 - }  
61 -  
62 - return &tmp, nil  
63 -}  
64 -  
65 -func GetUserLvConfig(lv int) *jsonconf.LevelDesc {  
66 - for _, val := range jsonconf.GetJsonConf().LevelConfig {  
67 - if lv == val.Level {  
68 - return &val  
69 - }  
70 - }  
71 - return nil  
72 -}  
73 -  
74 -func GetTaskConfig(taskid int) *jsonconf.AchieveDesc {  
75 - for _, val := range jsonconf.GetJsonConf().TaskConfig {  
76 - if val.Id == taskid {  
77 - return &val  
78 - }  
79 - }  
80 - return nil  
81 -}  
82 -  
83 -func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc {  
84 - for _, val := range jsonconf.GetJsonConf().AchieventConfig {  
85 - if val.Id == taskid {  
86 - return &val  
87 - }  
88 - }  
89 - return nil  
90 -}  
91 -  
92 -func (uinfo *UserData) CalcTaskList(list *TaskList) {  
93 -  
94 - for k, val := range list.Taskdata {  
95 - //未完成的才做判断  
96 - if val.Taskstatus != 1 {  
97 - continue  
98 - }  
99 - cfg := GetTaskConfig(val.Taskid)  
100 - if cfg == nil {  
101 - logger.Error("CalcTaskList GetTaskConfig failed id=%v", val.Taskid)  
102 - continue  
103 - }  
104 -  
105 - if cfg.TaskType == DAILY_TASKTYPE_LOGIN {  
106 - nowloginday := time.Now().Day()  
107 - lasttime := time.Unix(int64(uinfo.LastLoginTime), 0)  
108 - lastloginday := lasttime.Day()  
109 -  
110 - if nowloginday == lastloginday && val.Taskstatus == 1 {  
111 - list.Taskdata[k].Taskprogress = 1  
112 - list.Taskdata[k].Taskstatus = 2  
113 - }  
114 - } else if cfg.TaskType == DAILY_TASKTYPE_GETGUANCNT {  
115 - list.Taskdata[k].Taskprogress = uinfo.GetFromGuanCnt  
116 - //当日提取存钱罐次数  
117 - if uinfo.GetFromGuanCnt >= cfg.Num {  
118 - list.Taskdata[k].Taskstatus = 2  
119 - }  
120 - } else if cfg.TaskType == DAILY_TASKTYPE_PASSLEVEL {  
121 - list.Taskdata[k].Taskprogress = uinfo.Task.PassLevel  
122 - if uinfo.Task.PassLevel >= cfg.Num {  
123 - list.Taskdata[k].Taskstatus = 2  
124 - }  
125 - } else if cfg.TaskType == DAILY_TASKTYPE_USEITEM {  
126 - list.Taskdata[k].Taskprogress = uinfo.Task.UseItemCnt  
127 - if uinfo.Task.UseItemCnt >= cfg.Num {  
128 - list.Taskdata[k].Taskstatus = 2  
129 - }  
130 - } else if cfg.TaskType == DAILY_TASKTYPE_GETREDBAG {  
131 - list.Taskdata[k].Taskprogress = uinfo.Task.GetRedbagCnt  
132 - if uinfo.Task.GetRedbagCnt >= cfg.Num {  
133 - list.Taskdata[k].Taskstatus = 2  
134 - }  
135 - } else if cfg.TaskType == DAILY_TASKTYPE_GETGUANGOLD {  
136 - list.Taskdata[k].Taskprogress = uinfo.Task.GetGuanGold  
137 - if uinfo.Task.GetGuanGold >= cfg.Num {  
138 - list.Taskdata[k].Taskstatus = 2  
139 - }  
140 - } else if cfg.TaskType == DAILY_TASKTYPE_ONLINEMIN {  
141 - list.Taskdata[k].Taskprogress = uinfo.Task.OnlineMin  
142 - if uinfo.Task.OnlineMin >= cfg.Num {  
143 - list.Taskdata[k].Taskstatus = 2  
144 - }  
145 - }  
146 -  
147 - }  
148 -  
149 - //需要保存到redis  
150 - SaveTaskInfo(uinfo.Userid, 1, list)  
151 -  
152 - //排序  
153 - sort.Sort(list)  
154 -}  
155 -  
156 -func (uinfo *UserData) CalcAchieveProgress(ttype int) int {  
157 - rtval := 0  
158 - switch ttype {  
159 - case ACHIEVETYPE_WATCHADDS:  
160 - rtval = uinfo.Achieve.WatchAdsCnt  
161 - case ACHIEVETYPE_USERLV:  
162 - rtval = uinfo.Lv  
163 - case ACHIEVETYPE_KILLSTAR:  
164 - rtval = uinfo.Achieve.KillStar  
165 - case ACHIEVETYPE_GETGUANCNT:  
166 - rtval = uinfo.Achieve.SumGetGuan  
167 - case ACHIEVETYPE_USEITEMCNT:  
168 - rtval = uinfo.Achieve.SumUseItemCnt  
169 - default:  
170 - logger.Error("CalcAchieveProgress type wrong ttype=%v", ttype)  
171 - }  
172 -  
173 - return rtval  
174 -}  
175 -  
176 -//成就返回的是新的成就列表  
177 -func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList {  
178 - newlist := new(TaskList)  
179 - curtype := -1 //记录当前类型  
180 -  
181 - //第一遍首先将所有进度设置为正确的状态  
182 - for k, val := range list.Taskdata {  
183 - cfg := GetAchieveConfig(val.Taskid)  
184 - if cfg == nil {  
185 - logger.Error("CalcAchieveList GetTaskConfig failed id=%v", val.Taskid)  
186 - continue  
187 - }  
188 -  
189 - list.Taskdata[k].Taskprogress = uinfo.CalcAchieveProgress(cfg.TaskType)  
190 - if val.Taskstatus == 1 {  
191 - switch cfg.TaskType {  
192 - case ACHIEVETYPE_WATCHADDS:  
193 - if uinfo.Achieve.WatchAdsCnt >= cfg.Num {  
194 - list.Taskdata[k].Taskstatus = 2  
195 - }  
196 - case ACHIEVETYPE_USERLV:  
197 - if uinfo.Lv >= cfg.Num {  
198 - list.Taskdata[k].Taskstatus = 2  
199 - }  
200 - case ACHIEVETYPE_KILLSTAR:  
201 - if uinfo.Achieve.KillStar >= cfg.Num {  
202 - list.Taskdata[k].Taskstatus = 2  
203 - }  
204 - case ACHIEVETYPE_GETGUANCNT:  
205 - if uinfo.Achieve.SumGetGuan >= cfg.Num {  
206 - list.Taskdata[k].Taskstatus = 2  
207 - }  
208 - case ACHIEVETYPE_USEITEMCNT:  
209 - if uinfo.Achieve.SumUseItemCnt >= cfg.Num {  
210 - list.Taskdata[k].Taskstatus = 2  
211 - }  
212 - default:  
213 - logger.Error("CalcAchieveProgress type wrong ttype=%v", cfg.TaskType)  
214 - }  
215 - }  
216 -  
217 - }  
218 -  
219 - for k, val := range list.Taskdata {  
220 -  
221 - cfg := GetAchieveConfig(val.Taskid)  
222 - if cfg == nil {  
223 - logger.Error("CalcAchieveList GetTaskConfig failed id=%v", val.Taskid)  
224 - continue  
225 - }  
226 -  
227 - if val.Taskstatus == 2 {  
228 - //未领取已完成 只需要加入第一种  
229 - if curtype == cfg.TaskType {  
230 - continue  
231 - } else {  
232 - //将类型加入返回列表  
233 - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])  
234 - curtype = cfg.TaskType  
235 - }  
236 - } else if val.Taskstatus == 1 {  
237 - //未完成 返回第一个  
238 - if curtype == cfg.TaskType {  
239 - continue  
240 - } else {  
241 - //将类型加入返回列表  
242 - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])  
243 - curtype = cfg.TaskType  
244 - }  
245 - } else {  
246 - //已领取 需要判断一下是否最后一项  
247 - if k != len(list.Taskdata)-1 {  
248 - //不是最后一条数据  
249 - nextcfg := GetAchieveConfig(list.Taskdata[k+1].Taskid)  
250 - if nextcfg != nil {  
251 - if nextcfg.TaskType != cfg.TaskType {  
252 - //下面一天不是此类型了  
253 - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])  
254 - curtype = cfg.TaskType  
255 - }  
256 - }  
257 -  
258 - } else {  
259 - //最后一条 加入  
260 - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k])  
261 - curtype = cfg.TaskType  
262 - }  
263 - }  
264 -  
265 - }  
266 -  
267 - //保存旧的列表  
268 - SaveTaskInfo(uinfo.Userid, 2, list)  
269 -  
270 - //将返回的列表排序  
271 - sort.Sort(newlist)  
272 - logger.Info("CalcAchieveList alist=%v", newlist)  
273 - return newlist  
274 -}  
275 -  
276 -func SaveTaskInfo(uuid, tasktype int, list *TaskList) error {  
277 - savestr, err := json.Marshal(list)  
278 - if err != nil {  
279 - logger.Error("SaveTaskInfo err =%v", err)  
280 - return err  
281 - }  
282 -  
283 - if tasktype == 1 {  
284 - err = redishandler.GetRedisClient().HSet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid), string(savestr))  
285 - } else if tasktype == 2 {  
286 - err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid), string(savestr))  
287 - //logger.Info("SaveTaskInfo savestr=%v", string(savestr))  
288 - } else {  
289 - logger.Error("tasktype invalid")  
290 - return errors.New("tasktype invalid")  
291 - }  
292 - return err  
293 -}  
294 -  
295 -func GetTaskInfo(uuid, tasktype int) (*TaskList, error) {  
296 - var data string  
297 - var err error  
298 - if tasktype == 1 {  
299 - data, err = redishandler.GetRedisClient().HGet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid))  
300 - } else if tasktype == 2 {  
301 - data, err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid))  
302 - } else {  
303 - logger.Error("tasktype invalid")  
304 - return nil, errors.New("tasktype invalid")  
305 - }  
306 -  
307 - if err != nil {  
308 - return nil, err  
309 - }  
310 -  
311 - var list TaskList  
312 - err = json.Unmarshal([]byte(data), &list)  
313 - if err != nil {  
314 - logger.Error("GetTaskInfo err=%v", err)  
315 - return nil, err  
316 - }  
317 -  
318 - return &list, err  
319 -}  
320 -  
321 -//处理领取任务  
322 -func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *GettaskrewardResp, list *TaskList) error {  
323 - isfind := false  
324 - index := -1  
325 - var taskdesc *TaskListDesc  
326 - for k, val := range list.Taskdata {  
327 - if val.Taskid == req.Taskid {  
328 - isfind = true  
329 - index = k  
330 - taskdesc = &val  
331 - break  
332 - }  
333 - }  
334 -  
335 - logger.Info("HandleGetTaskReward index=%v taskdesc=%v", index, taskdesc)  
336 - if isfind && taskdesc != nil && index != -1 {  
337 - if taskdesc.Taskstatus != 2 {  
338 - //状态不是可领取状态 无法领取  
339 - resp.Code = ERROR_TASKCANNOTGET  
340 - resp.Message = "当前任务未完成或已领取"  
341 - return errors.New("当前任务未完成或已领取")  
342 - }  
343 -  
344 - //状态对的情况 如果是成就下需要判断前置条件是否被  
345 - if req.Tasktype == 2 && index > 0 {  
346 - precfg := GetAchieveConfig(list.Taskdata[index-1].Taskid)  
347 - nowcfg := GetAchieveConfig(taskdesc.Taskid)  
348 - logger.Info("HandleGetTaskRewardGetTaskConfig precfg=%v nowcfg=%v", precfg, nowcfg)  
349 - if precfg != nil && nowcfg != nil && precfg.TaskType == nowcfg.TaskType && list.Taskdata[index-1].Taskstatus != 0 {  
350 - resp.Code = ERROR_TASKPRE_NOTGET  
351 - resp.Message = "前置任务还未领取"  
352 - return errors.New("当前任务未完成或已领取")  
353 - }  
354 - }  
355 - } else {  
356 - resp.Code = ERROR_TASKID_WRONG  
357 - resp.Message = "当前任务id错误"  
358 - return errors.New("当前任务id错误")  
359 - }  
360 -  
361 - var cfg *jsonconf.AchieveDesc  
362 - if req.Tasktype == 2 {  
363 - cfg = GetAchieveConfig(taskdesc.Taskid)  
364 - if cfg == nil || len(cfg.Reward) < 2 {  
365 - resp.Code = ERROR_SRV_ERROR  
366 - resp.Message = "网络错误"  
367 - return errors.New("获取配置失败")  
368 - }  
369 - } else {  
370 - cfg = GetTaskConfig(taskdesc.Taskid)  
371 - if cfg == nil || len(cfg.Reward) < 2 {  
372 - resp.Code = ERROR_SRV_ERROR  
373 - resp.Message = "网络错误"  
374 - return errors.New("获取配置失败")  
375 - }  
376 - }  
377 -  
378 - //将状态置位已领取  
379 - list.Taskdata[index].Taskstatus = 0  
380 - //发奖励  
381 - sub := len(cfg.Reward) / 2  
382 - for i := 0; i < sub; i++ {  
383 - rtype := cfg.Reward[i*2]  
384 - rnum := cfg.Reward[i*2+1]  
385 - r1, r2, r3, r4, r5, r6, r7 := uinfo.RewardUser(rtype, rnum, req.Gameid, req.Channel)  
386 - if resp.Data.Lv != r1 {  
387 - resp.Data.Lv = r1  
388 - resp.Data.Costtime = uinfo.UpLvCostTime / 3600  
389 - }  
390 - resp.Data.Rewardstar += r2  
391 - resp.Data.Chuiitem += r3  
392 - resp.Data.Shuaitem += r4  
393 - resp.Data.Swapitem += r5  
394 - resp.Data.Eliminitem += r6  
395 - resp.Data.Goldnum = r7  
396 - }  
397 -  
398 - return nil  
399 -}  
400 -  
401 -func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel string) (int, int, int, int, int, int, int) {  
402 - logger.Info("RewardUser rtype=%v,num=%v", rtype, num)  
403 - switch rtype {  
404 - case REWARDTYPE_STAR:  
405 - return 0, num, 0, 0, 0, 0, 0  
406 - case REWARDTYPE_CHUI:  
407 - return 0, 0, num, 0, 0, 0, 0  
408 - case REWARDTYPE_SHUA:  
409 - return 0, 0, 0, num, 0, 0, 0  
410 - case REWARDTYPE_SWAP:  
411 - return 0, 0, 0, 0, num, 0, 0  
412 - case REWARDTYPE_ELIMITE:  
413 - return 0, 0, 0, 0, 0, num, 0  
414 - case REWARDTYPE_EXP:  
415 - isup := uinfo.AddUserExp(num)  
416 - if isup {  
417 - return uinfo.Lv, 0, 0, 0, 0, 0, 0  
418 - } else {  
419 - return 0, 0, 0, 0, 0, 0, 0  
420 - }  
421 - case REWARDTYPE_GOLD:  
422 - goldnum, err := AddCoinToSdk(uinfo.Userid, num, gameid, channel, 100)  
423 - if err != nil {  
424 - logger.Error("RewardUser failer err=%v", err)  
425 - }  
426 - uinfo.RealGold = goldnum  
427 - //uinfo.RealGold += num  
428 - return 0, 0, 0, 0, 0, 0, uinfo.RealGold  
429 - default:  
430 - return 0, 0, 0, 0, 0, 0, 0  
431 - }  
432 - return 0, 0, 0, 0, 0, 0, 0  
433 -}  
434 -  
435 -func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error {  
436 -  
437 - var initdata UserData  
438 - initdata.Lv = 1  
439 - initdata.LvRewardGet = 1  
440 - initdata.Exp = 0  
441 - initdata.Userid = uuid  
442 - initdata.ContinueLoginDay = 1  
443 - initdata.GetFromGuanCnt = 0  
444 - initdata.GuanGold = 0  
445 - initdata.LastLoginTime = int(time.Now().Unix())  
446 - goldnum, _ := GetCoinFromSdk(uuid, data.Gameid, data.Channel)  
447 - initdata.RealGold = goldnum  
448 - initdata.WatchAddsTime = WATCH_ADD_DAY_LIMIT  
449 - initdata.LeftFreeRB = FREE_REDBAG_NUM  
450 - initdata.UpLvCostTime = 0  
451 - initdata.UpLvCostTimeSec = int(time.Now().Unix())  
452 -  
453 - for _, val := range jsonconf.GetJsonConf().WithDrawConfig {  
454 - var tmp WithDrawDesc  
455 - tmp.Cid = val.Id  
456 - tmp.Cnum = val.Money  
457 - if val.Isnew == 1 {  
458 - tmp.Isnew = 1  
459 - } else {  
460 - tmp.Isnew = 2  
461 - }  
462 - tmp.Limitlv = val.Level  
463 - if val.Id == 1 {  
464 - tmp.Preisfind = 1  
465 - } else {  
466 - tmp.Preisfind = 0  
467 - }  
468 - initdata.WithDraw.Cashdata = append(initdata.WithDraw.Cashdata, tmp)  
469 - }  
470 -  
471 - resp.Data.Guangold = initdata.GuanGold  
472 - resp.Data.Leftredbagcnt = initdata.WatchAddsTime  
473 - resp.Data.Walletgold = initdata.RealGold  
474 - resp.Data.Userlv = initdata.Lv  
475 -  
476 - err := SaveUserInfo(&initdata)  
477 - if err != nil {  
478 - logger.Error("InitUserInfo err=%v", err)  
479 - return err  
480 - }  
481 -  
482 - //初始化一下玩家的任务与成就数据数据  
483 - err = InitTaskAndAchievement(uuid)  
484 -  
485 - return err  
486 -}  
487 -  
488 -func (t *TaskList) IsInTaskList(id int) bool {  
489 - for _, val := range t.Taskdata {  
490 - if val.Taskid == id {  
491 - return true  
492 - }  
493 - }  
494 - return false  
495 -}  
496 -  
497 -func InitTaskAndAchievement(uuid int) error {  
498 - //先初始化任务  
499 - tlist, err := GetTaskInfo(uuid, 1)  
500 - if tlist == nil {  
501 - tasklist := new(TaskList)  
502 - for _, val := range jsonconf.GetJsonConf().TaskConfig {  
503 - var tmp TaskListDesc  
504 - tmp.Taskstatus = 1  
505 - tmp.Taskid = val.Id  
506 - tmp.Taskprogress = 0  
507 - tasklist.Taskdata = append(tasklist.Taskdata, tmp)  
508 - }  
509 -  
510 - err := SaveTaskInfo(uuid, 1, tasklist)  
511 - if err != nil {  
512 - logger.Error("InitTaskAndAchievement err=%v", err)  
513 - //return err  
514 - }  
515 - } else {  
516 - for _, val := range jsonconf.GetJsonConf().TaskConfig {  
517 - if !tlist.IsInTaskList(val.Id) {  
518 - var tmp TaskListDesc  
519 - tmp.Taskstatus = 1  
520 - tmp.Taskid = val.Id  
521 - tmp.Taskprogress = 0  
522 - tlist.Taskdata = append(tlist.Taskdata, tmp)  
523 - }  
524 - }  
525 -  
526 - for k, _ := range tlist.Taskdata {  
527 - tlist.Taskdata[k].Taskprogress = 0  
528 - tlist.Taskdata[k].Taskstatus = 1  
529 -  
530 - }  
531 -  
532 - err := SaveTaskInfo(uuid, 1, tlist)  
533 - if err != nil {  
534 - logger.Error("InitTaskAndAchievement err=%v", err)  
535 - //return err  
536 - }  
537 - }  
538 -  
539 - //成就  
540 - alist, err := GetTaskInfo(uuid, 2)  
541 - if alist == nil {  
542 - achievelist := new(TaskList)  
543 - for _, val := range jsonconf.GetJsonConf().AchieventConfig {  
544 - var tmp TaskListDesc  
545 - tmp.Taskstatus = 1  
546 - tmp.Taskid = val.Id  
547 - tmp.Taskprogress = 0  
548 - achievelist.Taskdata = append(achievelist.Taskdata, tmp)  
549 - }  
550 -  
551 - err = SaveTaskInfo(uuid, 2, achievelist)  
552 - if err != nil {  
553 - logger.Error("InitTaskAndAchievement err=%v", err)  
554 - return err  
555 - }  
556 - } else {  
557 - for _, val := range jsonconf.GetJsonConf().AchieventConfig {  
558 - if !alist.IsInTaskList(val.Id) {  
559 - var tmp TaskListDesc  
560 - tmp.Taskstatus = 1  
561 - tmp.Taskid = val.Id  
562 - tmp.Taskprogress = 0  
563 - alist.Taskdata = append(alist.Taskdata, tmp)  
564 - }  
565 - }  
566 -  
567 - err = SaveTaskInfo(uuid, 2, alist)  
568 - if err != nil {  
569 - logger.Error("InitTaskAndAchievement err=%v", err)  
570 - return err  
571 - }  
572 - }  
573 -  
574 - return nil  
575 -}  
576 -  
577 -//计算当日可提取次数  
578 -func (u *UserData) CalcTotalCnt() int {  
579 - maxtime := 0  
580 - usertime := 0  
581 - for _, val := range jsonconf.GetJsonConf().MoneyBoxTimeConfig {  
582 - if maxtime < val.Times {  
583 - maxtime = val.Times  
584 - }  
585 - if val.Login == u.ContinueLoginDay {  
586 - usertime = val.Times  
587 - }  
588 - }  
589 -  
590 - if usertime == 0 {  
591 - usertime = maxtime  
592 - }  
593 - return usertime  
594 -}  
595 -  
596 -func (u *UserData) HandlePassDay() {  
597 - isdiffday := false  
598 - nowtime := time.Now()  
599 - lasttime := time.Unix(int64(u.LastLoginTime), 0)  
600 - nowdaynum := time.Now().Day()  
601 - lastdaynum := time.Unix(int64(u.LastLoginTime), 0).Day()  
602 - nowtimestamp := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location())  
603 - lasttimestamp := time.Date(lasttime.Year(), lasttime.Month(), lasttime.Day(), 0, 0, 0, 0, lasttime.Location())  
604 -  
605 - logger.Info("HandlePassDay lasttime=%v,lasttimestamp=%v", lasttime, lasttimestamp)  
606 - if nowdaynum == lastdaynum {  
607 - //同一天  
608 - if int64(u.LastLoginTime)-time.Now().Unix() > 86400 {  
609 - //已经过了很多天了  
610 - //u.LastLoginTime = int(time.Now().Unix())  
611 - u.ContinueLoginDay = 1  
612 - isdiffday = true  
613 - } else {  
614 - //t同一天 不做处理  
615 - }  
616 - } else {  
617 - //不是同一天了  
618 - isdiffday = true  
619 - if nowtimestamp.Unix() != lasttimestamp.Unix()+86400 {  
620 - //超过一天了  
621 - u.ContinueLoginDay = 1  
622 - } else {  
623 - u.ContinueLoginDay++  
624 - }  
625 - logger.Info("HandlePassDay now=%v,last=%v", nowtimestamp.Unix(), lasttimestamp.Unix())  
626 - }  
627 -  
628 - if isdiffday {  
629 - //跨天了  
630 - u.WatchAddsTime = WATCH_ADD_DAY_LIMIT  
631 - //todo 重置任务相关的数据  
632 - u.GetFromGuanCnt = 0  
633 -  
634 - u.Task.GetGuanGold = 0  
635 - u.Task.GetRedbagCnt = 0  
636 - u.Task.OnlineMin = 0  
637 - u.Task.PassLevel = 0  
638 - u.Task.UseItemCnt = 0  
639 -  
640 - //任务也需要处理  
641 - /*tasklist, err := GetTaskInfo(u.Userid, 1)  
642 - if err == nil {  
643 - for k, _ := range tasklist.Taskdata {  
644 - tasklist.Taskdata[k].Taskstatus = 1  
645 - tasklist.Taskdata[k].Taskprogress = 0  
646 - }  
647 - } else {  
648 - logger.Error("HandlePassDay GetTaskInfo failer err=%v", err)  
649 - }*/  
650 - /*tasklist := new(TaskList)  
651 - for _, val := range jsonconf.GetJsonConf().TaskConfig {  
652 - var tmp TaskListDesc  
653 - tmp.Taskstatus = 1  
654 - tmp.Taskid = val.Id  
655 - tmp.Taskprogress = 0  
656 - tasklist.Taskdata = append(tasklist.Taskdata, tmp)  
657 - }  
658 -  
659 - err := SaveTaskInfo(u.Userid, 1, tasklist)  
660 - if err != nil {  
661 - logger.Error("InitTaskAndAchievement err=%v", err)  
662 - }*/  
663 - err := InitTaskAndAchievement(u.Userid)  
664 - if err != nil {  
665 - logger.Error("InitTaskAndAchievement err=%v", err)  
666 - }  
667 -  
668 - //签到数据处理  
669 - u.IsSignToday = 0  
670 - if u.SignSum >= 7 {  
671 - //进入新的一轮  
672 - u.SignSum = 0  
673 - u.SignRound++  
674 - }  
675 - }  
676 -  
677 - u.LastLoginTime = int(nowtime.Unix())  
678 -  
679 - SaveUserInfo(u)  
680 -}  
681 -  
682 -func GetUserData(uuid int, req *UserLoginReq, resp *UserLoginResp) error {  
683 - data, err := GetUserInfo(uuid)  
684 - if err != nil || data == nil {  
685 - resp.Code = ERROR_SRV_ERROR  
686 - resp.Message = "ERROR_SRV_ERROR"  
687 - return err  
688 - }  
689 -  
690 - //此处要处理一下跨天逻辑  
691 - data.HandlePassDay()  
692 -  
693 - //此处处理一下从sdk拉取钱包金币数量  
694 - gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel)  
695 - if err == nil {  
696 - data.RealGold = gold  
697 - } else {  
698 - logger.Error("GetCoinFromSdk err=%v", err)  
699 - }  
700 -  
701 - //处理一下领取等级奖励金币  
702 - if data.LvRewardGet == 1 {  
703 - cfg := GetUserLvConfig(data.Lv)  
704 - if cfg != nil {  
705 - gold, err := AddCoinToSdk(uuid, cfg.Cash, req.Gameid, req.Channel, 100)  
706 - if err != nil {  
707 - data.RealGold = gold  
708 - } else {  
709 - logger.Error("GetCoinFromSdk err=%v", err)  
710 - }  
711 - }  
712 - data.LvRewardGet = 2  
713 -  
714 - }  
715 -  
716 - SaveUserInfo(data)  
717 -  
718 - resp.Data.Walletgold = data.RealGold  
719 - resp.Data.Leftredbagcnt = data.WatchAddsTime  
720 - resp.Data.Guangold = data.GuanGold  
721 - resp.Data.Userlv = data.Lv  
722 - resp.Data.Userexp = data.Exp  
723 -  
724 - return nil  
725 -}  
726 -  
727 -//获取提现记录  
728 -func GetWithDrawList(uuid int) (*WithDrawList, error) {  
729 - var list *WithDrawList  
730 - list = new(WithDrawList)  
731 - liststr, err := redishandler.GetRedisClient().HGet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid))  
732 - if err != nil {  
733 - return nil, err  
734 - }  
735 - err = json.Unmarshal([]byte(liststr), list)  
736 - if err != nil {  
737 - return nil, err  
738 - }  
739 - return list, nil  
740 -}  
741 -  
742 -func (uinfo *UserData) GetWithDrawData(money float32) (int, *WithDrawDesc) {  
743 - //处理提现状态  
744 - for k, val := range uinfo.WithDraw.Cashdata {  
745 - if val.Cnum == money {  
746 - return k, &val  
747 - }  
748 - }  
749 - return -1, nil  
750 -}  
751 -  
752 -//添加提现记录  
753 -func AddWithDrawList(uuid int, data *WithDrawRecord) error {  
754 - exist, err := redishandler.GetRedisClient().HExists(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid))  
755 - if err != nil {  
756 - return err  
757 - }  
758 - if !exist {  
759 - //添加新的记录  
760 - var tmp WithDrawList  
761 - tmp.Withdata = append(tmp.Withdata, *data)  
762 -  
763 - savestr, err := json.Marshal(&tmp)  
764 - if err != nil {  
765 - return err  
766 - }  
767 - err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid), string(savestr))  
768 - return err  
769 - }  
770 -  
771 - /*liststr,err := redishandler.GetRedisClient().HGet(redis.USER_WITHDRAW_RECORDLIST,strconv.Itoa(uuid))  
772 - if err != nil {  
773 - return err  
774 - }  
775 -  
776 - var list WithDrawList  
777 - err = json.Unmarshal([]byte(liststr),&list)  
778 - if err != nil {  
779 - return err  
780 - }*/  
781 -  
782 - list, err := GetWithDrawList(uuid)  
783 - if err != nil || list == nil {  
784 - logger.Error("AddWithDrawList err=%v", err)  
785 - return err  
786 - }  
787 - list.Withdata = append(list.Withdata, *data)  
788 - savestr, err := json.Marshal(list)  
789 - if err != nil {  
790 - return err  
791 - }  
792 - err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid), string(savestr))  
793 - return err  
794 -  
795 -}  
796 -  
797 -//返回是否升级  
798 -func (uinfo *UserData) AddUserExp(num int) bool {  
799 - totalexp := num  
800 - isup := false  
801 - for {  
802 - lvcfg := GetUserLvConfig(uinfo.Lv)  
803 - if lvcfg == nil {  
804 - logger.Error("AddUserExp fail lv=%v", uinfo.Lv)  
805 - break  
806 - }  
807 - //判断下是否满级了  
808 - nexcfg := GetUserLvConfig(uinfo.Lv + 1)  
809 - if nexcfg == nil {  
810 - //已经满级了  
811 - uinfo.Exp += totalexp  
812 - break  
813 - }  
814 -  
815 - //计算一下当前升级需要剩下的  
816 -  
817 - needexp := lvcfg.Exp - uinfo.Exp  
818 - if totalexp < needexp {  
819 - //不够升级的  
820 - uinfo.Exp += totalexp  
821 - break  
822 - } else {  
823 - //够升级的 升一级  
824 - uinfo.Lv++  
825 - uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取  
826 - isup = true  
827 - totalexp -= needexp  
828 - uinfo.Exp = 0  
829 - continue  
830 - }  
831 - }  
832 -  
833 - if isup {  
834 - uinfo.UpLvCostTime = int(time.Now().Unix()) - uinfo.UpLvCostTimeSec  
835 - if uinfo.UpLvCostTime < 0 {  
836 - uinfo.UpLvCostTime = 0  
837 - }  
838 - uinfo.UpLvCostTimeSec = int(time.Now().Unix())  
839 - }  
840 -  
841 - return isup  
842 -}  
843 -  
844 -func GettotalParam(paramlist []string) string {  
845 - //排序  
846 - sort.Strings(paramlist)  
847 -  
848 - //拼接  
849 - sumparam := ""  
850 - for _, val := range paramlist {  
851 - sumparam += val  
852 - }  
853 -  
854 - return sumparam  
855 -}  
856 -  
857 -func GetHashValue(signsum string) string {  
858 - /*h := sha1.New()  
859 - h.Write([]byte(signsum))  
860 - bs := h.Sum(nil)  
861 - sign := hex.EncodeToString(bs)*/  
862 - ctx := md5.New()  
863 - ctx.Write([]byte(signsum))  
864 - return hex.EncodeToString(ctx.Sum(nil))  
865 -}  
866 -  
867 -func DoHttpPost(bys []byte, apistr string) (string, error) {  
868 - body := bytes.NewBuffer(bys)  
869 - url1 := XIAOXINGXING_SDKURLOFFICAL + apistr //"api/server/addcoin"  
870 -  
871 - res, err := http.Post(url1, "application/json;charset=utf-8", body)  
872 - if err != nil {  
873 - logger.Error("DoHttpPost failed err=%v", err)  
874 - return "", err  
875 - }  
876 - result, _ := ioutil.ReadAll(res.Body)  
877 - defer res.Body.Close()  
878 -  
879 - return string(result), nil  
880 -}  
881 -  
882 -func GetCoinFromSdk(uuid int, gameid string, channel string) (int, error) {  
883 - var paramlist []string  
884 - var params GetCoinDesc  
885 - params.Sign_type = "md5"  
886 - params.Gameid = gameid  
887 - params.Channel = channel  
888 - params.Uid = uuid  
889 - params.Time_stamp = strconv.Itoa(int(time.Now().Unix()))  
890 - signtypestr := "sign_type=" + params.Sign_type  
891 - timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix()))  
892 - paramgameid := "gameid=" + gameid  
893 - pchannel := "channel=" + channel  
894 - puid := "uid=" + strconv.Itoa(uuid)  
895 - paramlist = append(paramlist, signtypestr)  
896 - paramlist = append(paramlist, timestampstr)  
897 - paramlist = append(paramlist, paramgameid)  
898 - paramlist = append(paramlist, pchannel)  
899 - paramlist = append(paramlist, puid)  
900 -  
901 - sumparam := GettotalParam(paramlist)  
902 - //加serverkey  
903 - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST  
904 -  
905 - //进行hash  
906 - sign := GetHashValue(signsum)  
907 - params.Sign = sign  
908 - logger.Info("GetCoinFromSdk sumparam is:%v,sign is:", signsum, sign)  
909 -  
910 - bys, err := json.Marshal(&params)  
911 - if err != nil {  
912 - logger.Error("GetCoinFromSdk failed=%v", err)  
913 - return 0, err  
914 - }  
915 - res, err := DoHttpPost(bys, "api/server/getcoin")  
916 - if err != nil {  
917 - logger.Error("GetCoinFromSdk failed=%v", err)  
918 - return 0, err  
919 - }  
920 -  
921 - logger.Info("GetCoinFromSdk res=%v", res)  
922 -  
923 - var resp AddCoinResp  
924 - err = json.Unmarshal([]byte(res), &resp)  
925 - if err != nil {  
926 - logger.Error("GetCoinFromSdk failed=%v", err)  
927 - return 0, err  
928 - }  
929 -  
930 - if resp.Code != "0" {  
931 - logger.Error("GetCoinFromSdk failed=%v", resp.Msg)  
932 - return 0, err  
933 - }  
934 -  
935 - return resp.Data.Mycoin, nil  
936 -}  
937 -  
938 -func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype int) (int, error) {  
939 - var paramlist []string  
940 - sign_type := "sign_type=md5"  
941 - paramlist = append(paramlist, sign_type)  
942 - time_stamp := "time_stamp=" + strconv.Itoa(int(time.Now().Unix()))  
943 - paramlist = append(paramlist, time_stamp)  
944 - paramgameid := "gameid=" + gameid  
945 - paramlist = append(paramlist, paramgameid)  
946 - pchannel := "channel=" + channel  
947 - paramlist = append(paramlist, pchannel)  
948 - puid := "uid=" + strconv.Itoa(uuid)  
949 - paramlist = append(paramlist, puid)  
950 - pcoin := "coin=" + strconv.Itoa(goldnum)  
951 - paramlist = append(paramlist, pcoin)  
952 - ptyp := "typ=" + strconv.Itoa(atype)  
953 - paramlist = append(paramlist, ptyp)  
954 -  
955 - sumparam := GettotalParam(paramlist)  
956 - //加serverkey  
957 - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST  
958 - logger.Info("AddCoinToSdk sumparam=%v", signsum)  
959 -  
960 - //进行hash  
961 - sign := GetHashValue(signsum)  
962 -  
963 - var req AddCoinDesc  
964 - req.Channel = channel  
965 - req.Gameid = gameid  
966 - req.Coin = goldnum  
967 - req.Sign = sign  
968 - req.Sign_type = "md5"  
969 - req.Time_stamp = strconv.Itoa(int(time.Now().Unix()))  
970 - req.Typ = atype  
971 - req.Uid = uuid  
972 -  
973 - bys, err := json.Marshal(&req)  
974 - if err != nil {  
975 - logger.Error("AddCoinToSdk failed=%v", err)  
976 - return 0, err  
977 - }  
978 - res, err := DoHttpPost(bys, "api/server/addcoin")  
979 - if err != nil {  
980 - logger.Error("AddCoinToSdk failed=%v", err)  
981 - return 0, err  
982 - }  
983 -  
984 - logger.Info("AddCoinToSdk res=%v", res)  
985 - var resp AddCoinResp  
986 - err = json.Unmarshal([]byte(res), &resp)  
987 - if err != nil {  
988 - logger.Error("AddCoinToSdk failed=%v", err)  
989 - return 0, err  
990 - }  
991 -  
992 - if resp.Code != "0" {  
993 - logger.Error("AddCoinToSdk failed=%v", resp.Msg)  
994 - return 0, err  
995 - }  
996 - return resp.Data.Mycoin, nil  
997 -}  
998 -  
999 -func GetCashFromSDK(uuid int, goldnum int, gameid, channel, openid, nickname, headurl, ver string) (int, error) {  
1000 - if goldnum == 0 || uuid == 0 || gameid == "" || channel == "" || openid == "" || nickname == "" || headurl == "" || ver == "" {  
1001 - logger.Error("GetCashFromSDK param empty")  
1002 - return 0, errors.New("param empty")  
1003 - }  
1004 - var paramlist []string  
1005 - var params TixianDesc  
1006 - params.Sign_type = "md5"  
1007 - params.Gameid = gameid  
1008 - params.Channel = channel  
1009 - params.Uid = uuid  
1010 - params.Time_stamp = strconv.Itoa(int(time.Now().Unix()))  
1011 - params.Headurl = headurl  
1012 - params.Money = goldnum  
1013 - params.Openid = openid  
1014 - params.Nickname = nickname  
1015 - params.Typ = 6  
1016 - params.Ver = ver  
1017 - params.Editcoin = 1  
1018 - signtypestr := "sign_type=" + params.Sign_type  
1019 - timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix()))  
1020 - paramgameid := "gameid=" + gameid  
1021 - pchannel := "channel=" + channel  
1022 - puid := "uid=" + strconv.Itoa(uuid)  
1023 - phead := "headurl=" + headurl  
1024 - pnickname := "nickname=" + nickname  
1025 - popenid := "openid=" + openid  
1026 - pmoney := "money=" + strconv.Itoa(goldnum)  
1027 - ptype := "typ=" + "6" //微信  
1028 - ped := "editcoin=1"  
1029 - //pver := "ver=" + params.Ver  
1030 - paramlist = append(paramlist, signtypestr)  
1031 - paramlist = append(paramlist, timestampstr)  
1032 - paramlist = append(paramlist, paramgameid)  
1033 - paramlist = append(paramlist, pchannel)  
1034 - paramlist = append(paramlist, puid)  
1035 - paramlist = append(paramlist, phead)  
1036 - paramlist = append(paramlist, pnickname)  
1037 - paramlist = append(paramlist, popenid)  
1038 - paramlist = append(paramlist, pmoney)  
1039 - paramlist = append(paramlist, ptype)  
1040 - paramlist = append(paramlist, ped)  
1041 - //paramlist = append(paramlist, pver)  
1042 -  
1043 - sumparam := GettotalParam(paramlist)  
1044 - //加serverkey  
1045 - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST  
1046 -  
1047 - //进行hash  
1048 - sign := GetHashValue(signsum)  
1049 - params.Sign = sign  
1050 -  
1051 - bys, err := json.Marshal(&params)  
1052 - if err != nil {  
1053 - logger.Error("GetCashFromSDK failed=%v", err)  
1054 - return 0, err  
1055 - }  
1056 - res, err := DoHttpPost(bys, "api/server/tixian")  
1057 - logger.Info("GetCashFromSDK sumparam is:%v,sign is:%v", signsum, sign)  
1058 - logger.Info("GetCashFromSDK sumparam param=%v", string(bys))  
1059 - if err != nil {  
1060 - logger.Error("GetCashFromSDK failed=%v", err)  
1061 - return 0, err  
1062 - }  
1063 -  
1064 - logger.Info("GetCashFromSDK res=%v", res)  
1065 -  
1066 - var resp GetCashResp  
1067 - err = json.Unmarshal([]byte(res), &resp)  
1068 - if err != nil {  
1069 - logger.Error("GetCashFromSDK failed=%v", err)  
1070 - return 0, err  
1071 - }  
1072 -  
1073 - if resp.Code != "0" {  
1074 - logger.Error("GetCashFromSDK failed=%v", resp.Msg)  
1075 - return 0, errors.New(resp.Msg)  
1076 - }  
1077 -  
1078 - //拉取一下新的金币值  
1079 - newnum, err := GetCoinFromSdk(uuid, gameid, channel)  
1080 - if err != nil {  
1081 - logger.Error("GetCashFromSDK failed=%v", err)  
1082 - return 0, err  
1083 - }  
1084 - return newnum, nil  
1085 -}  
1086 -  
1087 -func GetCashList(uuid int, gameid string, channel string, start int, number int) (*[]WithDrawRecord, error) {  
1088 - var paramlist []string  
1089 - var params GetCashListDesc  
1090 - params.Sign_type = "md5"  
1091 - params.Gameid = gameid  
1092 - params.Channel = channel  
1093 - params.Uid = uuid  
1094 - params.Time_stamp = strconv.Itoa(int(time.Now().Unix()))  
1095 - params.Start = start  
1096 - params.Number = number  
1097 - signtypestr := "sign_type=" + params.Sign_type  
1098 - timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix()))  
1099 - paramgameid := "gameid=" + gameid  
1100 - pchannel := "channel=" + channel  
1101 - puid := "uid=" + strconv.Itoa(uuid)  
1102 - pstart := "start=" + strconv.Itoa(start)  
1103 - pnumber := "number=" + strconv.Itoa(number)  
1104 - paramlist = append(paramlist, signtypestr)  
1105 - paramlist = append(paramlist, timestampstr)  
1106 - paramlist = append(paramlist, paramgameid)  
1107 - paramlist = append(paramlist, pchannel)  
1108 - paramlist = append(paramlist, puid)  
1109 - if start != 0 {  
1110 - paramlist = append(paramlist, pstart)  
1111 - }  
1112 -  
1113 - paramlist = append(paramlist, pnumber)  
1114 -  
1115 - sumparam := GettotalParam(paramlist)  
1116 - //加serverkey  
1117 - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST  
1118 - logger.Info("GetCashList sumparam=%v", signsum)  
1119 -  
1120 - //进行hash  
1121 - sign := GetHashValue(signsum)  
1122 - params.Sign = sign  
1123 -  
1124 - bys, err := json.Marshal(&params)  
1125 - if err != nil {  
1126 - logger.Error("GetCashList failed=%v", err)  
1127 - return nil, err  
1128 - }  
1129 - res, err := DoHttpPost(bys, "api/server/tixian/lst")  
1130 - if err != nil {  
1131 - logger.Error("GetCashList failed=%v", err)  
1132 - return nil, err  
1133 - }  
1134 -  
1135 - logger.Info("GetCashList res=%v", res)  
1136 -  
1137 - var resp GetCashListResp  
1138 - err = json.Unmarshal([]byte(res), &resp)  
1139 - if err != nil {  
1140 - logger.Error("GetCoinFromSdk failed=%v", err)  
1141 - return nil, err  
1142 - }  
1143 -  
1144 - if resp.Code != "0" {  
1145 - logger.Error("GetCoinFromSdk failed=%v", resp.Msg)  
1146 - return nil, err  
1147 - }  
1148 - return &resp.Data, nil  
1149 -}  
src/HttpServer/logic/httpserver.go
@@ -5,7 +5,6 @@ import ( @@ -5,7 +5,6 @@ import (
5 "HttpServer/redishandler" 5 "HttpServer/redishandler"
6 "common/logger" 6 "common/logger"
7 "common/redis" 7 "common/redis"
8 - "encoding/json"  
9 "fmt" 8 "fmt"
10 "io/ioutil" 9 "io/ioutil"
11 "strconv" 10 "strconv"
@@ -44,22 +43,6 @@ func startServerHttpServe() { @@ -44,22 +43,6 @@ func startServerHttpServe() {
44 http.HandleFunc("/eliminatestar/test", Testapi) //测试接口 43 http.HandleFunc("/eliminatestar/test", Testapi) //测试接口
45 http.HandleFunc("/eliminatestar/clear", ClearData) //清除账号 44 http.HandleFunc("/eliminatestar/clear", ClearData) //清除账号
46 //---------------------------------------------------------------------------------------- 45 //----------------------------------------------------------------------------------------
47 - http.HandleFunc("/eliminatestar/login", UserLogin) //登录  
48 - http.HandleFunc("/eliminatestar/getuserdata", Getuserdata) //获取玩家数据  
49 - http.HandleFunc("/eliminatestar/watchads", Watchads) //观看激励视频  
50 - http.HandleFunc("/eliminatestar/queryguaninfo", Queryguaninfo) //获取存钱罐数据  
51 - http.HandleFunc("/eliminatestar/getguangold", Getguangold) //获取金币到存钱罐  
52 - http.HandleFunc("/eliminatestar/drawguangold", Drawguangold) //提取存钱罐的金币到个人钱包  
53 - http.HandleFunc("/eliminatestar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口  
54 - http.HandleFunc("/eliminatestar/getcash", Getcash) //提现  
55 - http.HandleFunc("/eliminatestar/getcashrecord", Getcashrecord) //提现记录列表  
56 - http.HandleFunc("/eliminatestar/onlinentf", Onlinentf) //在线通知  
57 - http.HandleFunc("/eliminatestar/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度  
58 - http.HandleFunc("/eliminatestar/querytaskinfo", Querytaskinfo) //拉取任务或者成就列表  
59 - http.HandleFunc("/eliminatestar/gettaskreward", Gettaskreward) //领取任务或者成就奖励  
60 - http.HandleFunc("/eliminatestar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励  
61 - http.HandleFunc("/eliminatestar/querysigndata", Querysigndata) //获取签到数据  
62 - http.HandleFunc("/eliminatestar/usersign", Usersign) //玩家签到  
63 46
64 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) 47 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
65 CheckErr(err) 48 CheckErr(err)
@@ -91,124 +74,12 @@ func ClearData(w http.ResponseWriter, r *http.Request) { @@ -91,124 +74,12 @@ func ClearData(w http.ResponseWriter, r *http.Request) {
91 fmt.Fprint(w, "success!") 74 fmt.Fprint(w, "success!")
92 } 75 }
93 76
94 -func Usersign(w http.ResponseWriter, r *http.Request) {  
95 -  
96 - Uuid := 0  
97 - if len(r.Header) > 0 {  
98 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
99 - }  
100 -  
101 - if Uuid == 0 {  
102 - SetHeader(w)  
103 - //logger.Error("Uuid is nil!")  
104 - return  
105 - }  
106 - result, _ := ioutil.ReadAll(r.Body)  
107 - r.Body.Close()  
108 -  
109 - s := string(result)  
110 - logger.Info("Usersign , body:%v,uuid=%v", s, Uuid)  
111 -  
112 - HandlerUsersign(w, s, Uuid)  
113 -}  
114 -  
115 -func Querysigndata(w http.ResponseWriter, r *http.Request) {  
116 -  
117 - Uuid := 0  
118 - if len(r.Header) > 0 {  
119 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
120 - }  
121 -  
122 - if Uuid == 0 {  
123 - SetHeader(w)  
124 - //logger.Error("Uuid is nil!")  
125 - return  
126 - }  
127 - result, _ := ioutil.ReadAll(r.Body)  
128 - r.Body.Close()  
129 -  
130 - s := string(result)  
131 - logger.Info("Querysigndata , body:%v,uuid=%v", s, Uuid)  
132 -  
133 - HandlerQuerysigndata(w, s, Uuid)  
134 -}  
135 -  
136 func Testapi(w http.ResponseWriter, r *http.Request) { 77 func Testapi(w http.ResponseWriter, r *http.Request) {
137 78
138 - SetHeader(w)  
139 - type TesaApiData struct {  
140 - Type int `json:"type"` //1金币 2经验 3存钱罐次数  
141 - Value int `json:"value"`  
142 - Gameid string `json:"gameid"`  
143 - Channel string `json:"channel"`  
144 - }  
145 - Uuid := 0  
146 - if len(r.Header) > 0 {  
147 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
148 - }  
149 -  
150 - if Uuid == 0 {  
151 - SetHeader(w)  
152 - //logger.Error("Uuid is nil!")  
153 - return  
154 - }  
155 - result, _ := ioutil.ReadAll(r.Body)  
156 - r.Body.Close()  
157 -  
158 - s := string(result)  
159 - logger.Info("Testapi , body:%v,uuid=%v", s, Uuid)  
160 -  
161 - var rdata TesaApiData  
162 - err := json.Unmarshal([]byte(s), &rdata)  
163 -  
164 - if err != nil {  
165 - logger.Info("json decode Testapi data failed:%v,for:%v", err, s)  
166 - fmt.Fprint(w, "failed")  
167 - return  
168 - }  
169 -  
170 - uinfo, err := GetUserInfo(Uuid)  
171 - if err != nil || uinfo == nil {  
172 - logger.Error("redis failed err=%v", err)  
173 - fmt.Fprint(w, "failed")  
174 - return  
175 - }  
176 -  
177 - if rdata.Type == 1 {  
178 - //金币  
179 - uinfo.RealGold += rdata.Value  
180 - //调用sdk  
181 - gold, err := AddCoinToSdk(Uuid, rdata.Value, rdata.Gameid, rdata.Channel, 100)  
182 - if err != nil {  
183 - logger.Error("test ddt! err=%v", err)  
184 - }  
185 - uinfo.RealGold = gold  
186 -  
187 - }  
188 - if rdata.Type == 2 {  
189 - uinfo.Exp += rdata.Value  
190 - }  
191 - if rdata.Type == 3 {  
192 - uinfo.GetFromGuanCnt += rdata.Value  
193 - }  
194 - if rdata.Type == 4 {  
195 - uinfo.Lv += rdata.Value  
196 - }  
197 - if rdata.Type == 5 {  
198 - uinfo.IsSignToday = 0  
199 - if uinfo.SignSum == 7 {  
200 - uinfo.SignSum = 0  
201 - uinfo.SignRound++  
202 - }  
203 - }  
204 - err = SaveUserInfo(uinfo)  
205 - if err != nil {  
206 - logger.Error("SaveUserInfo err=%v", err)  
207 - }  
208 fmt.Fprint(w, "success") 79 fmt.Fprint(w, "success")
209 } 80 }
210 81
211 -func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { 82 +/*func Getnewlevelreward(w http.ResponseWriter, r *http.Request) {
212 83
213 Uuid := 0 84 Uuid := 0
214 if len(r.Header) > 0 { 85 if len(r.Header) > 0 {
@@ -227,282 +98,4 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { @@ -227,282 +98,4 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) {
227 logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid) 98 logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid)
228 99
229 HandlerGetnewlevelreward(w, s, Uuid) 100 HandlerGetnewlevelreward(w, s, Uuid)
230 -}  
231 -  
232 -func Gettaskreward(w http.ResponseWriter, r *http.Request) {  
233 -  
234 - Uuid := 0  
235 - if len(r.Header) > 0 {  
236 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
237 - }  
238 -  
239 - if Uuid == 0 {  
240 - SetHeader(w)  
241 - //logger.Error("Uuid is nil!")  
242 - return  
243 - }  
244 - result, _ := ioutil.ReadAll(r.Body)  
245 - r.Body.Close()  
246 -  
247 - s := string(result)  
248 - logger.Info("Gettaskreward , body:%v,uuid=%v", s, Uuid)  
249 -  
250 - HandlerGettaskreward(w, s, Uuid)  
251 -}  
252 -  
253 -func Querytaskinfo(w http.ResponseWriter, r *http.Request) {  
254 -  
255 - Uuid := 0  
256 - if len(r.Header) > 0 {  
257 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
258 - }  
259 -  
260 - if Uuid == 0 {  
261 - SetHeader(w)  
262 - //logger.Error("Uuid is nil!")  
263 - return  
264 - }  
265 - result, _ := ioutil.ReadAll(r.Body)  
266 - r.Body.Close()  
267 -  
268 - s := string(result)  
269 - logger.Info("Querytaskinfo , body:%v,uuid=%v", s, Uuid)  
270 -  
271 - HandlerQuerytaskinfo(w, s, Uuid)  
272 -}  
273 -  
274 -func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) {  
275 -  
276 - Uuid := 0  
277 - if len(r.Header) > 0 {  
278 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
279 - }  
280 -  
281 - if Uuid == 0 {  
282 - SetHeader(w)  
283 - //logger.Error("Uuid is nil!")  
284 - return  
285 - }  
286 - result, _ := ioutil.ReadAll(r.Body)  
287 - r.Body.Close()  
288 -  
289 - s := string(result)  
290 - logger.Info("Updatetaskandachieve , body:%v,uuid=%v", s, Uuid)  
291 -  
292 - HandlerUpdatetaskandachieve(w, s, Uuid)  
293 -}  
294 -  
295 -func Onlinentf(w http.ResponseWriter, r *http.Request) {  
296 -  
297 - Uuid := 0  
298 - if len(r.Header) > 0 {  
299 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
300 - }  
301 -  
302 - if Uuid == 0 {  
303 - SetHeader(w)  
304 - //logger.Error("Uuid is nil!")  
305 - return  
306 - }  
307 - result, _ := ioutil.ReadAll(r.Body)  
308 - r.Body.Close()  
309 -  
310 - s := string(result)  
311 - logger.Info("Onlinentf , body:%v,uuid=%v", s, Uuid)  
312 -  
313 - HandlerOnlinentf(w, s, Uuid)  
314 -}  
315 -  
316 -func Getcashrecord(w http.ResponseWriter, r *http.Request) {  
317 -  
318 - Uuid := 0  
319 - if len(r.Header) > 0 {  
320 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
321 - }  
322 -  
323 - if Uuid == 0 {  
324 - SetHeader(w)  
325 - //logger.Error("Uuid is nil!")  
326 - return  
327 - }  
328 - result, _ := ioutil.ReadAll(r.Body)  
329 - r.Body.Close()  
330 -  
331 - s := string(result)  
332 - logger.Info("Getcashrecord , body:%v,uuid=%v", s, Uuid)  
333 -  
334 - HandlerGetcashrecord(w, s, Uuid)  
335 -}  
336 -  
337 -func Getcash(w http.ResponseWriter, r *http.Request) {  
338 -  
339 - Uuid := 0  
340 - if len(r.Header) > 0 {  
341 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
342 - }  
343 -  
344 - if Uuid == 0 {  
345 - SetHeader(w)  
346 - //logger.Error("Uuid is nil!")  
347 - return  
348 - }  
349 - result, _ := ioutil.ReadAll(r.Body)  
350 - r.Body.Close()  
351 -  
352 - s := string(result)  
353 - logger.Info("Getcash , body:%v,uuid=%v", s, Uuid)  
354 -  
355 - HandlerGetcash(w, s, Uuid)  
356 -}  
357 -  
358 -func Querdrawinfo(w http.ResponseWriter, r *http.Request) {  
359 -  
360 - Uuid := 0  
361 - if len(r.Header) > 0 {  
362 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
363 - }  
364 -  
365 - if Uuid == 0 {  
366 - SetHeader(w)  
367 - //logger.Error("Uuid is nil!")  
368 - return  
369 - }  
370 - result, _ := ioutil.ReadAll(r.Body)  
371 - r.Body.Close()  
372 -  
373 - s := string(result)  
374 - logger.Info("Querdrawinfo , body:%v,uuid=%v", s, Uuid)  
375 -  
376 - HandlerQuerdrawinfo(w, s, Uuid)  
377 -}  
378 -  
379 -func Drawguangold(w http.ResponseWriter, r *http.Request) {  
380 -  
381 - Uuid := 0  
382 - if len(r.Header) > 0 {  
383 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
384 - }  
385 -  
386 - if Uuid == 0 {  
387 - SetHeader(w)  
388 - //logger.Error("Uuid is nil!")  
389 - return  
390 - }  
391 - result, _ := ioutil.ReadAll(r.Body)  
392 - r.Body.Close()  
393 -  
394 - s := string(result)  
395 - logger.Info("Drawguangold , body:%v,uuid=%v", s, Uuid)  
396 -  
397 - HandlerDrawguangold(w, s, Uuid)  
398 -}  
399 -  
400 -func Getguangold(w http.ResponseWriter, r *http.Request) {  
401 -  
402 - Uuid := 0  
403 - if len(r.Header) > 0 {  
404 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
405 - }  
406 -  
407 - if Uuid == 0 {  
408 - SetHeader(w)  
409 - //logger.Error("Uuid is nil!")  
410 - return  
411 - }  
412 - result, _ := ioutil.ReadAll(r.Body)  
413 - r.Body.Close()  
414 -  
415 - s := string(result)  
416 - logger.Info("Getguangold , body:%v,uuid=%v", s, Uuid)  
417 -  
418 - HandlerGetguangold(w, s, Uuid)  
419 -}  
420 -  
421 -func Queryguaninfo(w http.ResponseWriter, r *http.Request) {  
422 -  
423 - Uuid := 0  
424 - if len(r.Header) > 0 {  
425 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
426 - }  
427 -  
428 - if Uuid == 0 {  
429 - SetHeader(w)  
430 - //logger.Error("Uuid is nil!")  
431 - return  
432 - }  
433 - result, _ := ioutil.ReadAll(r.Body)  
434 - r.Body.Close()  
435 -  
436 - s := string(result)  
437 - logger.Info("Queryguaninfo , body:%v,uuid=%v", s, Uuid)  
438 -  
439 - HandlerQueryguaninfo(w, s, Uuid)  
440 -}  
441 -  
442 -func Watchads(w http.ResponseWriter, r *http.Request) {  
443 -  
444 - //这个接口作废  
445 - logger.Info("Watchads is not used")  
446 - SetHeader(w)  
447 -  
448 - return  
449 - Uuid := 0  
450 - if len(r.Header) > 0 {  
451 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
452 - }  
453 -  
454 - if Uuid == 0 {  
455 - SetHeader(w)  
456 - //logger.Error("Uuid is nil!")  
457 - return  
458 - }  
459 - result, _ := ioutil.ReadAll(r.Body)  
460 - r.Body.Close()  
461 -  
462 - s := string(result)  
463 - logger.Info("Watchads , body:%v,uuid=%v", s, Uuid)  
464 -  
465 - HandlerWatchads(w, s, Uuid)  
466 -}  
467 -  
468 -func UserLogin(w http.ResponseWriter, r *http.Request) {  
469 -  
470 - Uuid := 0  
471 - if len(r.Header) > 0 {  
472 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
473 - }  
474 -  
475 - if Uuid == 0 {  
476 - SetHeader(w)  
477 - //logger.Error("Uuid is nil!")  
478 - return  
479 - }  
480 - result, _ := ioutil.ReadAll(r.Body)  
481 - r.Body.Close()  
482 -  
483 - s := string(result)  
484 - logger.Info("UserLogin , body:%v,uuid=%v", s, Uuid)  
485 -  
486 - HandlerLogin(w, s, Uuid)  
487 -}  
488 -  
489 -func Getuserdata(w http.ResponseWriter, r *http.Request) {  
490 -  
491 - Uuid := 0  
492 - if len(r.Header) > 0 {  
493 - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))  
494 - }  
495 -  
496 - if Uuid == 0 {  
497 - SetHeader(w)  
498 - //logger.Error("Uuid is nil!")  
499 - return  
500 - }  
501 - result, _ := ioutil.ReadAll(r.Body)  
502 - r.Body.Close()  
503 -  
504 - s := string(result)  
505 - logger.Info("Getuserdata , body:%v,uuid=%v", s, Uuid)  
506 -  
507 - HandlerGetuserdata(w, s, Uuid)  
508 -} 101 +}*/
src/HttpServer/logic/logic.go
1 package logic 1 package logic
2 -  
3 -import (  
4 - "HttpServer/jsonconf"  
5 - "HttpServer/redishandler"  
6 - "common/logger"  
7 - "common/redis"  
8 - "encoding/json"  
9 - "fmt"  
10 - "net/http"  
11 - "strconv"  
12 -)  
13 -  
14 -func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) {  
15 - SetHeader(w)  
16 - var resp QueryguaninfoResp  
17 - resp.Code = 0  
18 - for {  
19 - uinfo, err := GetUserInfo(uuid)  
20 - if err != nil || uinfo == nil {  
21 - logger.Error("redis failed err=%v", err)  
22 - resp.Message = "服务器错误"  
23 - resp.Code = ERROR_SRV_ERROR  
24 - break  
25 - }  
26 -  
27 - uinfo.HandlePassDay()  
28 -  
29 - //获取存钱罐等级配置  
30 - mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv)  
31 - if mcfg == nil {  
32 - logger.Error("GetMoneyBoxCfg failed uinfo.Lv=%v", uinfo.Lv)  
33 - logger.Error("GetMoneyBoxCfg failed cfg=%v", jsonconf.GetJsonConf().MoneyBoxConfig)  
34 - resp.Message = "存钱罐金币不足"  
35 - resp.Code = ERROR_GETCONFIG_FAILED  
36 - break  
37 - }  
38 -  
39 - resp.Data.Guangold = uinfo.GuanGold  
40 - resp.Data.Loginday = uinfo.ContinueLoginDay  
41 - resp.Data.Totalcnt = uinfo.CalcTotalCnt()  
42 - resp.Data.Leftcnt = resp.Data.Totalcnt - uinfo.GetFromGuanCnt  
43 - resp.Data.Maxget = mcfg.Max  
44 - resp.Data.Minget = mcfg.Min  
45 - resp.Data.Totalfetchcnt = uinfo.Achieve.SumGetGuan  
46 - resp.Code = ERROR_OK  
47 - break  
48 -  
49 - }  
50 -  
51 - //回包  
52 - respstr, _ := json.Marshal(&resp)  
53 - fmt.Fprint(w, string(respstr))  
54 -}  
55 -  
56 -func HandlerWatchads(w http.ResponseWriter, data string, uuid int) {  
57 - SetHeader(w)  
58 - var resp WatchadsResp  
59 - resp.Code = 0  
60 -  
61 - for {  
62 - uinfo, err := GetUserInfo(uuid)  
63 - if err != nil || uinfo == nil {  
64 - logger.Error("redis failed err=%v", err)  
65 - resp.Message = "服务器错误"  
66 - resp.Code = ERROR_SRV_ERROR  
67 - break  
68 - }  
69 -  
70 - if uinfo.WatchAddsTime == 0 {  
71 - logger.Error("WatchAddsTime zero")  
72 - resp.Message = "看视频次数已经耗尽"  
73 - resp.Code = ERROR_WATCHADS_ZEOR  
74 - break  
75 - }  
76 -  
77 - uinfo.WatchAddsTime--  
78 - err = SaveUserInfo(uinfo)  
79 - if err != nil {  
80 - logger.Error("redis failed err=%v", err)  
81 - resp.Message = "服务器错误"  
82 - resp.Code = ERROR_SRV_ERROR  
83 - break  
84 - }  
85 -  
86 - resp.Code = ERROR_OK  
87 - break  
88 -  
89 - }  
90 -  
91 - //回包  
92 - respstr, _ := json.Marshal(&resp)  
93 - fmt.Fprint(w, string(respstr))  
94 -}  
95 -  
96 -func HandlerGetcash(w http.ResponseWriter, data string, uuid int) {  
97 - SetHeader(w)  
98 - var resp GetcashResp  
99 - resp.Code = 0  
100 - var rdata GetcashReq  
101 - err := json.Unmarshal([]byte(data), &rdata)  
102 - for {  
103 - if err != nil {  
104 - logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data)  
105 - resp.Message = "json解析错误"  
106 - resp.Code = ERROR_JSONUNMASH_ERROR  
107 - break  
108 - }  
109 - //临时处理一下  
110 - if rdata.Ver == "" {  
111 - rdata.Ver = "2.0.0"  
112 - }  
113 -  
114 - uinfo, err := GetUserInfo(uuid)  
115 - if err != nil || uinfo == nil {  
116 - logger.Error("redis failed err=%v", err)  
117 - resp.Message = "服务器错误"  
118 - resp.Code = ERROR_SRV_ERROR  
119 - break  
120 - }  
121 -  
122 - drawnum := int(rdata.Money * 100)  
123 - //需要判断一下金币是否足够  
124 - if drawnum*100 > uinfo.RealGold {  
125 - logger.Error("gold nor enough failed err=%v", err)  
126 - resp.Message = "提现金币不足"  
127 - resp.Code = ERROR_GETCASH_GOLDNOTENOUGH_FAILED  
128 - break  
129 - }  
130 -  
131 - index, info := uinfo.GetWithDrawData(rdata.Money)  
132 - if index == -1 || info == nil {  
133 - logger.Error("AddWithDrawList failed err=%v", err)  
134 - resp.Message = "网络错误"  
135 - resp.Code = ERROR_SRV_ERROR  
136 - break  
137 - }  
138 -  
139 - if uinfo.Lv < info.Limitlv {  
140 - logger.Error("AddWithDrawList failed err=%v", err)  
141 - resp.Message = "完成日常任务可以提升人物等级哦~"  
142 - resp.Code = ERROR_WITHDRAWLVLIMIT  
143 - break  
144 - }  
145 -  
146 - if info.Isnew == 0 {  
147 - logger.Error("AddWithDrawList failed err=%v", err)  
148 - resp.Message = "新人专享只能提取一次"  
149 - resp.Code = ERROR_WITHDRAWONLYONE  
150 - break  
151 - }  
152 -  
153 - if info.Preisfind == 0 {  
154 - logger.Error("HandlerGetcash Preisfind err=%v", err)  
155 - resp.Message = "请先完成前一档提现"  
156 - resp.Code = ERROR_PRENOTFINISH  
157 - break  
158 - }  
159 -  
160 - //判断一下前置条件的下一档  
161 - if index == len(uinfo.WithDraw.Cashdata)-1 {  
162 - //最后一档了不用处理  
163 - } else {  
164 - if index < len(uinfo.WithDraw.Cashdata)-1 {  
165 - uinfo.WithDraw.Cashdata[index+1].Preisfind = 1  
166 - }  
167 - }  
168 -  
169 - gold, err := GetCashFromSDK(uuid, drawnum, rdata.Gameid, rdata.Channel, rdata.Openid, rdata.Nickname, rdata.Headurl, rdata.Ver)  
170 - if err != nil {  
171 - logger.Error("GetCashFromSDK failed err=%v", err)  
172 - resp.Message = "从后台提现失败了"  
173 - resp.Code = ERROR_GETCASH_FAILED  
174 - break  
175 - }  
176 -  
177 - //需要保存一下提现记录  
178 - /*data := new(WithDrawRecord)  
179 - data.Withdrawmoney = rdata.Money  
180 - data.Withdrawtime = int(time.Now().Unix())  
181 - err = AddWithDrawList(uuid, data)  
182 - if err != nil {  
183 - logger.Error("AddWithDrawList failed err=%v", err)  
184 - resp.Message = "网络错误"  
185 - resp.Code = ERROR_SRV_ERROR  
186 - break  
187 - }*/  
188 -  
189 - if info.Isnew == 1 {  
190 - uinfo.WithDraw.Cashdata[index].Isnew = 0  
191 - }  
192 -  
193 - uinfo.RealGold = gold  
194 - //uinfo.RealGold -= drawnum * 100  
195 -  
196 - resp.Data.Walletgold = uinfo.RealGold  
197 - SaveUserInfo(uinfo)  
198 -  
199 - resp.Code = ERROR_OK  
200 - break  
201 - }  
202 -  
203 - //回包  
204 - respstr, _ := json.Marshal(&resp)  
205 - fmt.Fprint(w, string(respstr))  
206 -  
207 -}  
208 -  
209 -func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) {  
210 - SetHeader(w)  
211 - var resp QuerysigndataResp  
212 - resp.Code = 0  
213 -  
214 - for {  
215 -  
216 - uinfo, err := GetUserInfo(uuid)  
217 - if err != nil || uinfo == nil {  
218 - logger.Error("redis failed err=%v", err)  
219 - resp.Message = "服务器错误"  
220 - resp.Code = ERROR_SRV_ERROR  
221 - break  
222 - }  
223 -  
224 - //此处要处理一下跨天逻辑  
225 - uinfo.HandlePassDay()  
226 -  
227 - resp.Data.Continuessign = uinfo.SignSum  
228 - resp.Data.IssignToday = uinfo.IsSignToday  
229 - resp.Data.Signround = uinfo.SignRound  
230 -  
231 - logger.Info("HandlerQuerysigndata resp=%v", resp)  
232 -  
233 - SaveUserInfo(uinfo)  
234 - resp.Code = ERROR_OK  
235 - break  
236 - }  
237 -  
238 - respstr, _ := json.Marshal(&resp)  
239 - fmt.Fprint(w, string(respstr))  
240 -}  
241 -  
242 -func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) {  
243 - SetHeader(w)  
244 - var resp GetnewlevelrewardResp  
245 - resp.Code = 0  
246 - var rdata GetnewlevelrewardReq  
247 - err := json.Unmarshal([]byte(data), &rdata)  
248 - for {  
249 - if err != nil {  
250 - logger.Info("json decode HandlerGetnewlevelreward data failed:%v,for:%v", err, data)  
251 - resp.Message = "网络错误"  
252 - resp.Code = ERROR_JSONUNMASH_ERROR  
253 - break  
254 - }  
255 - uinfo, err := GetUserInfo(uuid)  
256 - if err != nil || uinfo == nil {  
257 - logger.Error("redis failed err=%v", err)  
258 - resp.Message = "服务器错误"  
259 - resp.Code = ERROR_SRV_ERROR  
260 - break  
261 - }  
262 -  
263 - //判断是否可以领取  
264 - if uinfo.LvRewardGet != 1 {  
265 - logger.Error("LvRewardGet failed err=%v", err)  
266 - resp.Message = "当前等级奖励已经领取过了"  
267 - resp.Code = ERROR_LVREWARDALREADYGET  
268 - break  
269 - }  
270 -  
271 - cfg := GetUserLvConfig(uinfo.Lv)  
272 - if cfg == nil {  
273 - logger.Error("GetUserLvConfig failed err=%v", err)  
274 - resp.Message = "网络错误"  
275 - resp.Code = ERROR_SRV_ERROR  
276 - break  
277 - }  
278 -  
279 - goldnum, err := AddCoinToSdk(uuid, cfg.Cash, rdata.Gameid, rdata.Channel, 100)  
280 - if err != nil {  
281 - logger.Error("AddCoinToSdk failed err=%v", err)  
282 - resp.Message = "网络错误"  
283 - resp.Code = ERROR_SRV_ERROR  
284 - break  
285 - }  
286 - uinfo.RealGold = goldnum  
287 - //uinfo.RealGold += cfg.Cash  
288 -  
289 - if rdata.Rewardtype == 2 {  
290 - goldnum, err = AddCoinToSdk(uuid, cfg.Extracash, rdata.Gameid, rdata.Channel, 100)  
291 - if err != nil {  
292 - logger.Error("AddCoinToSdk failed err=%v", err)  
293 - resp.Message = "网络错误"  
294 - resp.Code = ERROR_SRV_ERROR  
295 - break  
296 - }  
297 - uinfo.RealGold = goldnum  
298 - uinfo.RealGold += cfg.Extracash  
299 - }  
300 -  
301 - uinfo.LvRewardGet = 1 + rdata.Rewardtype  
302 -  
303 - resp.Data.Goldnum = uinfo.RealGold  
304 - //保存数据  
305 - SaveUserInfo(uinfo)  
306 -  
307 - resp.Code = ERROR_OK  
308 - break  
309 - }  
310 -  
311 - //回包  
312 - respstr, _ := json.Marshal(&resp)  
313 - fmt.Fprint(w, string(respstr))  
314 -  
315 -}  
316 -  
317 -func HandlerUsersign(w http.ResponseWriter, data string, uuid int) {  
318 - SetHeader(w)  
319 - var resp UsersignResp  
320 - resp.Code = 0  
321 - var rdata UsersignReq  
322 - err := json.Unmarshal([]byte(data), &rdata)  
323 - for {  
324 - if err != nil {  
325 - logger.Info("json decode HandlerUsersign data failed:%v,for:%v", err, data)  
326 - resp.Message = "网络错误"  
327 - resp.Code = ERROR_JSONUNMASH_ERROR  
328 - break  
329 - }  
330 - uinfo, err := GetUserInfo(uuid)  
331 - if err != nil || uinfo == nil {  
332 - logger.Error("redis failed err=%v", err)  
333 - resp.Message = "服务器错误"  
334 - resp.Code = ERROR_SRV_ERROR  
335 - break  
336 - }  
337 -  
338 - if uinfo.IsSignToday == 1 {  
339 - logger.Error("IsSignToday failed err=%v", err)  
340 - resp.Message = "今日已经签过到啦"  
341 - resp.Code = ERROR_SINGALREADYTODAY  
342 - break  
343 - }  
344 -  
345 - uinfo.SignSum++  
346 - if uinfo.SignSum > 7 {  
347 - uinfo.SignSum = 7  
348 - logger.Error("uinfo.SignSum failed")  
349 - resp.Message = "签到数据异常"  
350 - resp.Code = ERROR_SINGDATAFAILED  
351 - break  
352 - }  
353 -  
354 - //获取配置  
355 - cfg := jsonconf.GetSignConfig(uinfo.SignRound, uinfo.SignSum)  
356 - if cfg == nil {  
357 - uinfo.SignSum--  
358 - logger.Error("GetSignConfig failed err=%v", err)  
359 - resp.Message = "服务器错误"  
360 - resp.Code = ERROR_SRV_ERROR  
361 - break  
362 - }  
363 -  
364 - //uinfo.RealGold =  
365 - goldnum, err := AddCoinToSdk(uuid, cfg.Num, rdata.Gameid, rdata.Channel, 100)  
366 - if err != nil {  
367 - uinfo.SignSum--  
368 - logger.Error("AddCoinToSdk failed err=%v", err)  
369 - resp.Message = "服务器错误"  
370 - resp.Code = ERROR_SRV_ERROR  
371 - break  
372 - }  
373 -  
374 - uinfo.IsSignToday = 1  
375 - uinfo.RealGold = goldnum  
376 - //uinfo.RealGold += cfg.Num  
377 -  
378 - resp.Data.Goldnum = uinfo.RealGold  
379 -  
380 - //保存数据  
381 - err = SaveUserInfo(uinfo)  
382 -  
383 - resp.Code = ERROR_OK  
384 - break  
385 - }  
386 -  
387 - //回包  
388 - respstr, _ := json.Marshal(&resp)  
389 - fmt.Fprint(w, string(respstr))  
390 -  
391 -}  
392 -  
393 -func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) {  
394 - SetHeader(w)  
395 - var resp GettaskrewardResp  
396 - resp.Code = 0  
397 - var rdata GettaskrewardReq  
398 - err := json.Unmarshal([]byte(data), &rdata)  
399 - for {  
400 - if err != nil {  
401 - logger.Info("json decode HandlerGettaskreward data failed:%v,for:%v", err, data)  
402 - resp.Message = "网络错误"  
403 - resp.Code = ERROR_JSONUNMASH_ERROR  
404 - break  
405 - }  
406 - uinfo, err := GetUserInfo(uuid)  
407 - if err != nil || uinfo == nil {  
408 - logger.Error("redis failed err=%v", err)  
409 - resp.Message = "服务器错误"  
410 - resp.Code = ERROR_SRV_ERROR  
411 - break  
412 - }  
413 -  
414 - //需要先计算出任务或者成就  
415 - var tasklist *TaskList  
416 - //先查询一下当前的任务数据  
417 - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype)  
418 - if err != nil || tasklist == nil {  
419 - logger.Error("GetTaskInfo failed err=%v", err)  
420 - resp.Message = "服务器错误"  
421 - resp.Code = ERROR_SRV_ERROR  
422 - break  
423 - }  
424 -  
425 - err = uinfo.HandleGetTaskReward(&rdata, &resp, tasklist)  
426 - logger.Info("HandlerGettaskreward tasklist=%v", tasklist)  
427 - logger.Info("HandlerGettaskreward uinfo=%v", uinfo)  
428 - if err != nil {  
429 - logger.Error("HandleGetTaskReward failed err=%v", err)  
430 - resp.Message = "奖励已经领取"  
431 - resp.Code = ERROR_SRV_ERROR  
432 - break  
433 - }  
434 -  
435 - //保存数据  
436 - err = SaveUserInfo(uinfo)  
437 - err = SaveTaskInfo(uinfo.Userid, rdata.Tasktype, tasklist)  
438 -  
439 - resp.Code = ERROR_OK  
440 - break  
441 - }  
442 -  
443 - //回包  
444 - respstr, _ := json.Marshal(&resp)  
445 - fmt.Fprint(w, string(respstr))  
446 -  
447 -}  
448 -  
449 -func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) {  
450 - SetHeader(w)  
451 - var resp QuerytaskinfoResp  
452 - resp.Code = 0  
453 - var rdata QuerytaskinfoReq  
454 - err := json.Unmarshal([]byte(data), &rdata)  
455 - for {  
456 - if err != nil {  
457 - logger.Info("json decode HandlerQuerytaskinfo data failed:%v,for:%v", err, data)  
458 - resp.Message = "网络错误"  
459 - resp.Code = ERROR_JSONUNMASH_ERROR  
460 - break  
461 - }  
462 - uinfo, err := GetUserInfo(uuid)  
463 - if err != nil || uinfo == nil {  
464 - logger.Error("redis failed err=%v", err)  
465 - resp.Message = "服务器错误"  
466 - resp.Code = ERROR_SRV_ERROR  
467 - break  
468 - }  
469 -  
470 - uinfo.HandlePassDay()  
471 -  
472 - //需要先计算出任务或者成就  
473 - var tasklist *TaskList  
474 - //先查询一下当前的任务数据  
475 - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype)  
476 - if err != nil || tasklist == nil {  
477 - logger.Error("redis failed err=%v", err)  
478 - resp.Message = "服务器错误"  
479 - resp.Code = ERROR_SRV_ERROR  
480 - break  
481 - }  
482 -  
483 - if rdata.Tasktype == 1 {  
484 - uinfo.CalcTaskList(tasklist)  
485 - } else if rdata.Tasktype == 2 {  
486 - tasklist = uinfo.CalcAchieveList(tasklist)  
487 - } else {  
488 - uinfo.CalcTaskList(tasklist)  
489 - }  
490 -  
491 - if tasklist == nil {  
492 - logger.Error("redis failed err=%v", err)  
493 - resp.Message = "服务器错误"  
494 - resp.Code = ERROR_SRV_ERROR  
495 - break  
496 - }  
497 -  
498 - resp.Data.Taskdata = append(resp.Data.Taskdata, tasklist.Taskdata...)  
499 -  
500 - resp.Code = ERROR_OK  
501 - break  
502 - }  
503 -  
504 - //回包  
505 - logger.Info("HandlerQuerytaskinfo resp=%v", resp)  
506 - respstr, _ := json.Marshal(&resp)  
507 - fmt.Fprint(w, string(respstr))  
508 -  
509 -}  
510 -  
511 -func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) {  
512 - SetHeader(w)  
513 - var resp UpdatetaskResp  
514 - resp.Code = 0  
515 - var rdata UpdatetaskReq  
516 - err := json.Unmarshal([]byte(data), &rdata)  
517 - for {  
518 -  
519 - if err != nil {  
520 - logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data)  
521 - resp.Message = "json解析错误"  
522 - resp.Code = ERROR_JSONUNMASH_ERROR  
523 - break  
524 - }  
525 - uinfo, err := GetUserInfo(uuid)  
526 - if err != nil || uinfo == nil {  
527 - logger.Error("redis failed err=%v", err)  
528 - resp.Message = "服务器错误"  
529 - resp.Code = ERROR_SRV_ERROR  
530 - break  
531 - }  
532 -  
533 - switch rdata.Tasktype {  
534 - case TASKTYPE_PASSLEVEL:  
535 - uinfo.Task.PassLevel += rdata.Value  
536 - case TASKTYPE_GETREDBAG:  
537 - uinfo.Task.GetRedbagCnt += rdata.Value  
538 - if uinfo.LeftFreeRB > 0 {  
539 - uinfo.LeftFreeRB--  
540 - }  
541 - if uinfo.WatchAddsTime > 0 {  
542 - uinfo.WatchAddsTime--  
543 - }  
544 - case TASKTYPE_WATCHADS:  
545 - uinfo.Achieve.WatchAdsCnt += rdata.Value  
546 - case TASKTYPE_KILLSTAR:  
547 - uinfo.Achieve.KillStar += rdata.Value  
548 - case TASKTYPE_USEITEM:  
549 - uinfo.Task.UseItemCnt += rdata.Value  
550 - uinfo.Achieve.SumUseItemCnt += rdata.Value  
551 - }  
552 - logger.Info("HandlerUpdatetaskandachieve uinfo=%v rdata=%v", uinfo, rdata)  
553 - SaveUserInfo(uinfo)  
554 - resp.Code = ERROR_OK  
555 - break  
556 - }  
557 -  
558 - //回包  
559 - respstr, _ := json.Marshal(&resp)  
560 - fmt.Fprint(w, string(respstr))  
561 -  
562 -}  
563 -  
564 -func HandlerOnlinentf(w http.ResponseWriter, data string, uuid int) {  
565 - SetHeader(w)  
566 - var resp OnlinentfResp  
567 - resp.Code = 0  
568 - for {  
569 -  
570 - uinfo, err := GetUserInfo(uuid)  
571 - if err != nil || uinfo == nil {  
572 - logger.Error("redis failed err=%v", err)  
573 - resp.Message = "服务器错误"  
574 - resp.Code = ERROR_SRV_ERROR  
575 - break  
576 - }  
577 -  
578 - uinfo.Task.OnlineMin++  
579 -  
580 - SaveUserInfo(uinfo)  
581 -  
582 - resp.Code = ERROR_OK  
583 - break  
584 - }  
585 -  
586 - //回包  
587 - respstr, _ := json.Marshal(&resp)  
588 - fmt.Fprint(w, string(respstr))  
589 -  
590 -}  
591 -  
592 -func HandlerGetcashrecord(w http.ResponseWriter, data string, uuid int) {  
593 - SetHeader(w)  
594 - var resp GetcashrecordResp  
595 - resp.Code = 0  
596 - var rdata GetcashrecordReq  
597 - err := json.Unmarshal([]byte(data), &rdata)  
598 - for {  
599 - if err != nil {  
600 - logger.Info("json decode HandlerGetcashrecord data failed:%v,for:%v", err, data)  
601 - resp.Message = "json解析错误"  
602 - resp.Code = ERROR_JSONUNMASH_ERROR  
603 - break  
604 - }  
605 - // list, err := GetWithDrawList(uuid)  
606 - /*if err != nil || list == nil {  
607 - /*logger.Error("HandlerGetcashrecord failed err=%v", err)  
608 - resp.Message = "服务器错误"  
609 - resp.Code = ERROR_SRV_ERROR  
610 - break  
611 - }*/  
612 - list, err := GetCashList(uuid, rdata.Gameid, rdata.Channel, 0, 100)  
613 - if err != nil {  
614 - logger.Error("HandlerGetcashrecord failed err=%v", err)  
615 - resp.Message = "服务器错误"  
616 - resp.Code = ERROR_SRV_ERROR  
617 - break  
618 - }  
619 - if list != nil {  
620 - resp.Data.Withdata = append(resp.Data.Withdata, *list...)  
621 - }  
622 -  
623 - resp.Code = ERROR_OK  
624 - break  
625 - }  
626 -  
627 - //回包  
628 - respstr, _ := json.Marshal(&resp)  
629 - fmt.Fprint(w, string(respstr))  
630 -  
631 -}  
632 -  
633 -func HandlerQuerdrawinfo(w http.ResponseWriter, data string, uuid int) {  
634 - SetHeader(w)  
635 - var resp QuerdrawinfoResp  
636 - resp.Code = 0  
637 - for {  
638 - uinfo, err := GetUserInfo(uuid)  
639 - if err != nil || uinfo == nil {  
640 - logger.Error("redis failed err=%v", err)  
641 - resp.Message = "服务器错误"  
642 - resp.Code = ERROR_SRV_ERROR  
643 - break  
644 - }  
645 -  
646 - //返回  
647 - resp.Data.Cashdata = append(resp.Data.Cashdata, uinfo.WithDraw.Cashdata...)  
648 -  
649 - resp.Code = ERROR_OK  
650 - break  
651 - }  
652 -  
653 - //回包  
654 - respstr, _ := json.Marshal(&resp)  
655 - fmt.Fprint(w, string(respstr))  
656 -  
657 -}  
658 -  
659 -func HandlerDrawguangold(w http.ResponseWriter, data string, uuid int) {  
660 - SetHeader(w)  
661 - var resp DrawguangoldResp  
662 - resp.Code = 0  
663 - var rdata DrawguangoldReq  
664 - err := json.Unmarshal([]byte(data), &rdata)  
665 - for {  
666 - if err != nil {  
667 - logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data)  
668 - resp.Message = "json解析错误"  
669 - resp.Code = ERROR_JSONUNMASH_ERROR  
670 - break  
671 - }  
672 -  
673 - uinfo, err := GetUserInfo(uuid)  
674 - if err != nil || uinfo == nil {  
675 - logger.Error("redis failed err=%v", err)  
676 - resp.Message = "服务器错误"  
677 - resp.Code = ERROR_SRV_ERROR  
678 - break  
679 - }  
680 - //首先判断一下存钱罐的金币是否足够  
681 - if rdata.Goldnum > uinfo.GuanGold {  
682 - logger.Error("guangold not enough rdata.Goldnum=%v uinfo.GuanGold=%v", rdata.Goldnum, uinfo.GuanGold)  
683 - resp.Message = "存钱罐金币不足"  
684 - resp.Code = ERROR_GUANGOLD_NOTENOUGH  
685 - break  
686 - }  
687 -  
688 - //判断一下是否满足提取条件  
689 - totalcnt := uinfo.CalcTotalCnt()  
690 - if totalcnt <= uinfo.GetFromGuanCnt {  
691 - logger.Error("guancnt not enough ")  
692 - resp.Message = "存钱罐次数不足"  
693 - resp.Code = ERROR_GUANCNTNOTENOUGH  
694 - break  
695 - }  
696 -  
697 - //  
698 - mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv)  
699 - if mcfg == nil {  
700 - logger.Error("GetMoneyBoxCfg failed err=%v", err)  
701 - resp.Message = "获取配置失败"  
702 - resp.Code = ERROR_GETCONFIG_FAILED  
703 - break  
704 - }  
705 -  
706 - if rdata.Goldnum < mcfg.Min || rdata.Goldnum > mcfg.Max {  
707 - logger.Error("GetMoneyBoxCfg failed err=%v", err)  
708 - resp.Message = "从存钱罐提取金币不满足限制"  
709 - resp.Code = ERROR_DRAWGUAN_FAILED  
710 - break  
711 - }  
712 -  
713 - //todo 此处需要调佣SDK接口通知金币变化  
714 - goldnum, err := AddCoinToSdk(uuid, rdata.Goldnum, rdata.Gameid, rdata.Channel, 100)  
715 - if err != nil {  
716 - logger.Error("Drawgold failed err=%v", err)  
717 - resp.Message = "从存钱罐提取金币失败了"  
718 - resp.Code = ERROR_DRAWGOLD_FAILED  
719 - break  
720 - }  
721 -  
722 - uinfo.GetFromGuanCnt++  
723 - uinfo.Achieve.SumGetGuan++  
724 - uinfo.GuanGold = uinfo.GuanGold - rdata.Goldnum  
725 - uinfo.RealGold = goldnum  
726 - //uinfo.RealGold += rdata.Goldnum  
727 -  
728 - resp.Data.Guangold = uinfo.GuanGold  
729 - resp.Data.Wallgold = uinfo.RealGold  
730 - resp.Data.Totalfetchcnt = uinfo.Achieve.SumGetGuan  
731 -  
732 - SaveUserInfo(uinfo)  
733 -  
734 - resp.Code = ERROR_OK  
735 - break  
736 - }  
737 -  
738 - //回包  
739 - respstr, _ := json.Marshal(&resp)  
740 - fmt.Fprint(w, string(respstr))  
741 -  
742 -}  
743 -  
744 -func HandlerGetguangold(w http.ResponseWriter, data string, uuid int) {  
745 - SetHeader(w)  
746 - var resp GetguangoldResp  
747 - resp.Code = 0  
748 - var rdata GetguangoldReq  
749 - err := json.Unmarshal([]byte(data), &rdata)  
750 - for {  
751 - if err != nil {  
752 - logger.Info("json decode HandlerGetguangold data failed:%v,for:%v", err, data)  
753 - resp.Message = "json解析错误"  
754 - resp.Code = ERROR_JSONUNMASH_ERROR  
755 - break  
756 - }  
757 -  
758 - uinfo, err := GetUserInfo(uuid)  
759 - if err != nil || uinfo == nil {  
760 - logger.Error("redis failed err=%v", err)  
761 - resp.Message = "服务器错误"  
762 - resp.Code = ERROR_SRV_ERROR  
763 - break  
764 - }  
765 -  
766 - mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv)  
767 - if mcfg == nil {  
768 - logger.Error("GetMoneyBoxCfg failed err=%v", err)  
769 - resp.Message = "获取配置失败"  
770 - resp.Code = ERROR_GETCONFIG_FAILED  
771 - break  
772 - }  
773 -  
774 - uinfo.GuanGold += rdata.Goldnum  
775 - if uinfo.GuanGold >= mcfg.Max {  
776 - uinfo.GuanGold = mcfg.Max  
777 - }  
778 -  
779 - resp.Data.Guangold = uinfo.GuanGold  
780 - //uinfo.Task.GetGuanGold += rdata.Goldnum  
781 - uinfo.Task.GetGuanGold++  
782 -  
783 - SaveUserInfo(uinfo)  
784 -  
785 - resp.Code = ERROR_OK  
786 - break  
787 - }  
788 -  
789 - //回包  
790 - respstr, _ := json.Marshal(&resp)  
791 - fmt.Fprint(w, string(respstr))  
792 -  
793 -}  
794 -  
795 -func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) {  
796 - SetHeader(w)  
797 - var resp GetuserdataResp  
798 - resp.Code = 0  
799 - var rdata GetuserdataReq  
800 - err := json.Unmarshal([]byte(data), &rdata)  
801 - for {  
802 - if err != nil {  
803 - logger.Info("json decode HandlerGetuserdata data failed:%v,for:%v", err, data)  
804 - resp.Message = "json解析错误"  
805 - resp.Code = ERROR_JSONUNMASH_ERROR  
806 - break  
807 - }  
808 -  
809 - data, err := GetUserInfo(uuid)  
810 - if err != nil || data == nil {  
811 - resp.Code = ERROR_SRV_ERROR  
812 - resp.Message = "ERROR_SRV_ERROR"  
813 - break  
814 - }  
815 -  
816 - //此处处理一下从sdk拉取钱包金币数量  
817 - gold, err := GetCoinFromSdk(uuid, rdata.Gameid, rdata.Channel)  
818 - if err == nil {  
819 - data.RealGold = gold  
820 - } else {  
821 - logger.Error("GetCoinFromSdk failed err=%v", err)  
822 - }  
823 -  
824 - resp.Data.Walletgold = data.RealGold  
825 - resp.Data.Guangold = data.GuanGold  
826 - resp.Data.Leftredbagcnt = data.WatchAddsTime  
827 - resp.Data.Userexp = data.Exp  
828 - resp.Data.Userlv = data.Lv  
829 - resp.Data.Leftfreeredbag = data.LeftFreeRB  
830 - SaveUserInfo(data)  
831 -  
832 - resp.Code = ERROR_OK  
833 - break  
834 - }  
835 -  
836 - //回包  
837 - respstr, _ := json.Marshal(&resp)  
838 - fmt.Fprint(w, string(respstr))  
839 -  
840 - logger.Info("###HandlerLogin###rdata:%v", string(respstr))  
841 -}  
842 -  
843 -func HandlerLogin(w http.ResponseWriter, data string, uuid int) {  
844 - SetHeader(w)  
845 - var resp UserLoginResp  
846 - resp.Code = 0  
847 - var rdata UserLoginReq  
848 - err := json.Unmarshal([]byte(data), &rdata)  
849 - for {  
850 - if err != nil {  
851 - logger.Info("json decode HandlerLogin data failed:%v,for:%v", err, data)  
852 - resp.Message = "json解析错误"  
853 - resp.Code = ERROR_JSONUNMASH_ERROR  
854 - break  
855 - }  
856 -  
857 - //先判断一下是否是新用户  
858 - isexist, err := redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, strconv.Itoa(uuid))  
859 - if err != nil {  
860 - logger.Error("redis failed err=%v", err)  
861 - resp.Message = "服务器错误"  
862 - resp.Code = ERROR_SRV_ERROR  
863 - break  
864 - }  
865 -  
866 - if !isexist {  
867 - //不存在  
868 - //属于新登录的玩家数据  
869 - err = InitUserInfo(&rdata, &resp, uuid)  
870 - } else {  
871 - //已经登陆过了 需要获取玩家数据  
872 - err = GetUserData(uuid, &rdata, &resp)  
873 - }  
874 -  
875 - if err != nil {  
876 - logger.Error("redis failed err=%v", err)  
877 - resp.Message = "服务器错误"  
878 - resp.Code = ERROR_SRV_ERROR  
879 - break  
880 - }  
881 -  
882 - resp.Code = ERROR_OK  
883 - break  
884 - }  
885 -  
886 - //回包  
887 - respstr, _ := json.Marshal(&resp)  
888 - fmt.Fprint(w, string(respstr))  
889 -  
890 - logger.Info("###HandlerLogin###rdata:%v", string(respstr))  
891 -}