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