/** 
 | 
 * Copyright (c) 2019 人人开源 All rights reserved. 
 | 
 * 
 | 
 * https://www.renren.io 
 | 
 * 
 | 
 * 版权所有,侵权必究! 
 | 
 */ 
 | 
package com.zt.modules.message.service; 
 | 
  
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.zt.common.constant.Constant; 
 | 
import com.zt.common.service.BaseService; 
 | 
import com.zt.modules.message.dao.SysNoticeUserDao; 
 | 
import com.zt.modules.message.enums.NoticeReadStatus; 
 | 
import com.zt.modules.message.model.SysNoticeUser; 
 | 
  
 | 
/** 
 | 
 * 我的通知 
 | 
 * 
 | 
 * @author hehz 
 | 
 */ 
 | 
@Service 
 | 
public class SysNoticeUserService extends BaseService<SysNoticeUserDao, SysNoticeUser> { 
 | 
  
 | 
    /** 
 | 
     * 获取被通知的用户 
 | 
     */ 
 | 
    public List<SysNoticeUser> getNoticeUserList(Long noticeId) { 
 | 
        return baseDao.getNoticeUserList(noticeId); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 标记我的通知为已读 
 | 
     * 
 | 
     * @param receiverId 
 | 
     *            接收者ID 
 | 
     * @param noticeId 
 | 
     *            通知ID 
 | 
     */ 
 | 
    public void updateReadStatus(Long receiverId, Long noticeId) { 
 | 
        SysNoticeUser entity = new SysNoticeUser().setReceiverId(receiverId).setNoticeId(noticeId) 
 | 
                .setStatus(NoticeReadStatus.READ.value()).setReadDate(new Date()); 
 | 
  
 | 
        // 标记为已读 
 | 
        QueryWrapper<SysNoticeUser> query = new QueryWrapper<>(); 
 | 
        query.eq("receiver_id", receiverId); 
 | 
        query.eq("notice_id", noticeId); 
 | 
        baseDao.update(entity, query); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 未读的通知数 
 | 
     * 
 | 
     * @param receiverId 
 | 
     *            接收者ID 
 | 
     */ 
 | 
    public int getUnReadNoticeCount(Long receiverId) { 
 | 
        return baseDao.selectCount(new QueryWrapper<SysNoticeUser>().eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO) 
 | 
                .lambda().eq(SysNoticeUser::getReceiverId, receiverId) 
 | 
                .eq(SysNoticeUser::getStatus, NoticeReadStatus.UNREAD.value())); 
 | 
    } 
 | 
} 
 |