From ec295e558e0dee86ea7587d453d58df8337250a4 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Fri, 5 Jun 2020 11:50:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=A1=B9=E7=9B=AE=E5=8A=A8?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game/bean/dto/message/BaseMessageDto.java | 18 ++++++++++ .../ccsens/game/service/MessageService.java | 11 ++++-- .../tall/bean/dto/ProjectMessageDto.java | 13 +++++++ .../ccsens/tall/bean/vo/ProjectMessageVo.java | 14 ++++++++ .../tall/persist/dao/SysOperationDao.java | 7 ++++ .../tall/service/IProjectMessageService.java | 8 +++++ .../tall/service/ProjectMessageService.java | 7 ++++ .../tall/web/ProjectMessageController.java | 12 ++++++- .../resources/mapper_dao/SysOperationDao.xml | 36 ++++++++++++------- 9 files changed, 111 insertions(+), 15 deletions(-) diff --git a/game/src/main/java/com/ccsens/game/bean/dto/message/BaseMessageDto.java b/game/src/main/java/com/ccsens/game/bean/dto/message/BaseMessageDto.java index c67ac7d7..52d0557c 100644 --- a/game/src/main/java/com/ccsens/game/bean/dto/message/BaseMessageDto.java +++ b/game/src/main/java/com/ccsens/game/bean/dto/message/BaseMessageDto.java @@ -1,8 +1,13 @@ package com.ccsens.game.bean.dto.message; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.ccsens.util.bean.message.common.InMessage; import lombok.Data; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Data public class BaseMessageDto { @@ -32,4 +37,17 @@ public class BaseMessageDto { private MessageUser sender; private List receivers; // private Object data; + + public Set receiversTransTos() { + Set tos = new HashSet<>(); + if (CollectionUtil.isEmpty(receivers)) { + return tos; + } + receivers.forEach(receiver -> { + InMessage.To to = new InMessage.To(receiver.getUserId()); + tos.add(JSONObject.toJSONString(to)); + }); + + return tos; + } } diff --git a/game/src/main/java/com/ccsens/game/service/MessageService.java b/game/src/main/java/com/ccsens/game/service/MessageService.java index 38eb762f..8ecef036 100644 --- a/game/src/main/java/com/ccsens/game/service/MessageService.java +++ b/game/src/main/java/com/ccsens/game/service/MessageService.java @@ -1,6 +1,7 @@ package com.ccsens.game.service; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; import com.ccsens.cloudutil.feign.TallFeignClient; import com.ccsens.game.bean.dto.message.*; import com.ccsens.game.bean.po.GameUserJoin; @@ -9,6 +10,7 @@ import com.ccsens.game.netty.ChannelManager; import com.ccsens.game.persist.dao.GameUserJoinDao; import com.ccsens.util.JacksonUtil; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.message.common.InMessage; import com.ccsens.util.config.RabbitMQConfig; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; @@ -34,8 +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); } @Override diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java index ef9fb0cc..164884a8 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java @@ -30,6 +30,19 @@ public class ProjectMessageDto { @NotNull @ApiModelProperty("发送类型 0:ws,1:微信公众号") private Byte sendType; + @ApiModelProperty("第几页") + @Min(value = 1) + private int pageNum = 1; + @ApiModelProperty("每页多少条") + @Min(value = 1) + @Max(value=100) + private int pageSize = 10; + } + + @Data + @ApiModel("项目动态-请求") + public static class ProjectMsg{ + @NotNull @ApiModelProperty("项目ID") private Long projectId; @ApiModelProperty("第几页") diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java index 5e4fee11..dfccc08e 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java @@ -43,4 +43,18 @@ public class ProjectMessageVo { @ApiModelProperty("发送时间") private Date createTime; } + + @Data + @ApiModel("项目动态-返回") + @JsonIgnoreProperties(value = { "handler" }) + public static class ProjectMsg{ + @JsonIgnore + @ApiModelProperty("消息操作ID") + private Long operationId; + @ApiModelProperty("消息内容") + List messages; + @JsonFormat(pattern="yyyy-MM-dd HH:mm") + @ApiModelProperty("发送时间") + private Date createTime; + } } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java index 64c9a923..c63a9009 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java @@ -32,4 +32,11 @@ public interface SysOperationDao extends SysOperationMapper { * @return */ List queryContent(@Param("operationId") Long operationId); + + /** + * 查询项目动态 + * @param param + * @return + */ + List queryProjectMsg(ProjectMessageDto.ProjectMsg param); } diff --git a/tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java b/tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java index 672bfbac..6bf8f7dc 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java @@ -52,4 +52,12 @@ public interface IProjectMessageService { * @return */ CodeEnum markAllRead(ProjectMessageDto.MarkAllRead param, Long userId); + + /** + * 查询项目动态 + * @param param + * @param userId + * @return + */ + PageInfo queryProjectMsg(ProjectMessageDto.ProjectMsg param, Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java index 30463f4d..56d1974d 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java @@ -294,4 +294,11 @@ public class ProjectMessageService implements IProjectMessageService { sysMessageSendDao.markAllRead(userId); return CodeEnum.SUCCESS; } + + @Override + public PageInfo queryProjectMsg(ProjectMessageDto.ProjectMsg param, Long userId) { + PageHelper.startPage(param.getPageNum(), param.getPageSize()); + List list = sysOperationDao.queryProjectMsg(param); + return new PageInfo<>(list); + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectMessageController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectMessageController.java index aa4ba858..54022697 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectMessageController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectMessageController.java @@ -42,7 +42,7 @@ public class ProjectMessageController { @MustLogin - @ApiOperation(value = "分页查询消息",notes = "分页查询消息") + @ApiOperation(value = "分页查询登录用户收到的消息",notes = "分页查询登录用户收到的消息") @RequestMapping(value = "queryMsg", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse queryMsg(@RequestBody QueryDto param) { log.info("未读消息请求参数:{}", param); @@ -51,6 +51,16 @@ public class ProjectMessageController { return JsonResponse.newInstance().ok(messages); } + @MustLogin + @ApiOperation(value = "分页查询项目动态",notes = "分页查询项目动态") + @RequestMapping(value = "queryProjectMsg", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryProjectMsg(@RequestBody QueryDto param) { + log.info("未读消息请求参数:{}", param); + PageInfo messages = projectMessageService.queryProjectMsg(param.getParam(), param.getUserId()); + log.info("未读消息返回结果:{}", messages); + return JsonResponse.newInstance().ok(messages); + } + @MustLogin @ApiOperation(value = "标记某条消息已读",notes = "标记某条消息已读") @RequestMapping(value = "markRead", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) diff --git a/tall/src/main/resources/mapper_dao/SysOperationDao.xml b/tall/src/main/resources/mapper_dao/SysOperationDao.xml index 019b8203..a0272c76 100644 --- a/tall/src/main/resources/mapper_dao/SysOperationDao.xml +++ b/tall/src/main/resources/mapper_dao/SysOperationDao.xml @@ -8,7 +8,18 @@ - + + + + + + + + + + @@ -34,20 +45,11 @@ SELECT s.id, s.operation_id, s.send_type, s.created_at, s.read_status FROM - t_sys_message_send s, t_sys_operation o + t_sys_message_send s WHERE - s.operation_id = o.id - - - AND o.project_id = #{param.projectId} - - - AND s.receiver_id = #{userId} - - + s.receiver_id = #{userId} AND s.send_type = #{param.sendType} AND s.rec_status = 0 - AND o.rec_status = 0 ORDER BY s.created_at DESC @@ -64,4 +66,14 @@ ORDER BY sort + \ No newline at end of file