Browse Source

查询项目动态

master
zhizhi wu 5 years ago
parent
commit
ec295e558e
  1. 18
      game/src/main/java/com/ccsens/game/bean/dto/message/BaseMessageDto.java
  2. 11
      game/src/main/java/com/ccsens/game/service/MessageService.java
  3. 13
      tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java
  4. 14
      tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java
  5. 7
      tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java
  6. 8
      tall/src/main/java/com/ccsens/tall/service/IProjectMessageService.java
  7. 7
      tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java
  8. 12
      tall/src/main/java/com/ccsens/tall/web/ProjectMessageController.java
  9. 36
      tall/src/main/resources/mapper_dao/SysOperationDao.xml

18
game/src/main/java/com/ccsens/game/bean/dto/message/BaseMessageDto.java

@ -1,8 +1,13 @@
package com.ccsens.game.bean.dto.message; 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 lombok.Data;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
@Data @Data
public class BaseMessageDto { public class BaseMessageDto {
@ -32,4 +37,17 @@ public class BaseMessageDto {
private MessageUser sender; private MessageUser sender;
private List<MessageUser> receivers; private List<MessageUser> receivers;
// private Object data; // private Object data;
public Set<String> receiversTransTos() {
Set<String> 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;
}
} }

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

@ -1,6 +1,7 @@
package com.ccsens.game.service; package com.ccsens.game.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.cloudutil.feign.TallFeignClient; import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.game.bean.dto.message.*; import com.ccsens.game.bean.dto.message.*;
import com.ccsens.game.bean.po.GameUserJoin; 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.game.persist.dao.GameUserJoinDao;
import com.ccsens.util.JacksonUtil; import com.ccsens.util.JacksonUtil;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.config.RabbitMQConfig;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -34,8 +36,13 @@ public class MessageService implements IMessageService {
@Override @Override
public void sendGameMessageWithGetUrl(ChromeMessageDto message) throws Exception { public void sendGameMessageWithGetUrl(ChromeMessageDto message) throws Exception {
System.out.println(JacksonUtil.beanToJson(message)); System.out.println(JacksonUtil.beanToJson(message));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME, // rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(message)); // 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 @Override

13
tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java

@ -30,6 +30,19 @@ public class ProjectMessageDto {
@NotNull @NotNull
@ApiModelProperty("发送类型 0:ws,1:微信公众号") @ApiModelProperty("发送类型 0:ws,1:微信公众号")
private Byte sendType; 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") @ApiModelProperty("项目ID")
private Long projectId; private Long projectId;
@ApiModelProperty("第几页") @ApiModelProperty("第几页")

14
tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java

@ -43,4 +43,18 @@ public class ProjectMessageVo {
@ApiModelProperty("发送时间") @ApiModelProperty("发送时间")
private Date createTime; private Date createTime;
} }
@Data
@ApiModel("项目动态-返回")
@JsonIgnoreProperties(value = { "handler" })
public static class ProjectMsg{
@JsonIgnore
@ApiModelProperty("消息操作ID")
private Long operationId;
@ApiModelProperty("消息内容")
List<MessageVo.Message> messages;
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
@ApiModelProperty("发送时间")
private Date createTime;
}
} }

7
tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java

@ -32,4 +32,11 @@ public interface SysOperationDao extends SysOperationMapper {
* @return * @return
*/ */
List<MessageVo.Message> queryContent(@Param("operationId") Long operationId); List<MessageVo.Message> queryContent(@Param("operationId") Long operationId);
/**
* 查询项目动态
* @param param
* @return
*/
List<ProjectMessageVo.ProjectMsg> queryProjectMsg(ProjectMessageDto.ProjectMsg param);
} }

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

@ -52,4 +52,12 @@ public interface IProjectMessageService {
* @return * @return
*/ */
CodeEnum markAllRead(ProjectMessageDto.MarkAllRead param, Long userId); CodeEnum markAllRead(ProjectMessageDto.MarkAllRead param, Long userId);
/**
* 查询项目动态
* @param param
* @param userId
* @return
*/
PageInfo<ProjectMessageVo.ProjectMsg> queryProjectMsg(ProjectMessageDto.ProjectMsg param, Long userId);
} }

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

@ -294,4 +294,11 @@ public class ProjectMessageService implements IProjectMessageService {
sysMessageSendDao.markAllRead(userId); sysMessageSendDao.markAllRead(userId);
return CodeEnum.SUCCESS; return CodeEnum.SUCCESS;
} }
@Override
public PageInfo<ProjectMessageVo.ProjectMsg> queryProjectMsg(ProjectMessageDto.ProjectMsg param, Long userId) {
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<ProjectMessageVo.ProjectMsg> list = sysOperationDao.queryProjectMsg(param);
return new PageInfo<>(list);
}
} }

12
tall/src/main/java/com/ccsens/tall/web/ProjectMessageController.java

