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 | -} | ... | ... |