package com.yeshi.fanli.service.impl.msg; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.mybatis.msg.MsgAccountDetailMapper; import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail; import com.yeshi.fanli.exception.msg.MsgAccountDetailException; import com.yeshi.fanli.service.inter.msg.MsgAccountDetailService; import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; @Service public class MsgAccountDetailServiceImpl implements MsgAccountDetailService { @Resource private MsgAccountDetailMapper msgAccountDetailMapper; @Resource private UserMsgReadStateService userMsgReadStateService; @Override public void addMsgAccountDetail(MsgAccountDetail detail) throws MsgAccountDetailException { if (detail == null) throw new MsgAccountDetailException(1, "消息为空"); if (StringUtil.isNullOrEmpty(detail.getTitle()) || StringUtil.isNullOrEmpty(detail.getContent()) || detail.getType() == null || detail.getUser() == null) throw new MsgAccountDetailException(2, "消息内容不完整"); // 持久化到数据库 detail.setCreateTime(new Date()); detail.setUpdateTime(new Date()); detail.setRead(false); msgAccountDetailMapper.insertSelective(detail); userMsgReadStateService.addAccountMsgUnReadCount(detail.getUser().getId(), 1); } @Override public List listMsgAccountDetail(Long uid, int page) { return msgAccountDetailMapper.listByUid(uid, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE); } @Override public long countMsgAccountDetail(Long uid) { return msgAccountDetailMapper.countByUid(uid); } @Override public void readMsgByUid(Long uid) { msgAccountDetailMapper.setMsgReadByUid(uid); } }