From a7c5dd9afd3e0758a15ff5970762a502a4df4bdd Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Thu, 4 Jun 2020 10:49:45 +0800 Subject: [PATCH] 提交 --- src/HttpServer/logic/function.go | 54 +++++++++++++++++++++++++++++++++++++----------------- src/HttpServer/logic/httpserver.go | 4 +--- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index ddeae08..01932ab 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -1310,7 +1310,8 @@ func GetRandChatMessage() string { return RandChatList[index] } -func HandleRandWorldChat() { +func HandleRandWorldChat(ntime int) { + isInsert := false length, err := redishandler.GetRedisClient().LLen(redis.WORLD_CHAT_INFO_KEY) if err == nil { if length >= CHATLIMITNUM { @@ -1325,24 +1326,43 @@ func HandleRandWorldChat() { } } - //构建新的结构 - var chats QueryChatMessageData - chats.Message = GetRandChatMessage() - chats.Uuid = -1 - chats.Chattime = int(time.Now().Unix()) - - chats.Headurl = "" - chats.Nickname = "" - chats.Sex = 1 + //如果小于五条则插入 + if length < 5 { + isInsert = true + } - savestr, err := json.Marshal(&chats) - if err != nil { - logger.Error("WorldChat err=%v", err) + //判断最后一条记录 + laststr, err := redishandler.GetRedisClient().LIndex(redis.WORLD_CHAT_INFO_KEY, 0) + if err != nil && laststr != "" { + var tmp QueryChatMessageData + err = json.Unmarshal([]byte(laststr), &tmp) + if err == nil { + if ntime-tmp.Chattime > 20*60 { + isInsert = true + } + } } + if isInsert { + //构建新的结构 + var chats QueryChatMessageData + chats.Message = GetRandChatMessage() + chats.Uuid = -1 + chats.Chattime = int(time.Now().Unix()) - logger.Info("HandleRandWorldChat length=%v,chats=%v", length, chats) - err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) - if err != nil { - logger.Error("WorldChat err=%v", err) + chats.Headurl = "" + chats.Nickname = "" + chats.Sex = 1 + + savestr, err := json.Marshal(&chats) + if err != nil { + logger.Error("WorldChat err=%v", err) + } + + logger.Info("HandleRandWorldChat length=%v,chats=%v", length, chats) + err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) + if err != nil { + logger.Error("WorldChat err=%v", err) + } } + } diff --git a/src/HttpServer/logic/httpserver.go b/src/HttpServer/logic/httpserver.go index 42beafe..b02eb84 100644 --- a/src/HttpServer/logic/httpserver.go +++ b/src/HttpServer/logic/httpserver.go @@ -29,9 +29,7 @@ func StartHttpTicker() { if hour >= 6 && hour <= 22 { if nowtime-gLastChatTime >= 20*60 { gLastChatTime = nowtime - HandleRandWorldChat() - } else { - logger.Info("StartHttpTicker gLastChatTime=%v %v", gLastChatTime, nowtime) + HandleRandWorldChat(nowtime) } } -- libgit2 0.21.0