package com.yeshi.fanli.service.impl.msg; import java.util.Date; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.msg.UserMsgUnReadNumMapper; import com.yeshi.fanli.entity.bus.msg.UserMsgUnReadNum; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.service.inter.msg.MsgAccountDetailService; import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService; import com.yeshi.fanli.service.inter.msg.MsgMoneyDetailService; import com.yeshi.fanli.service.inter.msg.MsgOrderDetailService; import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService; import com.yeshi.fanli.service.inter.msg.UserSystemMsgService; @Service public class UserMsgReadStateServiceImpl implements UserMsgReadStateService { @Resource private UserMsgUnReadNumMapper userMsgUnReadNumMapper; @Resource private MsgAccountDetailService msgAccountDetailService; @Resource private MsgOrderDetailService msgOrderDetailService; @Resource private MsgInviteDetailService msgInviteDetailService; @Resource private MsgMoneyDetailService msgMoneyDetailService; @Resource private UserSystemMsgService userSystemMsgService; private UserMsgUnReadNum getUserMsgUnReadNum(Long uid) { UserMsgUnReadNum userMsgUnReadNum = userMsgUnReadNumMapper.selectByUid(uid); if (userMsgUnReadNum == null) { UserMsgUnReadNum um = new UserMsgUnReadNum(); um.setCreateTime(new Date()); um.setUser(new UserInfo(uid)); userMsgUnReadNumMapper.insertSelective(um); return userMsgUnReadNumMapper.selectByPrimaryKey(um.getId()); } return userMsgUnReadNum; } @Override public void addOrderMsgUnReadCount(Long uid, int count) { UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeOrder(num.getTypeOrder() + count); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void addAccountMsgUnReadCount(Long uid, int count) { UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeAccount(num.getTypeAccount() + count); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void addMoneyMsgUnReadCount(Long uid, int count) { UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeMoney(num.getTypeMoney() + count); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void addInviteMsgUnReadCount(Long uid, int count) { UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeInvite(num.getTypeInvite() + count); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void addSystemMsgUnReadCount(Long uid, int count) { UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeSystem(num.getTypeSystem() + count); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public UserMsgUnReadNum getReadStateByUid(Long uid) { return getUserMsgUnReadNum(uid); } @Override public void readOrderMsg(Long uid) { msgOrderDetailService.readMsgByUid(uid); UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeOrder(0); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void readAccountMsg(Long uid) { msgAccountDetailService.readMsgByUid(uid); UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeAccount(0); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void readMoneyMsg(Long uid) { msgMoneyDetailService.readMsgByUid(uid); UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeMoney(0); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void readInviteMsg(Long uid) { msgInviteDetailService.readMsgByUid(uid); UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeInvite(0); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Override public void readUserSystemMsg(Long uid) { userSystemMsgService.readMsgByUid(uid); UserMsgUnReadNum num = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(num.getId()); update.setTypeSystem(0); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); } @Transactional @Override public void setAllMsgRead(Long uid) { UserMsgUnReadNum userMsgNum = getUserMsgUnReadNum(uid); UserMsgUnReadNum update = new UserMsgUnReadNum(); update.setId(userMsgNum.getId()); update.setTypeAccount(0); update.setTypeInvite(0); update.setTypeMoney(0); update.setTypeOrder(0); update.setTypeScore(0); update.setTypeSystem(0); update.setUpdateTime(new Date()); userMsgUnReadNumMapper.updateByPrimaryKeySelective(update); readAccountMsg(uid); readOrderMsg(uid); readMoneyMsg(uid); readInviteMsg(uid); readUserSystemMsg(uid); } }