ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java
@@ -62,11 +62,11 @@ return CommonResult.success(iMessageColumnService.list()); } @ApiOperation(value = "获取显示的栏目") @ApiOperation(value = "获取用户的栏目设置") @RequestMapping(value = "/getShowColumn", method = RequestMethod.GET) @ResponseBody public CommonResult getShowColumn() { return CommonResult.success(iMessageColumnService.list(new LambdaQueryWrapper<MessageColumn>().eq(MessageColumn::getIsShow,1))); public CommonResult getShowColumn(@RequestParam Integer id) { return CommonResult.success(iMessageColumnService.listColumnUser(id)); } @ApiOperation(value = "获取栏目分页查询") ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -91,6 +91,19 @@ return CommonResult.failed(); } @ApiOperation("消息已查看") @PostMapping("/modification_batch") public CommonResult updateBatchMessage(List<Long> ids) { ids.forEach(item -> { Message message = new Message(); message.setId(item); message.setIsView(1); iMessageService.updateById(message); }); return CommonResult.success("success"); } @ApiOperation("批量删除消息") @RequestMapping(value = "/delete", method = RequestMethod.DELETE) @ResponseBody ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
@@ -45,6 +45,12 @@ @ApiModelProperty(value = "状态0-未发布1-已发布") private Integer status; @ApiModelProperty(value = "是否查看0-未发布1-已发布") private Integer isView; @ApiModelProperty(value = "是否查看0-未发布1-已发布") private String targetTo; @ApiModelProperty(value = "响应结果") private String respondResult; } ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java
@@ -16,5 +16,7 @@ * @since 2022-10-12 */ public interface MessageColumnSetMapper extends BaseMapper<MessageColumnSet> { List<MessageColumnSetVO> selectColumnAndCount(@Param(value = "userId") Long userId); List<MessageColumnSetVO> selectColumn(@Param(value = "userId") Long userId); Integer selectColumnCount(Long userId, Integer id); } ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java
@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; import com.ycl.vo.message.MessageColumnUserVO; import com.ycl.vo.message.MessageVO; import java.util.List; /** * <p> @@ -16,4 +19,6 @@ */ public interface MessageMapper extends BaseMapper<Message> { Page<MessageVO> selectMessagePage(Page<Message> page, MessageParam messageParam); } List<MessageColumnUserVO> selectUserColumn(Integer id); } ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java
@@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.dto.message.MessageColumnParam; import com.ycl.entity.message.MessageColumn; import com.ycl.vo.message.MessageColumnSetVO; import com.ycl.vo.message.MessageColumnUserVO; import java.util.List; /** * <p> @@ -16,4 +20,6 @@ public interface IMessageColumnService extends IService<MessageColumn> { IPage<MessageColumn> list(MessageColumnParam messageColumnParam); List<MessageColumnUserVO> listColumnUser(Integer id); } ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java
@@ -7,8 +7,15 @@ import com.ycl.dto.message.MessageColumnParam; import com.ycl.entity.message.MessageColumn; import com.ycl.mapper.message.MessageColumnMapper; import com.ycl.mapper.message.MessageMapper; import com.ycl.service.message.IMessageColumnService; import com.ycl.vo.message.MessageColumnUserVO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -20,6 +27,10 @@ */ @Service public class MessageColumnServiceImpl extends ServiceImpl<MessageColumnMapper, MessageColumn> implements IMessageColumnService { @Resource MessageMapper messageMapper; @Override public IPage<MessageColumn> list(MessageColumnParam messageColumnParam) { Page<MessageColumn> page = new Page<>(messageColumnParam.getCurrent(), messageColumnParam.getPageSize()); @@ -28,4 +39,21 @@ Page<MessageColumn> result = baseMapper.selectPage(page, queryWrapper); return result; } @Override public List<MessageColumnUserVO> listColumnUser(Integer id) { List<MessageColumnUserVO> messageColumnUserVOS = messageMapper.selectUserColumn(id); List<Long> ids = messageColumnUserVOS.stream().map(item -> item.getId()).collect(Collectors.toList()); baseMapper .selectList(new LambdaQueryWrapper<MessageColumn>().eq(MessageColumn::getIsShow, 1)) .stream() .forEach(item -> { if (!ids.contains(item.getId())) { MessageColumnUserVO messageColumnUserVO = new MessageColumnUserVO(); BeanUtils.copyProperties(item, messageColumnUserVO); messageColumnUserVOS.add(messageColumnUserVO); } }); return messageColumnUserVOS; } } ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java
@@ -26,6 +26,10 @@ @Override public List<MessageColumnSetVO> listColumnAndPage(Long userId) { return messageColumnSetMapper.selectColumnAndCount(userId); List<MessageColumnSetVO> messageColumnSetVOS = messageColumnSetMapper.selectColumn(userId); messageColumnSetVOS.forEach(item -> { item.setMessageNumber(messageColumnSetMapper.selectColumnCount(userId, item.getId())); }); return messageColumnSetVOS; } } ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java
@@ -13,4 +13,7 @@ @ApiModelProperty(value = "消息数目") private Integer messageNumber; @ApiModelProperty(value = "消息栏目id") private Integer id; } ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnUserVO.java
New file @@ -0,0 +1,9 @@ package com.ycl.vo.message; import com.ycl.entity.message.MessageColumn; import lombok.Data; @Data public class MessageColumnUserVO extends MessageColumn { private Integer isReceive; } ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml
@@ -4,21 +4,22 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.entity.message.MessageColumnSet"> <id column="id" property="id" /> <result column="user_id" property="userId" /> <result column="message_column_id" property="messageColumnId" /> <result column="is_receive" property="isReceive" /> <id column="id" property="id"/> <result column="user_id" property="userId"/> <result column="message_column_id" property="messageColumnId"/> <result column="is_receive" property="isReceive"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, user_id, message_column_id, is_receive id , user_id, message_column_id, is_receive </sql> <select id="selectColumnAndCount" resultType="com.ycl.vo.message.MessageColumnSetVO" > <select id="selectColumn" resultType="com.ycl.vo.message.MessageColumnSetVO"> SELECT count( 1 ) AS messageNumber, t2.column_name AS columnName t2.column_name AS columnName, t2.id FROM `ums_message_column_set` t1 LEFT JOIN ums_message_column t2 ON t1.message_column_id = t2.id @@ -26,11 +27,25 @@ <where> t1.is_receive=1 <if test="userId !=null"> and t1.user_id = #{userId} and t1.user_id = #{userId} </if> </where> GROUP BY t2.column_name GROUP BY t2.id </select> <select id="selectColumnCount" resultType="java.lang.Integer"> SELECT COUNT(1) as count FROM `ums_message_column_set` t1 LEFT JOIN ums_message_column t2 ON t1.message_column_id = t2.id LEFT JOIN ums_message t3 ON t2.id = t3.message_type where t1.user_id = #{userId} and t3.target_to=#{userId} AND t2.id=#{id} AND t3.is_view=0 </select> </mapper> ycl-platform/src/main/resources/mapper/message/MessageMapper.xml
@@ -58,8 +58,14 @@ <if test="messageParam.channelCode !='' and messageParam.channelCode != null"> and t1.channel_code=#{messageParam.channelCode} </if> <if test="messageParam.targetTo !='' and messageParam.targetTo != null"> and t1.target_to=#{messageParam.targetTo} </if> <if test="messageParam.messageType != null"> and t1.message_type=#{messageParam.messageType} </if> <if test="messageParam.isView != null"> and t1.is_view=#{messageParam.isView} </if> <if test="messageParam.startTime != null and messageParam.startTime != '' and messageParam.endTime != null and messageParam.endTime != '' "> and t1.create_time between #{messageParam.startTime} and #{messageParam.endTime} @@ -80,4 +86,15 @@ </where> </select> <select id="selectUserColumn" resultType="com.ycl.vo.message.MessageColumnUserVO"> SELECT t1.*, t2.is_receive FROM ums_message_column t1 LEFT JOIN ums_message_column_set t2 ON t1.id = t2.message_column_id WHERE t2.user_id=#{id} and t1.is_show=1 </select> </mapper>