Commit a7c5dd9afd3e0758a15ff5970762a502a4df4bdd
1 parent
f4bd0da0
Exists in
master
提交
Showing
2 changed files
with
38 additions
and
20 deletions
Show diff stats
src/HttpServer/logic/function.go
@@ -1310,7 +1310,8 @@ func GetRandChatMessage() string { | @@ -1310,7 +1310,8 @@ func GetRandChatMessage() string { | ||
1310 | return RandChatList[index] | 1310 | return RandChatList[index] |
1311 | } | 1311 | } |
1312 | 1312 | ||
1313 | -func HandleRandWorldChat() { | 1313 | +func HandleRandWorldChat(ntime int) { |
1314 | + isInsert := false | ||
1314 | length, err := redishandler.GetRedisClient().LLen(redis.WORLD_CHAT_INFO_KEY) | 1315 | length, err := redishandler.GetRedisClient().LLen(redis.WORLD_CHAT_INFO_KEY) |
1315 | if err == nil { | 1316 | if err == nil { |
1316 | if length >= CHATLIMITNUM { | 1317 | if length >= CHATLIMITNUM { |
@@ -1325,24 +1326,43 @@ func HandleRandWorldChat() { | @@ -1325,24 +1326,43 @@ func HandleRandWorldChat() { | ||
1325 | } | 1326 | } |
1326 | } | 1327 | } |
1327 | 1328 | ||
1328 | - //构建新的结构 | ||
1329 | - var chats QueryChatMessageData | ||
1330 | - chats.Message = GetRandChatMessage() | ||
1331 | - chats.Uuid = -1 | ||
1332 | - chats.Chattime = int(time.Now().Unix()) | ||
1333 | - | ||
1334 | - chats.Headurl = "" | ||
1335 | - chats.Nickname = "" | ||
1336 | - chats.Sex = 1 | 1329 | + //如果小于五条则插入 |
1330 | + if length < 5 { | ||
1331 | + isInsert = true | ||
1332 | + } | ||
1337 | 1333 | ||
1338 | - savestr, err := json.Marshal(&chats) | ||
1339 | - if err != nil { | ||
1340 | - logger.Error("WorldChat err=%v", err) | 1334 | + //判断最后一条记录 |
1335 | + laststr, err := redishandler.GetRedisClient().LIndex(redis.WORLD_CHAT_INFO_KEY, 0) | ||
1336 | + if err != nil && laststr != "" { | ||
1337 | + var tmp QueryChatMessageData | ||
1338 | + err = json.Unmarshal([]byte(laststr), &tmp) | ||
1339 | + if err == nil { | ||
1340 | + if ntime-tmp.Chattime > 20*60 { | ||
1341 | + isInsert = true | ||
1342 | + } | ||
1343 | + } | ||
1341 | } | 1344 | } |
1345 | + if isInsert { | ||
1346 | + //构建新的结构 | ||
1347 | + var chats QueryChatMessageData | ||
1348 | + chats.Message = GetRandChatMessage() | ||
1349 | + chats.Uuid = -1 | ||
1350 | + chats.Chattime = int(time.Now().Unix()) | ||
1342 | 1351 | ||
1343 | - logger.Info("HandleRandWorldChat length=%v,chats=%v", length, chats) | ||
1344 | - err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) | ||
1345 | - if err != nil { | ||
1346 | - logger.Error("WorldChat err=%v", err) | 1352 | + chats.Headurl = "" |
1353 | + chats.Nickname = "" | ||
1354 | + chats.Sex = 1 | ||
1355 | + | ||
1356 | + savestr, err := json.Marshal(&chats) | ||
1357 | + if err != nil { | ||
1358 | + logger.Error("WorldChat err=%v", err) | ||
1359 | + } | ||
1360 | + | ||
1361 | + logger.Info("HandleRandWorldChat length=%v,chats=%v", length, chats) | ||
1362 | + err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) | ||
1363 | + if err != nil { | ||
1364 | + logger.Error("WorldChat err=%v", err) | ||
1365 | + } | ||
1347 | } | 1366 | } |
1367 | + | ||
1348 | } | 1368 | } |
src/HttpServer/logic/httpserver.go
@@ -29,9 +29,7 @@ func StartHttpTicker() { | @@ -29,9 +29,7 @@ func StartHttpTicker() { | ||
29 | if hour >= 6 && hour <= 22 { | 29 | if hour >= 6 && hour <= 22 { |
30 | if nowtime-gLastChatTime >= 20*60 { | 30 | if nowtime-gLastChatTime >= 20*60 { |
31 | gLastChatTime = nowtime | 31 | gLastChatTime = nowtime |
32 | - HandleRandWorldChat() | ||
33 | - } else { | ||
34 | - logger.Info("StartHttpTicker gLastChatTime=%v %v", gLastChatTime, nowtime) | 32 | + HandleRandWorldChat(nowtime) |
35 | } | 33 | } |
36 | 34 | ||
37 | } | 35 | } |