Commit bfc50df58f016d95692bec35be2d163a7a822883
1 parent
71894859
Exists in
master
提交相关修改
Showing
7 changed files
with
43 additions
and
3018 deletions
Show diff stats
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(¶ms) | |
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(¶ms) | |
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(¶ms) | |
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 | -} | ... | ... |