🐛 消息通知分页问题修复

This commit is contained in:
ronger 2021-02-24 09:08:56 +08:00
parent b7437b01a1
commit eacb753e55
3 changed files with 16 additions and 7 deletions

View File

@ -1,6 +1,7 @@
package com.rymcu.forest.mapper;
import com.rymcu.forest.core.mapper.Mapper;
import com.rymcu.forest.dto.NotificationDTO;
import com.rymcu.forest.entity.Notification;
import org.apache.ibatis.annotations.Param;
@ -23,7 +24,7 @@ public interface NotificationMapper extends Mapper<Notification> {
* @param idUser
* @return
*/
List<Notification> selectNotifications(@Param("idUser") Integer idUser);
List<NotificationDTO> selectNotifications(@Param("idUser") Integer idUser);
/**
* 获取消息数据

View File

@ -49,13 +49,12 @@ public class NotificationServiceImpl extends AbstractService<Notification> imple
@Override
public List<NotificationDTO> findNotifications(Integer idUser) {
List<Notification> list = notificationMapper.selectNotifications(idUser);
List<NotificationDTO> notifications = new ArrayList<>();
List<NotificationDTO> list = notificationMapper.selectNotifications(idUser);
list.forEach(notification -> {
NotificationDTO notificationDTO = genNotification(notification);
// 判断关联数据是否已删除
if (Objects.nonNull(notificationDTO.getAuthor())) {
notifications.add(notificationDTO);
BeanCopierUtil.copy(notificationDTO, notification);
} else {
// 关联数据已删除,且未读
if (unRead.equals(notification.getHasRead())) {
@ -66,10 +65,10 @@ public class NotificationServiceImpl extends AbstractService<Notification> imple
dto.setDataType("-1");
dto.setHasRead("1");
dto.setCreatedTime(notification.getCreatedTime());
notifications.add(dto);
BeanCopierUtil.copy(dto, notification);
}
});
return notifications;
return list;
}
private NotificationDTO genNotification(Notification notification) {

View File

@ -10,6 +10,15 @@
<result column="has_read" property="hasRead"></result>
<result column="created_time" property="createdTime"></result>
</resultMap>
<resultMap id="DTOResultMapper" type="com.rymcu.forest.dto.NotificationDTO">
<id column="id" property="idNotification"></id>
<result column="id_user" property="idUser"></result>
<result column="data_type" property="dataType"></result>
<result column="data_id" property="dataId"></result>
<result column="data_summary" property="dataSummary"></result>
<result column="has_read" property="hasRead"></result>
<result column="created_time" property="createdTime"></result>
</resultMap>
<insert id="insertNotification">
insert into forest_notification (id_user, data_type, data_id, data_summary, created_time) values (#{idUser}, #{dataType}, #{dataId}, #{dataSummary}, sysdate())
</insert>
@ -19,7 +28,7 @@
<select id="selectUnreadNotifications" resultMap="BaseResultMapper">
select * from forest_notification where has_read = '0' and id_user = #{idUser} order by created_time desc
</select>
<select id="selectNotifications" resultMap="BaseResultMapper">
<select id="selectNotifications" resultMap="DTOResultMapper">
select * from forest_notification where id_user = #{idUser} order by created_time desc
</select>
<select id="selectNotification" resultMap="BaseResultMapper">