Browse Source

Merge branch 'pt' of gitee.com:ccsens_s/ccsenscloud into pt

master
zy_Java 5 years ago
parent
commit
a584c2384d
  1. 17
      game/src/main/java/com/ccsens/game/mq/GameDto.java
  2. 109
      game/src/main/java/com/ccsens/game/mq/GameScoreListener.java
  3. 12
      game/src/main/java/com/ccsens/game/service/MessageService.java
  4. 12
      mt/src/main/java/com/ccsens/mt/service/MessageServicer.java
  5. 3
      tall/src/main/java/com/ccsens/tall/aspect/RobotAspect.java
  6. 46
      tall/src/main/java/com/ccsens/tall/bean/dto/message/ProjectMessageDto.java
  7. 3
      tall/src/main/java/com/ccsens/tall/service/AsyncService.java
  8. 3
      tall/src/main/java/com/ccsens/tall/service/IAsyncService.java
  9. 3
      tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java
  10. 24
      tall/src/main/java/com/ccsens/tall/service/MessageService.java
  11. 23
      tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java
  12. 41
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  13. 4
      tall/src/main/resources/application-test.yml
  14. 3
      util/src/main/java/com/ccsens/util/WebConstant.java
  15. 8
      util/src/main/java/com/ccsens/util/config/RabbitMQConfig.java

17
game/src/main/java/com/ccsens/game/mq/GameDto.java

@ -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;
}
}

109
game/src/main/java/com/ccsens/game/mq/GameScoreListener.java

@ -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;
// }
//
//}

12
game/src/main/java/com/ccsens/game/service/MessageService.java

@ -36,13 +36,13 @@ public class MessageService implements IMessageService {
@Override
public void sendGameMessageWithGetUrl(ChromeMessageDto message) throws Exception {
System.out.println(JacksonUtil.beanToJson(message));
// rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
// JacksonUtil.beanToJson(message));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(message));
InMessage inMessage = new InMessage();
inMessage.setTos(message.receiversTransTos());
inMessage.setData(JSONObject.toJSONString(message.getData()));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
// InMessage inMessage = new InMessage();
// inMessage.setTos(message.receiversTransTos());
// inMessage.setData(JSONObject.toJSONString(message.getData()));
// rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
}
@Override

12
mt/src/main/java/com/ccsens/mt/service/MessageServicer.java

@ -17,12 +17,12 @@ public class MessageServicer implements IMessageService{
@Override
public void sendSyncMessageWithShow(SyncMessageWithShowDto message) throws Exception {
System.out.println(JacksonUtil.beanToJson(message));
// rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
// JacksonUtil.beanToJson(message));
InMessage inMessage = new InMessage();
inMessage.setTos(message.receiversTransTos());
inMessage.setData(JSONObject.toJSONString(message.getData()));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(message));
// InMessage inMessage = new InMessage();
// inMessage.setTos(message.receiversTransTos());
// inMessage.setData(JSONObject.toJSONString(message.getData()));
// rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
}
}

3
tall/src/main/java/com/ccsens/tall/aspect/RobotAspect.java

@ -5,6 +5,7 @@ import com.ccsens.tall.service.IAsyncService;
import com.ccsens.tall.service.IRobotService;
import com.ccsens.tall.util.RobotUtil;
import com.ccsens.util.annotation.OperateType;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
@ -34,7 +35,7 @@ public class RobotAspect {
}
@After("robotAdvice()")
public void robotMessageSend(JoinPoint joinPoint){
public void robotMessageSend(JoinPoint joinPoint) throws JsonProcessingException {
//1.获取方法类型Code
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;

46
tall/src/main/java/com/ccsens/tall/bean/dto/message/ProjectMessageDto.java

@ -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;
}
}

3
tall/src/main/java/com/ccsens/tall/service/AsyncService.java

@ -3,6 +3,7 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.vo.MessageVo;
import com.ccsens.tall.util.RobotUtil;
import com.ccsens.util.annotation.OperateType;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@ -29,7 +30,7 @@ public class AsyncService implements IAsyncService{
}
@Override
public void sendMessage(OperateType operateType, MessageVo.Inform inform) {
public void sendMessage(OperateType operateType, MessageVo.Inform inform) throws JsonProcessingException {
projectMessageService.sendProjectMessage(operateType, inform);
}
}

3
tall/src/main/java/com/ccsens/tall/service/IAsyncService.java

