消息增加用户可见性控制

This commit is contained in:
ajaxfan
2021-03-18 15:57:17 +08:00
parent 12e77c1607
commit ed38a454a8
3 changed files with 32 additions and 6 deletions

View File

@ -1,8 +1,13 @@
package com.chinaunicom.mall.ebtp.extend.bizmessage.dao;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
public interface BizMessageMapper extends BaseMapper<BizMessage> {
IPage<BizMessage> findMessage(@Param("param") IPage<BizMessage> page, @Param("userId") String userId);
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper">
<select id="findMessage" resultType="com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage">
SELECT *
FROM biz_message
WHERE authorize = 0
<if test="userId!=null and userId!=''">
UNION ALL
SELECT a.*
FROM ( SELECT * FROM biz_message WHERE authorize = 1) a
INNER JOIN
( SELECT * FROM biz_message_authorize WHERE user_id = #{userId}) b ON a.id = b.message_id
</if>
ORDER BY createtime DESC
</select>
</mapper>

View File

@ -7,9 +7,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dao.BizMessageMapper;
import com.chinaunicom.mall.ebtp.extend.bizmessage.dto.PageDTO;
import com.chinaunicom.mall.ebtp.extend.bizmessage.entity.BizMessage;
@ -27,6 +27,7 @@ import com.chinaunicom.mall.ebtp.extend.bizmessage.vo.DescribeSiteMsgVO;
public class BizMessageConsumerServiceImpl implements BizMessageConsumerService {
private @Autowired BizMessageMapper mapper;
private @Autowired IBaseCacheUserService service;
/**
* 消息概要列表
@ -37,9 +38,8 @@ public class BizMessageConsumerServiceImpl implements BizMessageConsumerService
public IBizMessagePage<DescribeSiteMsgVO> listOutline(PageDTO page) {
page = createPageCondition(page);
IPage<BizMessage> pageEntity = mapper.selectPage(new Page<>(page.getPageNo(), page.getPageSize()),
new QueryWrapper<BizMessage>().select("id", "title", "category", "createtime")
.orderByDesc("createtime"));
IPage<BizMessage> pageEntity = mapper.findMessage(new Page<BizMessage>(page.getPageNo(), page.getPageSize()),
service.getCacheUser().getUserId());
// DAT -> VO 转换
IBizMessagePage<DescribeSiteMsgVO> result = new BizMessagePage<>();