Browse Source

最后一次

master
zhangye 6 years ago
parent
commit
407c9c3b22
  1. 13
      game/src/main/java/com/ccsens/game/service/ClientService.java
  2. 10
      game/src/main/java/com/ccsens/game/service/RabbitMQListener.java
  3. 13
      game/src/main/java/com/ccsens/game/service/ScreenService.java
  4. 5
      game/src/main/java/com/ccsens/game/util/SendMsg.java

13
game/src/main/java/com/ccsens/game/service/ClientService.java

@ -21,6 +21,7 @@ import com.ccsens.util.JsonResponse;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.exception.BaseException;
import com.ccsens.util.mq.DelayProducer;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -134,7 +135,11 @@ public class ClientService implements IClientService {
//延时发送开始
long expiration = gameRecord.getStartTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, expiration, ()->{
sendMsg.sendStatus(gameRecord, joins, GameConstant.GAME_PROCESSING);
try {
sendMsg.sendStatus(gameRecord, joins, GameConstant.GAME_PROCESSING);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
});
}
@ -142,7 +147,11 @@ public class ClientService implements IClientService {
//延时发送结束
long expiration = gameRecord.getStartTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, expiration, ()->{
sendMsg.sendStatus(gameRecord, joins, GameConstant.GAME_PROCESSING);
try {
sendMsg.sendStatus(gameRecord, joins, GameConstant.GAME_PROCESSING);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
});
}

10
game/src/main/java/com/ccsens/game/service/RabbitMQListener.java

@ -1,11 +1,8 @@
package com.ccsens.game.service;
import com.ccsens.game.bean.dto.message.BaseMessageDto;
import com.ccsens.game.bean.dto.message.ChromeMessageDto;
import com.ccsens.game.bean.dto.message.GameMessageWithChangeStatusOut;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.config.RabbitMQConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -14,7 +11,9 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.List;
import java.util.TreeMap;
@Component
@ -25,9 +24,10 @@ public class RabbitMQListener {
private IMessageService messageService;
@RabbitHandler
public void process(List<GameMessageWithChangeStatusOut> messageJson) {
public void process(String messageJson) throws IOException {
System.out.println("*************"+messageJson);
messageService.doChangeStatusMessage(messageJson);
messageService.doChangeStatusMessage(JacksonUtil.jsonToBean(messageJson,
GameMessageWithChangeStatusOut.class, true));
}
}

13
game/src/main/java/com/ccsens/game/service/ScreenService.java

@ -20,6 +20,7 @@ import com.ccsens.util.WebConstant;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.netflix.discovery.converters.Auto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@ -471,12 +472,20 @@ public class ScreenService implements IScreenService{
long startTime = gameRecord.getStartTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, startTime > 0 ? startTime : 0, ()->{
sendMsg.sendStatus(gameRecord, userJoins, GameConstant.GAME_PROCESSING);
try {
sendMsg.sendStatus(gameRecord, userJoins, GameConstant.GAME_PROCESSING);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
});
long endTime = gameRecord.getEndTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, endTime > 0 ? endTime : 0, ()->{
sendMsg.sendStatus(gameRecord, userJoins, GameConstant.GAME_COMPLETED);
try {
sendMsg.sendStatus(gameRecord, userJoins, GameConstant.GAME_COMPLETED);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
});
}).start();

5
game/src/main/java/com/ccsens/game/util/SendMsg.java

@ -33,15 +33,14 @@ public class SendMsg {
@Autowired
private AmqpTemplate rabbitTemplate;
public void sendStatus(GameRecord gameRecord, List<GameUserJoin> userJoins, byte status) {
public void sendStatus(GameRecord gameRecord, List<GameUserJoin> userJoins, byte status) throws JsonProcessingException {
List<GameMessageWithChangeStatusOut> outs = new ArrayList<>();
userJoins.forEach(join -> {
outs.add(getMsg(gameRecord, join, status));
});
if (CollectionUtil.isNotEmpty(outs)) {
System.out.println("==================="+outs);
rabbitTemplate.convertAndSend(RabbitMQConfig.GAME_STATUS,
outs);
rabbitTemplate.convertAndSend(RabbitMQConfig.GAME_STATUS, JacksonUtil.beanToJson(outs));
}
}

Loading…
Cancel
Save