diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index 149f396..8c4b095 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -668,11 +668,11 @@ func (u *UserData) SetDuboCatPos(catlv int) { } //设置红包猫 -func (u *UserData) SetRedCatPos(catlv, time int, redpack float32, starttime int) { +func (u *UserData) SetRedCatPos(catlv, time int, redpack float32, starttime int) bool { pos := getCatPutPos(u, catlv) if pos < 0 || pos >= len(u.PosInfo) { logger.Error("CleadPos failed pos=%v,posinfo=%v", pos, u.PosInfo) - return + return false } u.PosInfo[pos].Cat = catlv @@ -680,6 +680,7 @@ func (u *UserData) SetRedCatPos(catlv, time int, redpack float32, starttime int) u.PosInfo[pos].StartTime = starttime u.PosInfo[pos].RedPacket = redpack u.PosInfo[pos].Time = time + return true } //计算购买后猫箱子的位置,将箱子放到对应位置 返回值表示位置 -1表示失败都满了 diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 218f82f..b67e186 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -2941,14 +2941,14 @@ func HandlerTakeCatoutfromWareHouse(w http.ResponseWriter, data string, uuid int if err != nil { logger.Error("HandlerTakeCatoutfromWareHouse json unmarshal failed=%v", err) resp.Code = 1 - resp.Message = "json failed" + resp.Message = "服务器错误" 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" + resp.Message = "服务器错误" break } udata := new(UserWareHouseData) @@ -2956,7 +2956,7 @@ func HandlerTakeCatoutfromWareHouse(w http.ResponseWriter, data string, uuid int if err != nil { logger.Error("HandlerTakeCatoutfromWareHouse Unmarshal redis failed ") resp.Code = 1 - resp.Message = "Unmarshal redis failed" + resp.Message = "服务器错误" break } @@ -2964,7 +2964,7 @@ func HandlerTakeCatoutfromWareHouse(w http.ResponseWriter, data string, uuid int if err != nil || uinfo == nil { logger.Error("HandlerPutCattoWareHouse getuserinfo failed=%v", err) resp.Code = 1 - resp.Message = "get userinfo failed" + resp.Message = "服务器错误" break } cid, _ := strconv.Atoi(rdata.CatId) @@ -2972,12 +2972,18 @@ func HandlerTakeCatoutfromWareHouse(w http.ResponseWriter, data string, uuid int if wpos == -1 { logger.Error("HandlerTakeCatoutfromWareHouse wpos failed=%v", err) resp.Code = 1 - resp.Message = "wpos" + resp.Message = "没有正确的猫" break } winfo := udata.Info[wpos] - uinfo.SetRedCatPos(winfo.Warelv, winfo.Time, winfo.RedPacket, winfo.StartTime) + success := uinfo.SetRedCatPos(winfo.Warelv, winfo.Time, winfo.RedPacket, winfo.StartTime) + if !success { + logger.Error("HandlerTakeCatoutfromWareHouse wpos failed=%v", err) + resp.Code = 1 + resp.Message = "合成界面已满,请先整理置位" + break + } udata.Info[wpos].Warelv = 0 udata.Info[wpos].StartTime = 0 -- libgit2 0.21.0