From b8745176833ba520df0842f98802097bcac11e0f Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Fri, 12 Jun 2020 11:34:11 +0800 Subject: [PATCH] 提交 --- src/HttpServer/logic/constdef.go | 1 + src/HttpServer/logic/datadef.go | 35 +++++++++++++++++++++++------------ src/HttpServer/logic/function.go | 39 +++++++++++++++++++++++++++++++++------ src/HttpServer/logic/httpserver.go | 89 ++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------- src/HttpServer/logic/logic.go | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- 5 files changed, 287 insertions(+), 68 deletions(-) diff --git a/src/HttpServer/logic/constdef.go b/src/HttpServer/logic/constdef.go index bfc6d47..c42fd93 100644 --- a/src/HttpServer/logic/constdef.go +++ b/src/HttpServer/logic/constdef.go @@ -58,4 +58,5 @@ const ( DRAWTICKETNUM = 5 //每日送的抽奖券次数 DRAWTICKETGETLIMIT = 5 //每日抽奖券获得次数 DRAWTICKETNUMLIMIT = 10 //抽奖券上限 + WAREHOUSELIMIT = 15 //仓库容量上限 ) diff --git a/src/HttpServer/logic/datadef.go b/src/HttpServer/logic/datadef.go index 880ce05..22e8db9 100644 --- a/src/HttpServer/logic/datadef.go +++ b/src/HttpServer/logic/datadef.go @@ -331,10 +331,15 @@ type DoBuyCatResp struct { Data DoBuyCatData `json:"data"` } +type QueryWareHouseData struct { + CatList []int `json:"catList"` + CatCapacity int `json:"catCapacity"` +} + type QueryWareHouseResp struct { - Code int `json:"code"` - Message string `json:"message"` - Data []DataDesc `json:"data"` + Code int `json:"code"` + Message string `json:"message"` + Data QueryWareHouseData `json:"data"` } type QueryAutomergeResp struct { @@ -347,21 +352,24 @@ type QueryAutomergeResp struct { } type PutWareHouseReq struct { - Pos int `json:"pos"` + Position int `json:"position"` +} +type PutWareHouseData struct { + Coin DoBuyCatCoin `json:"coin"` } type PutWareHouseResp struct { - Code int `json:"code"` - Message string `json:"message"` - Warepos int `json:"warepos"` + Code int `json:"code"` + Message string `json:"message"` + Data PutWareHouseData `json:"data"` } type TakeWareHouseReq struct { - Warepos int `json:"warepos"` + CatId int `json:"catId"` } type TakeWareHouseResp struct { - Code int `json:"code"` - Message string `json:"message"` - Pos int `json:"pos"` + Code int `json:"code"` + Message string `json:"message"` + Data PutWareHouseData `json:"data"` } type CatRoomDesc struct { @@ -665,7 +673,10 @@ type UserData struct { //仓库数据详情 type WareHouseDesc struct { - Warelv int //红包猫等级 对应表id + Warelv int //红包猫等级 对应表id + RedPacket float32 + Time int + StartTime int } //玩家仓库数据 diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index ab33ad4..6b5f11c 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -494,7 +494,7 @@ func MergeRedBagCat(uinfo *UserData, pos int) int { tmprate += int(v.Rate * 100 / sumrate) if tmprate >= randnum { uinfo.PosInfo[pos].Position = pos - uinfo.PosInfo[pos].Cat = 100 + v.Id + uinfo.PosInfo[pos].Cat = REDCATIDEXTRA + v.Id if v.Id == 13 { uinfo.PosInfo[pos].Time = 10 * 60 uinfo.PosInfo[pos].StartTime = int(time.Now().Unix()) @@ -544,7 +544,7 @@ func (udata *UserData) CalcGoldRate() int64 { return 0 } for _, v := range udata.PosInfo { - if v.Cat > 0 && v.Cat < 100 { + if v.Cat > 0 && v.Cat < REDCATIDEXTRA { //有猫存在的要计算一下 //非红包猫 for _, vv := range jsonconf.GetJsonConf().CatConfig { @@ -556,7 +556,7 @@ func (udata *UserData) CalcGoldRate() int64 { } } - if v.Cat > 100 { + if v.Cat > REDCATIDEXTRA { //红包猫 需要判断是否产金币 rcfg := jsonconf.GetRedCatConfig(v.Cat) if rcfg != nil { @@ -585,14 +585,14 @@ func (udata *UserData) CalcGoldRate() int64 { if v.Warelv == 0 { continue } - rcfg := jsonconf.GetRedCatConfig(v.Warelv + 100) + rcfg := jsonconf.GetRedCatConfig(v.Warelv + REDCATIDEXTRA) if rcfg != nil { if rcfg.Is_37 != 0 { onerate, _ := strconv.ParseInt(cfg37.Gold_get, 10, 64) sumrate += onerate } } else { - logger.Error("GetRedCatConfig failed lv=%v", v.Warelv+100) + logger.Error("GetRedCatConfig failed lv=%v", v.Warelv+REDCATIDEXTRA) } } @@ -631,7 +631,7 @@ func (u *UserData) CalcHigestCatName() string { return "" } for _, val := range wdata.Info { - reallv := val.Warelv + 100 + reallv := val.Warelv + REDCATIDEXTRA if higestlv < reallv { higestlv = reallv } @@ -688,3 +688,30 @@ func (u *UserData) GetRedCatIdList() []int { } } + +//尝试将合成界面的猫放入仓库 返回位置索引 -1表示仓库已满放入失败 +func (u *UserData) tryPutToWareHouse(info *UserWareHouseData, pos int, uuid int) int { + rtval := -1 + for k, v := range info.Info { + if v.Warelv == 0 { + rtval = k + info.Info[k].Warelv = u.PosInfo[pos].Cat + info.Info[k].Time = u.PosInfo[pos].Time + info.Info[k].RedPacket = u.PosInfo[pos].RedPacket + info.Info[k].StartTime = u.PosInfo[pos].StartTime + //v.Warelv = lv + + break + } + } + if rtval != -1 { + wares, _ := json.Marshal(info) + redishandler.GetRedisClient().HSet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid), string(wares)) + } + return rtval +} + +//根据id获得仓位位置 +func (w *UserWareHouseData) GetWarePosById(cid int) int { + return -1 +} diff --git a/src/HttpServer/logic/httpserver.go b/src/HttpServer/logic/httpserver.go index 697101f..1ecdb81 100644 --- a/src/HttpServer/logic/httpserver.go +++ b/src/HttpServer/logic/httpserver.go @@ -23,30 +23,33 @@ func CheckErr(err error) { } func startServerHttpServe() { - http.HandleFunc("/api/account/login", UserLogin) //登录 - http.HandleFunc("/api/home/buy", DoBuyCat) //购买猫 - http.HandleFunc("/api/home/synResource", GetUserData) //同步资源 - http.HandleFunc("/api/home/recvOfflineReward", GetOfflineReward) //领取离线奖励 - http.HandleFunc("/api/ranking/list", QueryPlayerRank) //排行榜 - http.HandleFunc("/api/home/index", GetMainPageInfo) //主页面 - http.HandleFunc("/api/home/adRate", AcclecteGold) //看广告加速 - http.HandleFunc("/api/home/shop", QueryBuyCat) //商店 - http.HandleFunc("/api/home/leftRateTimes", LeftRateTimes) //剩余看广告加速次数 - http.HandleFunc("/api/home/change", ExchangePos) //合成 - http.HandleFunc("/api/home/leftTimes", LeftTimes) //剩余看广告领取金币次数 - http.HandleFunc("/api/home/adCoin", WatchAdsGetGold) //看广告领取金币 - http.HandleFunc("/api/home/recvTimingReward", RecvTimingReward) //整点领取金币 - http.HandleFunc("/api/home/redCatList", RedCatList) //红包猫列表 此接口目前没有用到 暂时不实线 - http.HandleFunc("/api/home/recovery", Recovery) //回收猫 - http.HandleFunc("/api/home/compose", Compose) //五猫合成 - http.HandleFunc("/api/home/recvRedCat", RecvRedCat) //红包猫领取 - http.HandleFunc("/api/home/limitCatList", LimitCatList) //分红猫列表 - http.HandleFunc("/api/turntable/index", QueryTurntable) //转盘主页 - http.HandleFunc("/api/turntable/addTicket", AddTicket) //增加抽奖券 - http.HandleFunc("/api/turntable/multiple", Multiple) //增加倍数 - http.HandleFunc("/api/turntable/draw", DrawTable) //抽奖 - http.HandleFunc("/api/flop/leftTimes", QueryFlop) //剩余翻牌次数 - http.HandleFunc("/api/flop/flop", DoFlop) //进行翻牌 + http.HandleFunc("/api/account/login", UserLogin) //登录 + http.HandleFunc("/api/home/buy", DoBuyCat) //购买猫 + http.HandleFunc("/api/home/synResource", GetUserData) //同步资源 + http.HandleFunc("/api/home/recvOfflineReward", GetOfflineReward) //领取离线奖励 + http.HandleFunc("/api/ranking/list", QueryPlayerRank) //排行榜 + http.HandleFunc("/api/home/index", GetMainPageInfo) //主页面 + http.HandleFunc("/api/home/adRate", AcclecteGold) //看广告加速 + http.HandleFunc("/api/home/shop", QueryBuyCat) //商店 + http.HandleFunc("/api/home/leftRateTimes", LeftRateTimes) //剩余看广告加速次数 + http.HandleFunc("/api/home/change", ExchangePos) //合成 + http.HandleFunc("/api/home/leftTimes", LeftTimes) //剩余看广告领取金币次数 + http.HandleFunc("/api/home/adCoin", WatchAdsGetGold) //看广告领取金币 + http.HandleFunc("/api/home/recvTimingReward", RecvTimingReward) //整点领取金币 + http.HandleFunc("/api/home/redCatList", RedCatList) //红包猫列表 此接口目前没有用到 暂时不实线 + http.HandleFunc("/api/home/recovery", Recovery) //回收猫 + http.HandleFunc("/api/home/compose", Compose) //五猫合成 + http.HandleFunc("/api/home/recvRedCat", RecvRedCat) //红包猫领取 + http.HandleFunc("/api/home/limitCatList", LimitCatList) //分红猫列表 + http.HandleFunc("/api/turntable/index", QueryTurntable) //转盘主页 + http.HandleFunc("/api/turntable/addTicket", AddTicket) //增加抽奖券 + http.HandleFunc("/api/turntable/multiple", Multiple) //增加倍数 + http.HandleFunc("/api/turntable/draw", DrawTable) //抽奖 + http.HandleFunc("/api/flop/leftTimes", QueryFlop) //剩余翻牌次数 + http.HandleFunc("/api/flop/flop", DoFlop) //进行翻牌 + http.HandleFunc("/api/package/catList", QueryWareHouse) //背包列表 + http.HandleFunc("/api/package/putToPackage", PutCattoWareHouse) //加入背包 + http.HandleFunc("/api/package/getFromPackage", TakeCatoutfromWareHouse) //背包中取出 /////---------------------------------------------------------------------old http.HandleFunc("/happycat/exchangetwoPos", ExchangePos) //交换位置 @@ -58,19 +61,19 @@ func startServerHttpServe() { http.HandleFunc("/happycat/clickrandgift", ClickRandGift) //请求点击猫箱子 //http.HandleFunc("/happycat/querybuycat", QueryBuyCat) //请求商店购买信息 - http.HandleFunc("/happycat/querwarehouse", QueryWareHouse) //请求仓库信息 - http.HandleFunc("/happycat/putcattowarehouse", PutCattoWareHouse) //将合成界面的猫放入仓库 - http.HandleFunc("/happycat/takecatoutfromwarehouse", TakeCatoutfromWareHouse) //将仓库的猫取出 - http.HandleFunc("/happycat/acclecteboxrate ", AcclecteBoxRate) //请求点击猫箱子 - http.HandleFunc("/happycat/queryautomergeinfo ", QueryAutomergeInfo) //请求点击猫箱子 - http.HandleFunc("/happycat/querycatroominfo ", QueryCatRoomInfo) //请求点击猫箱子 - http.HandleFunc("/happycat/buycatroom ", BuyCatRoom) //请求点击猫箱子 - http.HandleFunc("/happycat/upcattoroom ", UpCattoRoom) //请求点击猫箱子 - http.HandleFunc("/happycat/querycatshopinfo ", QueryCatShopInfo) //请求点击猫箱子 - http.HandleFunc("/happycat/catshoplay ", CatShoPlay) //请求点击猫箱子 - http.HandleFunc("/happycat/getcatshopreward ", GetCatShopReward) //请求点击猫箱子 - http.HandleFunc("/happycat/acclectecatstory ", AcclecteCatStory) //请求点击猫箱子 - http.HandleFunc("/chappycatat/updateuserinfo ", UpdateUserInfo) //请求点击猫箱子 + //http.HandleFunc("/happycat/querwarehouse", QueryWareHouse) //请求仓库信息 + //http.HandleFunc("/happycat/putcattowarehouse", PutCattoWareHouse) //将合成界面的猫放入仓库 + // http.HandleFunc("/happycat/takecatoutfromwarehouse", TakeCatoutfromWareHouse) //将仓库的猫取出 + http.HandleFunc("/happycat/acclecteboxrate ", AcclecteBoxRate) //请求点击猫箱子 + http.HandleFunc("/happycat/queryautomergeinfo ", QueryAutomergeInfo) //请求点击猫箱子 + http.HandleFunc("/happycat/querycatroominfo ", QueryCatRoomInfo) //请求点击猫箱子 + http.HandleFunc("/happycat/buycatroom ", BuyCatRoom) //请求点击猫箱子 + http.HandleFunc("/happycat/upcattoroom ", UpCattoRoom) //请求点击猫箱子 + http.HandleFunc("/happycat/querycatshopinfo ", QueryCatShopInfo) //请求点击猫箱子 + http.HandleFunc("/happycat/catshoplay ", CatShoPlay) //请求点击猫箱子 + http.HandleFunc("/happycat/getcatshopreward ", GetCatShopReward) //请求点击猫箱子 + http.HandleFunc("/happycat/acclectecatstory ", AcclecteCatStory) //请求点击猫箱子 + http.HandleFunc("/chappycatat/updateuserinfo ", UpdateUserInfo) //请求点击猫箱子 //http.HandleFunc("/happycat/queryplayerrank ", QueryPlayerRank) //请求点击猫箱子 http.HandleFunc("/happycat/querycompletetask ", QueryCompleteTask) //请求点击猫箱子 http.HandleFunc("/happycat/querycompleteachievement ", QueryCompleteAchievement) //请求点击猫箱子 @@ -392,7 +395,7 @@ func QueryAutomergeInfo(w http.ResponseWriter, r *http.Request) { func QueryWareHouse(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) + Uuid, _ = strconv.Atoi(r.Header.Get("uid")) } if Uuid == 0 { SetHeader(w) @@ -404,13 +407,13 @@ func QueryWareHouse(w http.ResponseWriter, r *http.Request) { s := string(result) logger.Info("QueryWareHouse , body:%v,uuid=%v", s, Uuid) - //HandlerQueryWareHouse(w, s, Uuid) + HandlerQueryWareHouse(w, s, Uuid) } func PutCattoWareHouse(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) + Uuid, _ = strconv.Atoi(r.Header.Get("uid")) } if Uuid == 0 { SetHeader(w) @@ -422,13 +425,13 @@ func PutCattoWareHouse(w http.ResponseWriter, r *http.Request) { s := string(result) logger.Info("PutCattoWareHouse , body:%v,uuid=%v", s, Uuid) - //HandlerPutCattoWareHouse(w, s, Uuid) + HandlerPutCattoWareHouse(w, s, Uuid) } func TakeCatoutfromWareHouse(w http.ResponseWriter, r *http.Request) { Uuid := 0 if len(r.Header) > 0 { - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) + Uuid, _ = strconv.Atoi(r.Header.Get("uid")) } if Uuid == 0 { SetHeader(w) @@ -440,7 +443,7 @@ func TakeCatoutfromWareHouse(w http.ResponseWriter, r *http.Request) { s := string(result) logger.Info("TakeCatoutfromWareHouse , body:%v,uuid=%v", s, Uuid) - ///HandlerTakeCatoutfromWareHouse(w, s, Uuid) + HandlerTakeCatoutfromWareHouse(w, s, Uuid) } func DoBuyCat(w http.ResponseWriter, r *http.Request) { diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index dabf65e..76f4131 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -784,19 +784,19 @@ func HandlerCompose(w http.ResponseWriter, data string, uuid int) { break } v := uinfo.PosInfo[val] - if v.Cat == 103 { + if v.Cat == 3+REDCATIDEXTRA { eastsum++ } - if v.Cat == 104 { + if v.Cat == 4+REDCATIDEXTRA { westsum++ } - if v.Cat == 105 { + if v.Cat == 5+REDCATIDEXTRA { southsum++ } - if v.Cat == 106 { + if v.Cat == 6+REDCATIDEXTRA { northsum++ } - if v.Cat == 107 { + if v.Cat == 7+REDCATIDEXTRA { middlesum++ } } @@ -809,7 +809,7 @@ func HandlerCompose(w http.ResponseWriter, data string, uuid int) { //合成了五方猫 //获取一天招财猫配置 - cfg := jsonconf.GetRedCatConfig(100 + 2) + cfg := jsonconf.GetRedCatConfig(REDCATIDEXTRA + 2) if cfg == nil { logger.Error("HandlerCompose getcfg failed=%v", err) resp.Code = 1 @@ -817,7 +817,7 @@ func HandlerCompose(w http.ResponseWriter, data string, uuid int) { break } nowtime := int(time.Now().Unix()) - uinfo.SetCatPos(rdata.PositionList[0], 2+100, 24*3600, cfg.Money, nowtime) + uinfo.SetCatPos(rdata.PositionList[0], 2+REDCATIDEXTRA, 24*3600, cfg.Money, nowtime) //清空其他位置的猫 for k, v := range rdata.PositionList { if k > 0 { @@ -1266,3 +1266,180 @@ func HandlerExchangePos(w http.ResponseWriter, data string, uuid int) { fmt.Fprint(w, string(respstr)) } + +func HandlerQueryWareHouse(w http.ResponseWriter, data string, uuid int) { + SetHeader(w) + var resp QueryWareHouseResp + resp.Code = 0 + for { + udatastr, err := redishandler.GetRedisClient().HGet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid)) + if err != nil { + logger.Info("HandlerQueryWareHouse failed err=%v", err) + resp.Code = 1 + resp.Message = "get redis failed" + break + } + udata := new(UserWareHouseData) + err = json.Unmarshal([]byte(udatastr), udata) + if err != nil { + logger.Error("HandlerQueryWareHouse Unmarshal redis failed ") + resp.Code = 1 + resp.Message = "Unmarshal redis failed" + break + } + + for _, v := range udata.Info { + catlv := v.Warelv + REDCATIDEXTRA + resp.Data.CatList = append(resp.Data.CatList, catlv) + } + + resp.Data.CatCapacity = WAREHOUSELIMIT + + resp.Code = 0 + break + } + //回包 + respstr, _ := json.Marshal(&resp) + fmt.Fprint(w, string(respstr)) +} + +func HandlerPutCattoWareHouse(w http.ResponseWriter, data string, uuid int) { + SetHeader(w) + var resp PutWareHouseResp + + resp.Code = 0 + var rdata PutWareHouseReq + err := json.Unmarshal([]byte(data), &rdata) + for { + if err != nil { + logger.Error("HandlerPutCattoWareHouse json unmarshal failed=%v", err) + resp.Code = 1 + resp.Message = "json failed" + break + } + udatastr, err := redishandler.GetRedisClient().HGet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid)) + if err != nil { + logger.Info("HandlerPutCattoWareHouse failed err=%v", err) + resp.Code = 1 + resp.Message = "get redis failed" + break + } + udata := new(UserWareHouseData) + err = json.Unmarshal([]byte(udatastr), udata) + if err != nil { + logger.Error("HandlerPutCattoWareHouse Unmarshal redis failed ") + resp.Code = 1 + resp.Message = "Unmarshal redis failed" + break + } + uinfo, err := GetUserInfo(strconv.Itoa(uuid)) + if err != nil || uinfo == nil { + logger.Error("HandlerPutCattoWareHouse getuserinfo failed=%v", err) + resp.Code = 1 + resp.Message = "get userinfo failed" + break + } + + if rdata.Position < 0 || rdata.Position >= len(uinfo.PosInfo) { + logger.Error("HandlerPutCattoWareHouse posnotvalid failed=%v", err) + resp.Code = 1 + resp.Message = "posnotvalid" + break + } + + //合成界面红包猫的等级采用id+37的形式 + rtval := uinfo.tryPutToWareHouse(udata, rdata.Position, uuid) + if rtval == -1 { + logger.Error("HandlerPutCattoWareHouse warehouse full failed=%v", err) + resp.Code = 1 + resp.Message = "warehouse full" + break + } + + uinfo.CleadPos(rdata.Position) + uinfo.CalcGoldRate() + SaveUserInfo(uinfo, strconv.Itoa(uuid)) + + resp.Data.Coin.UserId = uuid + resp.Data.Coin.Coin = strconv.FormatInt(uinfo.Gold, 10) + //accrate := uinfo.Goldrate * 3 + resp.Data.Coin.IcomeRate = strconv.FormatInt(uinfo.Goldrate, 10) + resp.Data.Coin.UpdateTime = int(time.Now().Unix()) + resp.Code = 0 + + break + } + respstr, _ := json.Marshal(&resp) + fmt.Fprint(w, string(respstr)) +} + +func HandlerTakeCatoutfromWareHouse(w http.ResponseWriter, data string, uuid int) { + SetHeader(w) + var resp TakeWareHouseResp + + resp.Code = 0 + var rdata TakeWareHouseReq + err := json.Unmarshal([]byte(data), &rdata) + for { + if err != nil { + logger.Error("HandlerTakeCatoutfromWareHouse json unmarshal failed=%v", err) + resp.Code = 1 + resp.Message = "json failed" + break + } + udatastr, err := redishandler.GetRedisClient().HGet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid)) + if err != nil { + logger.Info("HandlerTakeCatoutfromWareHouse failed err=%v", err) + resp.Code = 1 + resp.Message = "get redis failed" + break + } + udata := new(UserWareHouseData) + err = json.Unmarshal([]byte(udatastr), udata) + if err != nil { + logger.Error("HandlerTakeCatoutfromWareHouse Unmarshal redis failed ") + resp.Code = 1 + resp.Message = "Unmarshal redis failed" + break + } + + uinfo, err := GetUserInfo(strconv.Itoa(uuid)) + if err != nil || uinfo == nil { + logger.Error("HandlerPutCattoWareHouse getuserinfo failed=%v", err) + resp.Code = 1 + resp.Message = "get userinfo failed" + break + } + wpos := udata.GetWarePosById(rdata.CatId) + if wpos == -1 { + logger.Error("HandlerTakeCatoutfromWareHouse wpos failed=%v", err) + resp.Code = 1 + resp.Message = "wpos" + break + } + winfo := udata.Info[wpos] + + uinfo.SetRedCatPos(winfo.Warelv+REDCATIDEXTRA, winfo.Time, winfo.RedPacket, winfo.StartTime) + + udata.Info[wpos].Warelv = 0 + udata.Info[wpos].StartTime = 0 + udata.Info[wpos].RedPacket = 0 + udata.Info[wpos].Time = 0 + + wares, _ := json.Marshal(udata) + redishandler.GetRedisClient().HSet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid), string(wares)) + + uinfo.CalcGoldRate() + + SaveUserInfo(uinfo, strconv.Itoa(uuid)) + resp.Data.Coin.UserId = uuid + resp.Data.Coin.Coin = strconv.FormatInt(uinfo.Gold, 10) + resp.Data.Coin.IcomeRate = strconv.FormatInt(uinfo.Goldrate, 10) + resp.Data.Coin.UpdateTime = int(time.Now().Unix()) + resp.Code = 0 + + break + } + respstr, _ := json.Marshal(&resp) + fmt.Fprint(w, string(respstr)) +} -- libgit2 0.21.0