wl
2022-12-30 50c0bd57d81f638943f1d945cbd6ba2a2289628f
fix: 用户栏目设置消息相关接口修改
11个文件已修改
1个文件已添加
142 ■■■■ 已修改文件
ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/mapper/message/MessageColumnSetMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/IMessageColumnService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageColumnSetServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnSetVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnUserVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/mapper/message/MessageColumnSetMapper.xml 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/mapper/message/MessageMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>