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.RedisUtil;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import com.ccsens.util.mq.DelayProducer; import com.ccsens.util.mq.DelayProducer;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -134,7 +135,11 @@ public class ClientService implements IClientService {
//延时发送开始 //延时发送开始
long expiration = gameRecord.getStartTime() - System.currentTimeMillis(); long expiration = gameRecord.getStartTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, expiration, ()->{ 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(); long expiration = gameRecord.getStartTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, expiration, ()->{ 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; 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.game.bean.dto.message.GameMessageWithChangeStatusOut;
import com.ccsens.util.JacksonUtil; import com.ccsens.util.JacksonUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.config.RabbitMQConfig;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.TreeMap;
@Component @Component
@ -25,9 +24,10 @@ public class RabbitMQListener {
private IMessageService messageService; private IMessageService messageService;
@RabbitHandler @RabbitHandler
public void process(List<GameMessageWithChangeStatusOut> messageJson) { public void process(String messageJson) throws IOException {
System.out.println("*************"+messageJson); 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.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.netflix.discovery.converters.Auto; import com.netflix.discovery.converters.Auto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
@ -471,12 +472,20 @@ public class ScreenService implements IScreenService{
long startTime = gameRecord.getStartTime() - System.currentTimeMillis(); long startTime = gameRecord.getStartTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, startTime > 0 ? startTime : 0, ()->{ 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(); long endTime = gameRecord.getEndTime() - System.currentTimeMillis();
sendMsg.sendMsg(executor, endTime > 0 ? endTime : 0, ()->{ 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(); }).start();

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

@ -33,15 +33,14 @@ public class SendMsg {
@Autowired @Autowired
private AmqpTemplate rabbitTemplate; 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<>(); List<GameMessageWithChangeStatusOut> outs = new ArrayList<>();
userJoins.forEach(join -> { userJoins.forEach(join -> {
outs.add(getMsg(gameRecord, join, status)); outs.add(getMsg(gameRecord, join, status));
}); });
if (CollectionUtil.isNotEmpty(outs)) { if (CollectionUtil.isNotEmpty(outs)) {
System.out.println("==================="+outs); System.out.println("==================="+outs);
rabbitTemplate.convertAndSend(RabbitMQConfig.GAME_STATUS, rabbitTemplate.convertAndSend(RabbitMQConfig.GAME_STATUS, JacksonUtil.beanToJson(outs));
outs);
} }
} }

Loading…
Cancel
Save