fix(87708): 动态消息-不选择推送范围,所有人都能看到数据

This commit is contained in:
yjz
2024-07-30 16:30:39 +08:00
parent 0a6b3444ff
commit b33c94c273
4 changed files with 32 additions and 21 deletions
@@ -121,4 +121,8 @@ public class LawsNewsFeed implements Serializable {
@ApiModelProperty(value = "是否可以编辑和删除")
@TableField(exist = false)
private Boolean isEditAndRemove;
@ApiModelProperty(value = "是否管理员")
@TableField(exist = false)
private String isAdmin;
}
@@ -1,13 +1,13 @@
package com.jero.modules.laws.standard.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.laws.standard.entity.LawsNewsFeed;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.laws.standard.entity.LawsNewsFeed;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Description: 动态消息
@@ -18,20 +18,22 @@
<result column="read_count" property="readCount" />
</resultMap>
<select id="getPageList" resultType="com.jero.modules.laws.standard.entity.LawsNewsFeed">
SELECT DISTINCT lnf.*
FROM laws_news_feed lnf
LEFT JOIN laws_push_range lpr ON lnf.id = lpr.unique_relation_flag
WHERE lnf.del_flag = 0
<if test="param.roleCode == 'admin'">
AND (lnf.release_status = 1 OR lnf.writer = #{param.writer})
</if>
<if test="param.roleCode != 'admin'">
AND ((lnf.release_status = 1 AND (lpr.user_id = #{param.writer} OR lnf.push_range_flag = 2))
OR lnf.writer = #{param.writer})
</if>
<if test="param.dynamicHeading != null and param.dynamicHeading != ''">
AND lnf.dynamic_heading LIKE CONCAT('%', #{param.dynamicHeading}, '%')
</if>
ORDER BY release_time DESC
select *
from (select f.*, group_concat(r.user_id) user_id
from laws_news_feed f
left join laws_push_range r on f.id = r.unique_relation_flag
group by f.id) t
<where>
del_flag = 0
<if test="param.dynamicHeading != null and param.dynamicHeading != ''">
and dynamic_heading like concat('%', #{param.dynamicHeading}, '%')
</if>
and (writer = #{param.writer}
<if test="param.isAdmin != null and param.isAdmin != ''">
or release_status = 1
</if>
or (release_status = 1 and user_id like concat('%', #{param.writer}, '%'))
)
</where>
</select>
</mapper>
</mapper>
@@ -68,7 +68,12 @@ public class LawsNewsFeedServiceImpl extends ServiceImpl<LawsNewsFeedMapper, Law
@Override
public IPage<LawsNewsFeed> queryPage(LawsNewsFeed lawsNewsFeed, Integer pageNo, Integer pageSize) {
Page<LawsNewsFeed> page = new Page<>(pageNo, pageSize);
setQueryParam(lawsNewsFeed);
// setQueryParam(lawsNewsFeed);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
lawsNewsFeed.setWriter(loginUser.getId());
if (loginUser.getRoleIds().contains("admin")){
lawsNewsFeed.setIsAdmin("1");
}
IPage<LawsNewsFeed> pageList = lawsNewsFeedMapper.getPageList(page, lawsNewsFeed);
setResultData(pageList.getRecords());
return pageList;