15 changed files with 254 additions and 57 deletions
@ -0,0 +1,17 @@ |
|||
package com.ccsens.game.mq; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: whj |
|||
* @time: 2020/6/5 16:19 |
|||
*/ |
|||
@ApiModel("游戏相关的参数") |
|||
public class GameDto { |
|||
@Data |
|||
public static class GameMsg{ |
|||
private Long recordId; |
|||
} |
|||
} |
@ -0,0 +1,109 @@ |
|||
//package com.ccsens.game.mq;
|
|||
//
|
|||
//import cn.hutool.core.collection.CollectionUtil;
|
|||
//import cn.hutool.core.util.StrUtil;
|
|||
//import com.alibaba.fastjson.JSON;
|
|||
//import com.alibaba.fastjson.JSONObject;
|
|||
//import com.ccsens.game.bean.dto.ClientDto;
|
|||
//import com.ccsens.game.bean.dto.message.GameMessageCountOut;
|
|||
//import com.ccsens.game.bean.dto.message.GameMessageWithChangeStatusOut;
|
|||
//import com.ccsens.game.netty.ChannelManager;
|
|||
//import com.ccsens.game.util.GameConstant;
|
|||
//import com.ccsens.util.JacksonUtil;
|
|||
//import com.ccsens.util.RedisUtil;
|
|||
//import com.ccsens.util.bean.message.common.InMessage;
|
|||
//import com.ccsens.util.bean.message.common.OutMessage;
|
|||
//import com.ccsens.util.bean.message.common.OutMessageSet;
|
|||
//import com.ccsens.util.config.RabbitMQConfig;
|
|||
//import lombok.extern.slf4j.Slf4j;
|
|||
//import org.springframework.amqp.core.AmqpTemplate;
|
|||
//import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
|||
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
|||
//import org.springframework.beans.factory.annotation.Autowired;
|
|||
//import org.springframework.data.redis.core.ZSetOperations;
|
|||
//import org.springframework.stereotype.Component;
|
|||
//
|
|||
//import java.io.IOException;
|
|||
//import java.util.ArrayList;
|
|||
//import java.util.HashSet;
|
|||
//import java.util.List;
|
|||
//import java.util.Set;
|
|||
//
|
|||
///**
|
|||
// * @description:
|
|||
// * @author: whj
|
|||
// * @time: 2020/6/5 14:30
|
|||
// */
|
|||
//@Slf4j
|
|||
//@Component
|
|||
//@RabbitListener(queues = RabbitMQConfig.GAME_SCORE)
|
|||
//public class GameScoreListener {
|
|||
//
|
|||
// @Autowired
|
|||
// private RedisUtil redisUtil;
|
|||
// @Autowired
|
|||
// private AmqpTemplate rabbitTemplate;
|
|||
//
|
|||
// @RabbitHandler
|
|||
// public void process(String messageJson) throws IOException {
|
|||
// log.info("计算分数 {}",messageJson);
|
|||
// OutMessageSet outMessageSet = JSONObject.parseObject(messageJson, OutMessageSet.class);
|
|||
// Set<OutMessage> messageSet = outMessageSet.getMessageSet();
|
|||
// if (CollectionUtil.isEmpty(messageSet)) {
|
|||
// return;
|
|||
// }
|
|||
// messageSet.forEach(outMessage -> {
|
|||
//
|
|||
// InMessage.To to = JSONObject.parseObject(outMessage.getFrom(), InMessage.To.class);
|
|||
// Long userId = to.getId();
|
|||
// GameDto.GameMsg gameMsg = JSONObject.parseObject(outMessage.getAuthMessage(), GameDto.GameMsg.class);
|
|||
// Long recordId = gameMsg.getRecordId();
|
|||
// log.info("统计分数:{},{}",userId, recordId);
|
|||
// GameMessageCountOut gameMessageCountOut = clientAddTimes(userId,recordId);
|
|||
//
|
|||
// // 发送给消息系统
|
|||
// InMessage inMessage = new InMessage();
|
|||
// Set<String> tos = new HashSet<>();
|
|||
// tos.add(JSONObject.toJSONString(new InMessage.To(userId)));
|
|||
// inMessage.setTos(tos);
|
|||
// inMessage.setData(JSONObject.toJSONString(gameMessageCountOut));
|
|||
// rabbitTemplate.convertAndSend(RabbitMQConfig.GAME_SCORE, inMessage);
|
|||
// });
|
|||
//
|
|||
// }
|
|||
//
|
|||
// public GameMessageCountOut clientAddTimes(Long userId, Long recordId) {
|
|||
// GameMessageCountOut gameMessageCountOut = new GameMessageCountOut();
|
|||
// log.info("userId:{}", userId);
|
|||
// if (userId == null || recordId == null) {
|
|||
// return gameMessageCountOut;
|
|||
// }
|
|||
//
|
|||
// String gameUserKey = GameConstant.generateGameKey(recordId);
|
|||
// Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtil.zsRevGetWithScore(gameUserKey, 0, -1);
|
|||
//
|
|||
// if (CollectionUtil.isEmpty(typedTuples)) {
|
|||
// return gameMessageCountOut;
|
|||
// }
|
|||
// for(ZSetOperations.TypedTuple<Object> type : typedTuples) {
|
|||
// ClientDto.RedisUser user = JSON.parseObject((String)type.getValue(), ClientDto.RedisUser.class);
|
|||
// if (user.getUserId().longValue() == userId.longValue()) {
|
|||
// int score = type.getScore().intValue();
|
|||
// String userStatus = GameConstant.generateGameStatusKey(recordId);
|
|||
// String gameStausObj = (String)redisUtil.get(userStatus);
|
|||
// if (StrUtil.isBlank(gameStausObj) || gameStausObj.equals(String.valueOf(GameConstant.GAME_COMPLETED))){
|
|||
// gameMessageCountOut = new GameMessageCountOut(score/100, score);
|
|||
// return gameMessageCountOut;
|
|||
// }
|
|||
// score += 100;
|
|||
// redisUtil.zsSet(gameUserKey, JSON.toJSONString(user), score);
|
|||
// gameMessageCountOut.getData().setTotalScore(score);
|
|||
// gameMessageCountOut.getData().setTotalTimes(score/100);
|
|||
// return gameMessageCountOut;
|
|||
// }
|
|||
// };
|
|||
//
|
|||
// return gameMessageCountOut;
|
|||
// }
|
|||
//
|
|||
//}
|
@ -0,0 +1,46 @@ |
|||
package com.ccsens.tall.bean.dto.message; |
|||
|
|||
import com.ccsens.tall.bean.vo.MessageVo; |
|||
import com.ccsens.util.WebConstant; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: whj |
|||
* @time: 2020/6/8 10:24 |
|||
*/ |
|||
@ApiModel("消息系统") |
|||
@Data |
|||
public class ProjectMessageDto extends BaseMessageDto { |
|||
|
|||
@lombok.Data |
|||
public static class Data{ |
|||
private List<Message> messages; |
|||
} |
|||
|
|||
private Data data; |
|||
|
|||
public ProjectMessageDto(){ |
|||
setType(WebConstant.Message_Type.PROJECT_MESSAGE.phase); |
|||
setTime(System.currentTimeMillis()); |
|||
this.data = new Data(); |
|||
} |
|||
|
|||
@lombok.Data |
|||
@ApiModel("消息内容") |
|||
public static class Message { |
|||
@ApiModelProperty("消息属性") |
|||
private String name; |
|||
@ApiModelProperty("消息内容") |
|||
private String content; |
|||
@ApiModelProperty("类型 0:文本 1:链接") |
|||
private Byte type = 0; |
|||
@ApiModelProperty("配置") |
|||
private String settings; |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue