Commit a7c5dd9afd3e0758a15ff5970762a502a4df4bdd

Authored by 陆恒
1 parent f4bd0da0
Exists in master

提交

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 }