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