Commit bfc50df58f016d95692bec35be2d163a7a822883

Authored by 陆恒
1 parent 71894859
Exists in master

提交相关修改

src/HttpServer/jsonconf/jsonconf.go
... ... @@ -11,101 +11,61 @@ var (
11 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 15 Id int `json:"id"`
55 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 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 36 func GetJsonConf() *GameConfig {
80 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 69 rt = &val
110 70 break
111 71 }
... ... @@ -125,79 +85,27 @@ func file_get_contents(path string) ([]byte, error) {
125 85 func LoadJsonConf() error {
126 86 //pconf := &GameConfig{}
127 87 //加载第一个配置
128   - path := "../jsonconf/AchievementConfig.json"
  88 + path := "../jsonconf/GoldChestConfig.json"
129 89 content, err := file_get_contents(path)
130 90 if err != nil {
131 91 logger.Info("loadJsonConf failed1,err=%v", err)
132 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 96 if err != nil {
189 97 logger.Info("loadJsonConf failed1,err=%v", err)
190 98 return err
191 99 }
192 100  
193   - path = "../jsonconf/WithdrawConfig.json"
  101 + path = "../jsonconf/GoldGunsConfig.json"
194 102 content, err = file_get_contents(path)
195 103 if err != nil {
196 104 logger.Info("loadJsonConf failed1,err=%v", err)
197 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 109 if err != nil {
202 110 logger.Info("loadJsonConf failed1,err=%v", err)
203 111 return err
... ... @@ -210,7 +118,7 @@ func LoadJsonConf() error {
210 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 122 if err != nil {
215 123 logger.Info("loadJsonConf failed1,err=%v", err)
216 124 return err
... ...
src/HttpServer/logic/constdef.go
1 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 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 1 package logic
2 2  
3 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 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 5 func SetHeader(w http.ResponseWriter) {
33 6 w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
34 7 w.Header().Set("Content-Type", "application/json")
35 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 5 "HttpServer/redishandler"
6 6 "common/logger"
7 7 "common/redis"
8   - "encoding/json"
9 8 "fmt"
10 9 "io/ioutil"
11 10 "strconv"
... ... @@ -44,22 +43,6 @@ func startServerHttpServe() {
44 43 http.HandleFunc("/eliminatestar/test", Testapi) //测试接口
45 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 47 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
65 48 CheckErr(err)
... ... @@ -91,124 +74,12 @@ func ClearData(w http.ResponseWriter, r *http.Request) {
91 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 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 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 84 Uuid := 0
214 85 if len(r.Header) > 0 {
... ... @@ -227,282 +98,4 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) {
227 98 logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid)
228 99  
229 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 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   -}
... ...