message概览
parent
b14c1d6c6d
commit
e5b0ff6fc0
|
|
@ -82,4 +82,7 @@ public class SysMessage extends BaseEntity
|
|||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long sortNewId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer unreadCount;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,6 +101,9 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
|
|||
|
||||
@Override
|
||||
public List<SysMessage> getMsgOverview(SysMessage sysMessage) {
|
||||
if (!SecurityUtils.isAdmin()) {
|
||||
sysMessage.setReceiver(SecurityUtils.getUserId());
|
||||
}
|
||||
return baseMapper.getMsgOverview(sysMessage);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,30 +126,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="getMsgOverview" parameterType="SysMessage" resultMap="SysMessageResult">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
(
|
||||
t.*,
|
||||
IFNULL(s.unread_count, 0) AS unread_count
|
||||
FROM (
|
||||
SELECT
|
||||
`imei`,
|
||||
`receiver`,
|
||||
`title`,
|
||||
`msg_type`,
|
||||
`read_status`,
|
||||
`content`,
|
||||
`rich_content`,
|
||||
`img_url`,
|
||||
`link_url`,
|
||||
`create_time`, -- 必须加
|
||||
`id`, -- 必须加
|
||||
imei, receiver, title, msg_type, read_status,
|
||||
content, rich_content, img_url, link_url,
|
||||
create_time, id,
|
||||
ROW_NUMBER() OVER (PARTITION BY msg_type ORDER BY create_time DESC, id DESC) AS rn
|
||||
FROM
|
||||
sys_message d
|
||||
sys_message
|
||||
WHERE
|
||||
-- 正确写法:包含今天所有时间
|
||||
d.create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
||||
AND d.create_time < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||||
create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
||||
AND create_time < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||||
and receiver = #{receiver}
|
||||
) t
|
||||
WHERE
|
||||
t.rn = 1;
|
||||
LEFT JOIN (
|
||||
SELECT msg_type, COUNT(*) AS unread_count
|
||||
FROM sys_message
|
||||
WHERE read_status = 0
|
||||
AND create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
||||
AND create_time < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
|
||||
and receiver = #{receiver}
|
||||
GROUP BY msg_type
|
||||
) s ON t.msg_type = s.msg_type
|
||||
WHERE t.rn = 1;
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue