消息中心-一键标记已读功能

This commit is contained in:
ronger 2022-05-25 21:36:53 +08:00
parent 843b8b723a
commit 930dca3b59
5 changed files with 35 additions and 0 deletions

View File

@ -51,4 +51,11 @@ public interface NotificationMapper extends Mapper<Notification> {
* @return * @return
*/ */
Integer readNotification(@Param("id") Integer id); Integer readNotification(@Param("id") Integer id);
/**
* 标记所有消息已读
* @param idUser
* @return
*/
Integer readAllNotification(@Param("idUser") Integer idUser);
} }

View File

@ -3,6 +3,7 @@ package com.rymcu.forest.service;
import com.rymcu.forest.core.service.Service; import com.rymcu.forest.core.service.Service;
import com.rymcu.forest.dto.NotificationDTO; import com.rymcu.forest.dto.NotificationDTO;
import com.rymcu.forest.entity.Notification; import com.rymcu.forest.entity.Notification;
import com.rymcu.forest.web.api.exception.BaseApiException;
import java.util.List; import java.util.List;
@ -47,6 +48,14 @@ public interface NotificationService extends Service<Notification> {
/** /**
* 标记消息已读 * 标记消息已读
* @param id * @param id
* @return
*/ */
Integer readNotification(Integer id); Integer readNotification(Integer id);
/**
* 标记所有消息已读
* @return
* @throws BaseApiException
*/
Integer readAllNotification() throws BaseApiException;
} }

View File

@ -7,6 +7,8 @@ import com.rymcu.forest.mapper.NotificationMapper;
import com.rymcu.forest.service.NotificationService; import com.rymcu.forest.service.NotificationService;
import com.rymcu.forest.util.BeanCopierUtil; import com.rymcu.forest.util.BeanCopierUtil;
import com.rymcu.forest.util.NotificationUtils; import com.rymcu.forest.util.NotificationUtils;
import com.rymcu.forest.util.UserUtils;
import com.rymcu.forest.web.api.exception.BaseApiException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -70,4 +72,9 @@ public class NotificationServiceImpl extends AbstractService<Notification> imple
public Integer readNotification(Integer id) { public Integer readNotification(Integer id) {
return notificationMapper.readNotification(id); return notificationMapper.readNotification(id);
} }
@Override
public Integer readAllNotification() throws BaseApiException {
return notificationMapper.readAllNotification(Objects.requireNonNull(UserUtils.getCurrentUserByToken()).getIdUser());
}
} }

View File

@ -65,4 +65,13 @@ public class NotificationController {
return GlobalResultGenerator.genSuccessResult("标记已读成功"); return GlobalResultGenerator.genSuccessResult("标记已读成功");
} }
@PutMapping("/read-all")
public GlobalResult readAll() throws BaseApiException {
Integer result = notificationService.readAllNotification();
if (result == 0) {
return GlobalResultGenerator.genErrorResult("标记已读失败");
}
return GlobalResultGenerator.genSuccessResult("标记已读成功");
}
} }

View File

@ -25,6 +25,9 @@
<update id="readNotification"> <update id="readNotification">
update forest_notification set has_read = '1' where id = #{id} update forest_notification set has_read = '1' where id = #{id}
</update> </update>
<update id="readAllNotification">
update forest_notification set has_read = '1' where id_user = #{idUser} and has_read = '0'
</update>
<select id="selectUnreadNotifications" resultMap="BaseResultMapper"> <select id="selectUnreadNotifications" resultMap="BaseResultMapper">
select * from forest_notification where has_read = '0' and id_user = #{idUser} order by created_time desc select * from forest_notification where has_read = '0' and id_user = #{idUser} order by created_time desc
</select> </select>