@ -3,6 +3,7 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.vo.MessageVo;
import com.ccsens.tall.util.RobotUtil;
import com.ccsens.util.annotation.OperateType;
import com.fasterxml.jackson.core.JsonProcessingException;
/**
* 异步方法
@ -15,7 +16,7 @@ public interface IAsyncService {
* @param operateType
* @param inform
*/
void sendMessage(OperateType operateType, MessageVo.Inform inform);
void sendMessage(OperateType operateType, MessageVo.Inform inform) throws JsonProcessingException;
}

3
tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java

@ -5,6 +5,7 @@ import com.ccsens.tall.bean.vo.MessageVo;
import com.ccsens.tall.bean.vo.ProjectMessageVo;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.annotation.OperateType;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.pagehelper.PageInfo;
/**
@ -19,7 +20,7 @@ public interface IProjectMessageService {
* @param operateType
* @param inform
*/
void sendProjectMessage(OperateType operateType, MessageVo.Inform inform);
void sendProjectMessage(OperateType operateType, MessageVo.Inform inform) throws JsonProcessingException;
/**
* 查询未读消息数

24
tall/src/main/java/com/ccsens/tall/service/MessageService.java

@ -62,13 +62,13 @@ public class MessageService implements IMessageService{
SyncMessageWithStartDto message = new SyncMessageWithStartDto(projectId, sender, receivers, roleId, taskId, null, time, duration,player);
//FixMe 发送到消息队列
System.out.println("+++++++++++++"+JacksonUtil.beanToJson(message));
// rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
// JacksonUtil.beanToJson(message));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(message));
InMessage inMessage = new InMessage();
inMessage.setTos(message.receiversTransTos());
inMessage.setData(JSONObject.toJSONString(message.getData()));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
// InMessage inMessage = new InMessage();
// inMessage.setTos(message.receiversTransTos());
// inMessage.setData(JSONObject.toJSONString(message.getData()));
// rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
}
}
@ -99,12 +99,12 @@ public class MessageService implements IMessageService{
public void sendStartTaskMessage(SyncMessageWithStartDto syncMessage) throws Exception {
System.out.println(JacksonUtil.beanToJson(syncMessage));
//FixMe 发送到消息队列
// rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME ,
// JacksonUtil.beanToJson(syncMessage));
InMessage inMessage = new InMessage();
inMessage.setTos(syncMessage.receiversTransTos());
inMessage.setData(JSONObject.toJSONString(syncMessage.getData()));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME ,
JacksonUtil.beanToJson(syncMessage));
// InMessage inMessage = new InMessage();
// inMessage.setTos(syncMessage.receiversTransTos());
// inMessage.setData(JSONObject.toJSONString(syncMessage.getData()));
// rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage);
}

23
tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java

@ -18,12 +18,14 @@ import com.ccsens.tall.persist.dao.SysMessageSendDao;
import com.ccsens.tall.persist.dao.SysOperationDao;
import com.ccsens.tall.persist.mapper.SysOperationMessageMapper;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.TransactionUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.config.RabbitMQConfig;
import com.ccsens.util.exception.BaseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -69,7 +71,7 @@ public class ProjectMessageService implements IProjectMessageService {
private PlatformTransactionManager transactionManager;
@Override
public void sendProjectMessage(OperateType operateType, MessageVo.Inform inform) {
public void sendProjectMessage(OperateType operateType, MessageVo.Inform inform) throws JsonProcessingException {
log.info("发送消息请求参数:类型:{},消息:{}", operateType, inform);
if (operateType == null || inform == null) {
throw new BaseException(CodeEnum.PARAM_ERROR);
@ -88,14 +90,21 @@ public class ProjectMessageService implements IProjectMessageService {
//mq-->ws
// 操作发送
initMessageSend(userIds, operationId, WebConstant.Message.SEND_WS);
InMessage inMessage = new InMessage();
inMessage.setTos(InMessage.transTos(userIds));
inMessage.setData(JSONObject.toJSONString(newMessages));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JSONObject.toJSONString(inMessage));
log.info("mq通知消息:{}", inMessage);
// initMessageSend(userIds, operationId, WebConstant.Message.SEND_WS);
// InMessage inMessage = new InMessage();
// inMessage.setTos(InMessage.transTos(userIds));
// inMessage.setData(JSONObject.toJSONString(newMessages));
// rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JSONObject.toJSONString(inMessage));
// log.info("mq通知消息:{}", inMessage);
com.ccsens.tall.bean.dto.message.ProjectMessageDto dto = new com.ccsens.tall.bean.dto.message.ProjectMessageDto();
List<com.ccsens.tall.bean.dto.message.ProjectMessageDto.Message> messages = JSONObject.parseArray(JSONObject.toJSONString(newMessages), com.ccsens.tall.bean.dto.message.ProjectMessageDto.Message.class);
dto.getData().setMessages(messages);
//更新ws消息发送成功
updateStatus(operationId, WebConstant.Message.SEND_WS);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(dto));
//查询关注公众号的用户
List<UserVo.Oauth2WX> oauths = sysAuthDao.queryOauth2WX(userIds);

41
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -276,13 +276,14 @@ public class TaskDeliverService implements ITaskDeliverService {
uploadMessageData.setUploadTime(System.currentTimeMillis());
uploadMessageData.setFile(uploadDeliver.getFileInfo());
uploadMessage.setData(uploadMessageData);
MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
String s = JacksonUtil.beanToJson(uploadMessage);
InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
String j = JacksonUtil.beanToJson(inMessage);
System.out.println(j);
messageService.sendDeliverMessageWithUpload(inMessage);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(uploadMessage));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
// String s = JacksonUtil.beanToJson(uploadMessage);
// InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
// String j = JacksonUtil.beanToJson(inMessage);
// System.out.println(j);
// messageService.sendDeliverMessageWithUpload(inMessage);
} else {
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
}
@ -557,12 +558,13 @@ public class TaskDeliverService implements ITaskDeliverService {
checkerDtoData.setCheckTime(checkTime);
checkerDtoData.setIsChecker(checkDeliver.getCheckStatus());
checkerDto.setData(checkerDtoData);
MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
String s = JacksonUtil.beanToJson(checkerDto);
InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
messageService.sendDeliverMessageWithChecker(inMessage);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(checkerDto));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
// String s = JacksonUtil.beanToJson(checkerDto);
// InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
//
// messageService.sendDeliverMessageWithChecker(inMessage);
//检查完,返回数据
DeliverVo.DeliverInfo deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), checkDeliver.getTaskId());
@ -747,12 +749,13 @@ public class TaskDeliverService implements ITaskDeliverService {
deleteMessageData.setDeleteTime(deleteTime);
deleteMessageData.setUserId(currentUserId);
deleteMessage.setData(deleteMessageData);
MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
String s = JacksonUtil.beanToJson(deleteMessage);
InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
messageService.sendDeliverMessageWithDelete(inMessage);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(deleteMessage));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
// String s = JacksonUtil.beanToJson(deleteMessage);
// InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
//
// messageService.sendDeliverMessageWithDelete(inMessage);
//用智能助手发送消息
robotService.deleteDeliverRobotSend(currentUserId,deliver.getName(),subTimeId);

4
tall/src/main/resources/application-test.yml

@ -11,8 +11,8 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
host: 127.0.0.1
# host: api.ccsens.com
# host: 127.0.0.1
host: api.ccsens.com
password: 111111
port: 5672
username: admin

3
util/src/main/java/com/ccsens/util/WebConstant.java

@ -436,7 +436,8 @@ public class WebConstant {
,Chrome(0x15,"Chrome")
,PPTCtl(0x15,"PPTCtl")
,Count(0x16,"Count")
,ChangeStatus(0x17,"ChangeStatus");
,ChangeStatus(0x17,"ChangeStatus")
,PROJECT_MESSAGE(0x18, "ProjectMessage");
public int value;
public String phase;
Message_Type(int value,String thePhase){

8
util/src/main/java/com/ccsens/util/config/RabbitMQConfig.java

@ -16,8 +16,12 @@ public class RabbitMQConfig {
public static final String GAME_STATUS_DELAY_SEND_QUEUE = "gameStatusDelaySendQueue";
public static final String GAME_STATUS_DELAY_SEND_EXCHANGE = "gameStatusDelaySendExchange";
public static final String GAME_STATUS_DELAY_SEND_ROUTING_KEY = "gameStatusDelaySendRoutingKey";
/**消息队列发送*/
public static final String MESSAGE_QUEUE_NAME = "tall_message_1";
/**游戏计算分数*/
public static final String GAME_SCORE = "game_score";
@ -37,6 +41,10 @@ public class RabbitMQConfig {
public Queue queue2(){
return new Queue(TALL_MESSAGE_2);
}
@Bean
public Queue queue3(){
return new Queue(GAME_SCORE);
}
/**
* 延时发送队列

Loading…
Cancel
Save