@ -42,7 +42,7 @@ public class ProjectMessageController {
@MustLogin @MustLogin
@ApiOperation(value = "分页查询消息",notes = "分页查询消息") @ApiOperation(value = "分页查询登录用户收到的消息",notes = "分页查询登录用户收到的消息")
@RequestMapping(value = "queryMsg", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "queryMsg", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectMessageVo.Query> queryMsg(@RequestBody QueryDto<ProjectMessageDto.Query> param) { public JsonResponse<ProjectMessageVo.Query> queryMsg(@RequestBody QueryDto<ProjectMessageDto.Query> param) {
log.info("未读消息请求参数:{}", param); log.info("未读消息请求参数:{}", param);
@ -51,6 +51,16 @@ public class ProjectMessageController {
return JsonResponse.newInstance().ok(messages); return JsonResponse.newInstance().ok(messages);
} }
@MustLogin
@ApiOperation(value = "分页查询项目动态",notes = "分页查询项目动态")
@RequestMapping(value = "queryProjectMsg", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectMessageVo.Query> queryProjectMsg(@RequestBody QueryDto<ProjectMessageDto.ProjectMsg> param) {
log.info("未读消息请求参数:{}", param);
PageInfo<ProjectMessageVo.ProjectMsg> messages = projectMessageService.queryProjectMsg(param.getParam(), param.getUserId());
log.info("未读消息返回结果:{}", messages);
return JsonResponse.newInstance().ok(messages);
}
@MustLogin @MustLogin
@ApiOperation(value = "标记某条消息已读",notes = "标记某条消息已读") @ApiOperation(value = "标记某条消息已读",notes = "标记某条消息已读")
@RequestMapping(value = "markRead", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "markRead", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})

36
tall/src/main/resources/mapper_dao/SysOperationDao.xml

@ -8,7 +8,18 @@
<result column="send_type" jdbcType="TINYINT" property="sendType"></result> <result column="send_type" jdbcType="TINYINT" property="sendType"></result>
<result column="read_status" jdbcType="TINYINT" property="readStatus"></result> <result column="read_status" jdbcType="TINYINT" property="readStatus"></result>
<result column="created_at" jdbcType="TIMESTAMP" property="createTime"></result> <result column="created_at" jdbcType="TIMESTAMP" property="createTime"></result>
<collection property="messages" select="queryContent" column="operation_id" javaType="java.util.List" ofType="com.ccsens.tall.bean.vo.MessageVo$Message"> <collection property="messages" select="queryContent" column="operation_id" javaType="java.util.List"
ofType="com.ccsens.tall.bean.vo.MessageVo$Message">
<result column="content" jdbcType="VARCHAR" property="content"></result>
<result column="type" jdbcType="TINYINT" property="type"></result>
<result column="settings" jdbcType="VARCHAR" property="settings"></result>
</collection>
</resultMap>
<resultMap id="ProjectMsg" type="com.ccsens.tall.bean.vo.ProjectMessageVo$ProjectMsg">
<result column="id" jdbcType="BIGINT" property="operationId"></result>
<result column="created_at" jdbcType="TIMESTAMP" property="createTime"></result>
<collection property="messages" select="queryContent" column="id" javaType="java.util.List"
ofType="com.ccsens.tall.bean.vo.MessageVo$Message">
<result column="content" jdbcType="VARCHAR" property="content"></result> <result column="content" jdbcType="VARCHAR" property="content"></result>
<result column="type" jdbcType="TINYINT" property="type"></result> <result column="type" jdbcType="TINYINT" property="type"></result>
<result column="settings" jdbcType="VARCHAR" property="settings"></result> <result column="settings" jdbcType="VARCHAR" property="settings"></result>
@ -34,20 +45,11 @@
SELECT SELECT
s.id, s.operation_id, s.send_type, s.created_at, s.read_status s.id, s.operation_id, s.send_type, s.created_at, s.read_status
FROM FROM
t_sys_message_send s, t_sys_operation o t_sys_message_send s
WHERE WHERE
s.operation_id = o.id s.receiver_id = #{userId}
<choose>
<when test="param.projectId != null">
AND o.project_id = #{param.projectId}
</when>
<otherwise>
AND s.receiver_id = #{userId}
</otherwise>
</choose>
AND s.send_type = #{param.sendType} AND s.send_type = #{param.sendType}
AND s.rec_status = 0 AND s.rec_status = 0
AND o.rec_status = 0
ORDER BY ORDER BY
s.created_at DESC s.created_at DESC
</select> </select>
@ -64,4 +66,14 @@
ORDER BY ORDER BY
sort sort
</select> </select>
<select id="queryProjectMsg" resultMap="ProjectMsg">
SELECT
o.id,
o.created_at
FROM
t_sys_operation o
WHERE
o.project_id = #{projectId}
AND o.rec_status = 0
</select>
</mapper> </mapper>
Loading…
Cancel
Save