package logic import ( "HttpServer/conf" "HttpServer/redishandler" "common/logger" "common/redis" "encoding/json" "fmt" "io/ioutil" "strconv" "time" //"log" "net/http" ) //定时处理倒计时 func StartHttpTicker() { for { now := time.Now() //获取当前时间,放到now里面,要给next用 next := now.Add(time.Hour * 24) //通过now偏移24小时 next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location()) //获取下一个凌晨的日期 t := time.NewTimer(next.Sub(now))//计算当前时间到凌晨的时间间隔,设置一个定时器 <-t.C redishandler.GetRedisClient().Delete(redis.USER_SCORE_RANK) logger.Info("Del USER_SCORE_RANK success!") } } func StartHttpServe() { startServerHttpServe() } //just for test func Testsendhttp() { } func CheckErr(err error) { if err != nil { panic(err) } } func startServerHttpServe() { //------------------------------------------------------------- //http.HandleFunc("/catcafe/ClearData", ClearData) //情况账号的测试接口 //http.HandleFunc("/catcafe/AddWhiteList", AddWhiteList) //情况账号的测试接口 //http.HandleFunc("/catcafe/QueryAllAccount", QueryAllAccount) //查询所有账号的等级信息等数据 //------------------------------------------------------------- http.HandleFunc("/sixstar/test", Testapi) //测试接口 http.HandleFunc("/sixstar/addcoin", Addcoin) //测试接口 http.HandleFunc("/sixstar/clear", ClearData) //清除账号 //---------------------------------------------------------------------------------------- http.HandleFunc("/sixstar/login", UserLogin) //登录 http.HandleFunc("/sixstar/getuserdata", Getuserdata) //获取玩家数据 http.HandleFunc("/sixstar/watchads", Watchads) //观看激励视频 http.HandleFunc("/sixstar/queryguaninfo", Queryguaninfo) //获取存钱罐数据 http.HandleFunc("/sixstar/getguangold", Getguangold) //获取金币到存钱罐 http.HandleFunc("/sixstar/drawguangold", Drawguangold) //提取存钱罐的金币到个人钱包 http.HandleFunc("/sixstar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口 http.HandleFunc("/sixstar/getcash", Getcash) http.HandleFunc("/sixstar/getcashwechat", Getcashwechat) //提现//提现 http.HandleFunc("/sixstar/getcashrecord", Getcashrecord) //提现记录列表 http.HandleFunc("/sixstar/onlinentf", Onlinentf) //在线通知 http.HandleFunc("/sixstar/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度 http.HandleFunc("/sixstar/querytaskinfo", Querytaskinfo) //拉取任务或者成就列表 http.HandleFunc("/sixstar/gettaskreward", Gettaskreward) //领取任务或者成就奖励 http.HandleFunc("/sixstar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励 http.HandleFunc("/sixstar/querysigndata", Querysigndata) //获取签到数据 http.HandleFunc("/sixstar/dosign", Usersign) //玩家签到 http.HandleFunc("/sixstar/fetchredbag", Fetchredbag) //领取红包 http.HandleFunc("/sixstar/savadata", Savadata) //保存数据 http.HandleFunc("/sixstar/getdata", Getdata) //获取数据 http.HandleFunc("/sixstar/uploadscore", Uploadscore) //上报当天积分 http.HandleFunc("/sixstar/queryrankinfo", Queryrankinfo) //获取排行榜信息 http.HandleFunc("/sixstar/turntablebag", Turntablebag) //转盘红包 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) CheckErr(err) } func ClearData(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("ClearData , body:%v,uuid=%v", s, Uuid) var rdata GetuserdataReq json.Unmarshal(result, &rdata) rkey := strconv.Itoa(Uuid) + rdata.Channel redishandler.GetRedisClient().HDel(redis.USER_DATA_KEY, rkey) redishandler.GetRedisClient().HDel(redis.USER_TASKINFO_LIST, rkey) redishandler.GetRedisClient().HDel(redis.USER_ACHIEVEMENTINFO_LIST, rkey) redishandler.GetRedisClient().HDel(redis.USER_WITHDRAW_RECORDLIST, rkey) fmt.Fprint(w, "success!") } func ReadNumUpload(w http.ResponseWriter, r *http.Request) { /*Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return }*/ result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("ReadNumUpload , body:%v,uuid=%v", s) HandlerReadNumUpload(w, s) } func Savadata(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Savadata , body:%v,uuid=%v", s, Uuid) HandlerSavadata(w, s, Uuid) } func Turntablebag(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Turntablebag , body:%v,uuid=%v", s, Uuid) HandlerTurntablebag(w, s, Uuid) } func Queryrankinfo(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Queryrankinfo , body:%v,uuid=%v", s, Uuid) HandlerQueryrankinfo(w, s, Uuid) } func Uploadscore(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Uploadscore , body:%v,uuid=%v", s, Uuid) HandlerUploadscore(w, s, Uuid) } func Getdata(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getdata , body:%v,uuid=%v", s, Uuid) HandlerGetdata(w, s, Uuid) } func Fetchredbag(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Fetchredbag , body:%v,uuid=%v", s, Uuid) HandlerFetchredbag(w, s, Uuid) } func Usersign(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Usersign , body:%v,uuid=%v", s, Uuid) HandlerUsersign(w, s, Uuid) } func Querysigndata(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Querysigndata , body:%v,uuid=%v", s, Uuid) HandlerQuerysigndata(w, s, Uuid) } func Fetchreadgold(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Fetchreadgold , body:%v,uuid=%v", s, Uuid) HandlerFetchreadgold(w, s, Uuid) } func QueryReadGold(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("QueryReadGold , body:%v,uuid=%v", s, Uuid) HandlerQueryReadGold(w, s, Uuid) } func Addcoin(w http.ResponseWriter, r *http.Request) { SetHeader(w) query := r.URL.Query() uuid := query.Get("uuid") //需要加上渠道号 460012 channel := query.Get("channel") uuidnum, _ := strconv.Atoi(uuid) uniqueuuid := uuid + channel uinfo, err := GetUserInfo(uniqueuuid) if err != nil || uinfo == nil { logger.Error("redis failed err=%v", err) fmt.Fprint(w, "failed") return } //调用sdk gold, _, err := AddCoinToSdk(uuidnum, 1000, "1001", "SA002", 99) if err != nil { logger.Error("test ddt! err=%v", err) } uinfo.RealGold = gold } func Testapi(w http.ResponseWriter, r *http.Request) { SetHeader(w) type TesaApiData struct { Type int `json:"type"` //1金币 2经验 3存钱罐次数 6累计登录天数 Value int `json:"value"` Gameid string `json:"gameid"` Channel string `json:"channel"` } Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Testapi , body:%v,uuid=%v", s, Uuid) var rdata TesaApiData err := json.Unmarshal([]byte(s), &rdata) if err != nil { logger.Info("json decode Testapi data failed:%v,for:%v", err, s) fmt.Fprint(w, "failed") return } //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 uniqueuuid := strconv.Itoa(Uuid) + rdata.Channel uinfo, err := GetUserInfo(uniqueuuid) if err != nil || uinfo == nil { logger.Error("redis failed err=%v", err) fmt.Fprint(w, "failed") return } if rdata.Type == 1 { //金币 uinfo.RealGold += rdata.Value //调用sdk gold, _, err := AddCoinToSdk(Uuid, rdata.Value, rdata.Gameid, rdata.Channel, 99) if err != nil { logger.Error("test ddt! err=%v", err) } uinfo.RealGold = gold } if rdata.Type == 2 { uinfo.Exp += rdata.Value } if rdata.Type == 3 { uinfo.GetFromGuanCnt += rdata.Value } if rdata.Type == 4 { uinfo.Lv += rdata.Value } if rdata.Type == 5 { uinfo.IsSignToday = 0 if uinfo.SignSum == 7 { uinfo.SignSum = 0 uinfo.SignRound++ } } if rdata.Type == 6 { uinfo.SumLoginDay += rdata.Value } err = SaveUserInfo(uinfo, uniqueuuid) if err != nil { logger.Error("SaveUserInfo err=%v", err) } fmt.Fprint(w, "success") } func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid) HandlerGetnewlevelreward(w, s, Uuid) } func Gettaskreward(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Gettaskreward , body:%v,uuid=%v", s, Uuid) HandlerGettaskreward(w, s, Uuid) } func Querytaskinfo(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Querytaskinfo , body:%v,uuid=%v", s, Uuid) HandlerQuerytaskinfo(w, s, Uuid) } func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Updatetaskandachieve , body:%v,uuid=%v", s, Uuid) HandlerUpdatetaskandachieve(w, s, Uuid) } func Onlinentf(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Onlinentf , body:%v,uuid=%v", s, Uuid) HandlerOnlinentf(w, s, Uuid) } func Getcashrecord(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getcashrecord , body:%v,uuid=%v", s, Uuid) HandlerGetcashrecord(w, s, Uuid) } func Getcashwechat(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getcashwechat , body:%v,uuid=%v", s, Uuid) HandlerGetcashwechat(w, s, Uuid) } func Getcash(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getcash , body:%v,uuid=%v", s, Uuid) HandlerGetcash(w, s, Uuid) } func Querdrawinfo(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Querdrawinfo , body:%v,uuid=%v", s, Uuid) HandlerQuerdrawinfo(w, s, Uuid) } func Drawguangold(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Drawguangold , body:%v,uuid=%v", s, Uuid) HandlerDrawguangold(w, s, Uuid) } func Getguangold(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getguangold , body:%v,uuid=%v", s, Uuid) HandlerGetguangold(w, s, Uuid) } func Queryguaninfo(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Queryguaninfo , body:%v,uuid=%v", s, Uuid) HandlerQueryguaninfo(w, s, Uuid) } func Watchads(w http.ResponseWriter, r *http.Request) { //这个接口作废 logger.Info("Watchads is not used") SetHeader(w) return Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Watchads , body:%v,uuid=%v", s, Uuid) HandlerWatchads(w, s, Uuid) } func UserLogin(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("UserLogin , body:%v,uuid=%v", s, Uuid) HandlerLogin(w, s, Uuid) } func Getuserdata(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) } if Uuid == 0 { SetHeader(w) //logger.Error("Uuid is nil!") return } result, _ := ioutil.ReadAll(r.Body) r.Body.Close() s := string(result) logger.Info("Getuserdata , body:%v,uuid=%v", s, Uuid) HandlerGetuserdata(w, s, Uuid) }