Commit 8f499beed8525b0bd193104cfa5b19f25373186d
1 parent
f39958c2
Exists in
master
and in
4 other branches
任务相关接口
Showing
5 changed files
with
166 additions
and
2 deletions
Show diff stats
src/HttpServer/logic/constdef.go
| 1 | package logic | 1 | package logic |
| 2 | 2 | ||
| 3 | +//任务成就类型枚举 | ||
| 4 | +var ( | ||
| 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 | + | ||
| 3 | var ( | 12 | var ( |
| 4 | WETCHATAPPID="wx572a2a5ec4538f33" | 13 | WETCHATAPPID="wx572a2a5ec4538f33" |
| 5 | WETCHATSERCRT = "b31e2e7406af88fe7395cd178bdb64fc" | 14 | WETCHATSERCRT = "b31e2e7406af88fe7395cd178bdb64fc" |
src/HttpServer/logic/datadef.go
| @@ -107,14 +107,38 @@ type GetcashrecordResp struct { | @@ -107,14 +107,38 @@ type GetcashrecordResp struct { | ||
| 107 | Data WithDrawList `json:"data"` | 107 | Data WithDrawList `json:"data"` |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | +type OnlinentfResp struct { | ||
| 111 | + Code int `json:"code"` | ||
| 112 | + Message string `json:"message"` | ||
| 113 | +} | ||
| 114 | + | ||
| 115 | +type UpdatetaskReq struct { | ||
| 116 | + Tasktype int `json:"tasktype"` | ||
| 117 | + Value int `json:"value"` | ||
| 118 | +} | ||
| 119 | + | ||
| 120 | +type UpdatetaskResp struct { | ||
| 121 | + Code int `json:"code"` | ||
| 122 | + Message string `json:"message"` | ||
| 123 | +} | ||
| 124 | + | ||
| 110 | //********************************************************************************************************** | 125 | //********************************************************************************************************** |
| 111 | 126 | ||
| 127 | +//其中提取次数和当日登陆在userdata中记录 | ||
| 112 | type TaskInfo struct { | 128 | type TaskInfo struct { |
| 113 | - | 129 | + OnlineMin int //在线分钟数 |
| 130 | + PassLevel int //通过关卡数 | ||
| 131 | + UseItemCnt int //使用道具次数 | ||
| 132 | + GetRedbagCnt int //领取红包次数 | ||
| 133 | + GetGuanGold int //收集金币数 | ||
| 114 | } | 134 | } |
| 115 | 135 | ||
| 136 | +// | ||
| 116 | type AchieveMentInfo struct { | 137 | type AchieveMentInfo struct { |
| 117 | - | 138 | + WatchAdsCnt int //观看广告数 |
| 139 | + KillStar int //消除星星数 | ||
| 140 | + SumGetGuan int //存钱罐累计提取 | ||
| 141 | + SumUseItemCnt int //使用道具次数累计 | ||
| 118 | } | 142 | } |
| 119 | 143 | ||
| 120 | 144 |
src/HttpServer/logic/function.go
| @@ -138,6 +138,12 @@ func (u *UserData) HandlePassDay() { | @@ -138,6 +138,12 @@ func (u *UserData) HandlePassDay() { | ||
| 138 | u.WatchAddsTime = WATCH_ADD_DAY_LIMIT | 138 | u.WatchAddsTime = WATCH_ADD_DAY_LIMIT |
| 139 | //todo 重置任务相关的数据 | 139 | //todo 重置任务相关的数据 |
| 140 | u.GetFromGuanCnt = 0 | 140 | u.GetFromGuanCnt = 0 |
| 141 | + | ||
| 142 | + u.Task.GetGuanGold = 0 | ||
| 143 | + u.Task.GetRedbagCnt = 0 | ||
| 144 | + u.Task.OnlineMin = 0 | ||
| 145 | + u.Task.PassLevel = 0 | ||
| 146 | + u.Task.UseItemCnt = 0 | ||
| 141 | } | 147 | } |
| 142 | 148 | ||
| 143 | u.LastLoginTime = int(nowtime.Unix()) | 149 | u.LastLoginTime = int(nowtime.Unix()) |
| @@ -156,6 +162,11 @@ func GetUserData(uuid int, resp *UserLoginResp) error{ | @@ -156,6 +162,11 @@ func GetUserData(uuid int, resp *UserLoginResp) error{ | ||
| 156 | //此处要处理一下跨天逻辑 | 162 | //此处要处理一下跨天逻辑 |
| 157 | data.HandlePassDay() | 163 | data.HandlePassDay() |
| 158 | 164 | ||
| 165 | + //此处处理一下从sdk拉取钱包金币数量 | ||
| 166 | + //todo | ||
| 167 | + | ||
| 168 | + SaveUserInfo(data) | ||
| 169 | + | ||
| 159 | resp.Data.Walletgold = data.RealGold | 170 | resp.Data.Walletgold = data.RealGold |
| 160 | resp.Data.Leftads = data.WatchAddsTime | 171 | resp.Data.Leftads = data.WatchAddsTime |
| 161 | resp.Data.Guangold = data.GuanGold | 172 | resp.Data.Guangold = data.GuanGold |
src/HttpServer/logic/httpserver.go
| @@ -46,10 +46,57 @@ func startServerHttpServe() { | @@ -46,10 +46,57 @@ func startServerHttpServe() { | ||
| 46 | http.HandleFunc("/eliminatestar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口 | 46 | http.HandleFunc("/eliminatestar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口 |
| 47 | http.HandleFunc("/eliminatestar/getcash", Getcash) //提现 | 47 | http.HandleFunc("/eliminatestar/getcash", Getcash) //提现 |
| 48 | http.HandleFunc("/eliminatestar/getcashrecord", Getcashrecord) //提现记录列表 | 48 | http.HandleFunc("/eliminatestar/getcashrecord", Getcashrecord) //提现记录列表 |
| 49 | + http.HandleFunc("/eliminatestar/onlinentf", Onlinentf) //在线通知 | ||
| 50 | + http.HandleFunc("/eliminatestar/updatetaskandachieve", Updatetaskandachieve) //在线通知 | ||
| 51 | + | ||
| 52 | + | ||
| 49 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) | 53 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
| 50 | CheckErr(err) | 54 | CheckErr(err) |
| 51 | } | 55 | } |
| 52 | 56 | ||
| 57 | +func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) { | ||
| 58 | + | ||
| 59 | + Uuid := 0 | ||
| 60 | + if len(r.Header) > 0 { | ||
| 61 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + if Uuid == 0 { | ||
| 65 | + SetHeader(w) | ||
| 66 | + //logger.Error("Uuid is nil!") | ||
| 67 | + return | ||
| 68 | + } | ||
| 69 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 70 | + r.Body.Close() | ||
| 71 | + | ||
| 72 | + s := string(result) | ||
| 73 | + logger.Info("Onlinentf , body:%v,uuid=%v", s, Uuid) | ||
| 74 | + | ||
| 75 | + HandlerUpdatetaskandachieve(w, s, Uuid) | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | + | ||
| 79 | +func Onlinentf(w http.ResponseWriter, r *http.Request) { | ||
| 80 | + | ||
| 81 | + Uuid := 0 | ||
| 82 | + if len(r.Header) > 0 { | ||
| 83 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + if Uuid == 0 { | ||
| 87 | + SetHeader(w) | ||
| 88 | + //logger.Error("Uuid is nil!") | ||
| 89 | + return | ||
| 90 | + } | ||
| 91 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 92 | + r.Body.Close() | ||
| 93 | + | ||
| 94 | + s := string(result) | ||
| 95 | + logger.Info("Onlinentf , body:%v,uuid=%v", s, Uuid) | ||
| 96 | + | ||
| 97 | + HandlerOnlinentf(w, s, Uuid) | ||
| 98 | +} | ||
| 99 | + | ||
| 53 | func Getcashrecord(w http.ResponseWriter, r *http.Request) { | 100 | func Getcashrecord(w http.ResponseWriter, r *http.Request) { |
| 54 | 101 | ||
| 55 | Uuid := 0 | 102 | Uuid := 0 |
src/HttpServer/logic/logic.go
| @@ -158,7 +158,80 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | @@ -158,7 +158,80 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | ||
| 158 | 158 | ||
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | +func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { | ||
| 162 | + SetHeader(w) | ||
| 163 | + var resp UpdatetaskResp | ||
| 164 | + resp.Code = 0 | ||
| 165 | + var rdata UpdatetaskReq | ||
| 166 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 167 | + for { | ||
| 168 | + | ||
| 169 | + if err != nil { | ||
| 170 | + logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data) | ||
| 171 | + resp.Message = "json解析错误" | ||
| 172 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
| 173 | + break | ||
| 174 | + } | ||
| 175 | + uinfo,err := GetUserInfo(uuid) | ||
| 176 | + if err != nil || uinfo == nil{ | ||
| 177 | + logger.Error("redis failed err=%v", err) | ||
| 178 | + resp.Message = "服务器错误" | ||
| 179 | + resp.Code = ERROR_SRV_ERROR | ||
| 180 | + break | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + switch rdata.Tasktype { | ||
| 184 | + case TASKTYPE_PASSLEVEL: | ||
| 185 | + uinfo.Task.PassLevel += rdata.Value | ||
| 186 | + case TASKTYPE_GETREDBAG: | ||
| 187 | + uinfo.Task.GetRedbagCnt += rdata.Value | ||
| 188 | + case TASKTYPE_WATCHADS: | ||
| 189 | + uinfo.Achieve.WatchAdsCnt += rdata.Value | ||
| 190 | + case TASKTYPE_KILLSTAR: | ||
| 191 | + uinfo.Achieve.KillStar += rdata.Value | ||
| 192 | + case TASKTYPE_USEITEM: | ||
| 193 | + uinfo.Task.UseItemCnt += rdata.Value | ||
| 194 | + uinfo.Achieve.SumUseItemCnt += rdata.Value | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + SaveUserInfo(uinfo) | ||
| 198 | + resp.Code = ERROR_OK | ||
| 199 | + break | ||
| 200 | + } | ||
| 161 | 201 | ||
| 202 | + //回包 | ||
| 203 | + respstr, _ := json.Marshal(&resp) | ||
| 204 | + fmt.Fprint(w, string(respstr)) | ||
| 205 | + | ||
| 206 | +} | ||
| 207 | + | ||
| 208 | +func HandlerOnlinentf(w http.ResponseWriter, data string, uuid int) { | ||
| 209 | + SetHeader(w) | ||
| 210 | + var resp OnlinentfResp | ||
| 211 | + resp.Code = 0 | ||
| 212 | + for { | ||
| 213 | + | ||
| 214 | + uinfo,err := GetUserInfo(uuid) | ||
| 215 | + if err != nil || uinfo == nil{ | ||
| 216 | + logger.Error("redis failed err=%v", err) | ||
| 217 | + resp.Message = "服务器错误" | ||
| 218 | + resp.Code = ERROR_SRV_ERROR | ||
| 219 | + break | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + uinfo.Task.OnlineMin ++ | ||
| 223 | + | ||
| 224 | + SaveUserInfo(uinfo) | ||
| 225 | + | ||
| 226 | + resp.Code = ERROR_OK | ||
| 227 | + break | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + //回包 | ||
| 231 | + respstr, _ := json.Marshal(&resp) | ||
| 232 | + fmt.Fprint(w, string(respstr)) | ||
| 233 | + | ||
| 234 | +} | ||
| 162 | 235 | ||
| 163 | func HandlerGetcashrecord(w http.ResponseWriter, data string, uuid int) { | 236 | func HandlerGetcashrecord(w http.ResponseWriter, data string, uuid int) { |
| 164 | SetHeader(w) | 237 | SetHeader(w) |