admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserMsgReadStateServiceImpl.java
@@ -1,219 +1,224 @@
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.MsgOtherDetailService;
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 MsgOtherDetailService msgOtherDetailService;
   @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 void addOtherMsgUnReadCount(Long uid, int count) {
      UserMsgUnReadNum num = getUserMsgUnReadNum(uid);
      UserMsgUnReadNum update = new UserMsgUnReadNum();
      update.setId(num.getId());
      update.setTypeOther(num.getTypeOther() + count);
      update.setUpdateTime(new Date());
      userMsgUnReadNumMapper.updateByPrimaryKeySelective(update);
   }
   @Override
   public UserMsgUnReadNum getReadStateByUid(Long uid) {
      return getUserMsgUnReadNum(uid);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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.setTypeOrder(0);
      update.setUpdateTime(new Date());
      userMsgUnReadNumMapper.updateByPrimaryKeySelective(update);
      readAccountMsg(uid);
      readOrderMsg(uid);
      readMoneyMsg(uid);
      readInviteMsg(uid);
      readUserSystemMsg(uid);
      readOtherMsg(uid);
   }
   @Override
   public void readOtherMsg(Long uid) {
      msgOtherDetailService.readMsgByUid(uid);
      UserMsgUnReadNum num = getUserMsgUnReadNum(uid);
      UserMsgUnReadNum update = new UserMsgUnReadNum();
      update.setId(num.getId());
      update.setTypeOther(0);
      update.setUpdateTime(new Date());
      userMsgUnReadNumMapper.updateByPrimaryKeySelective(update);
   }
}
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.money.msg.MsgMoneyDetailService;
import com.yeshi.fanli.service.inter.msg.MsgOtherDetailService;
import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService;
import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.user.invite.MsgInviteDetailService;
import com.yeshi.fanli.service.inter.user.msg.MsgAccountDetailService;
@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 MsgOtherDetailService msgOtherDetailService;
   @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 void addOtherMsgUnReadCount(Long uid, int count) {
      UserMsgUnReadNum num = getUserMsgUnReadNum(uid);
      UserMsgUnReadNum update = new UserMsgUnReadNum();
      update.setId(num.getId());
      update.setTypeOther(num.getTypeOther() + count);
      update.setUpdateTime(new Date());
      userMsgUnReadNumMapper.updateByPrimaryKeySelective(update);
   }
   @Override
   public UserMsgUnReadNum getReadStateByUid(Long uid) {
      return getUserMsgUnReadNum(uid);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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);
   }
   @Transactional
   @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.setTypeOrder(0);
      update.setUpdateTime(new Date());
      update.setGuanXuanReadTime(new Date());
      userMsgUnReadNumMapper.updateByPrimaryKeySelective(update);
      readAccountMsg(uid);
      readOrderMsg(uid);
      readMoneyMsg(uid);
      readInviteMsg(uid);
      readUserSystemMsg(uid);
      readOtherMsg(uid);
   }
   @Override
   public void readOtherMsg(Long uid) {
      msgOtherDetailService.readMsgByUid(uid);
      UserMsgUnReadNum num = getUserMsgUnReadNum(uid);
      UserMsgUnReadNum update = new UserMsgUnReadNum();
      update.setId(num.getId());
      update.setTypeOther(0);
      update.setUpdateTime(new Date());
      userMsgUnReadNumMapper.updateByPrimaryKeySelective(update);
   }
   @Override
   public void updateSelective(UserMsgUnReadNum num) {
      if (num != null)
         userMsgUnReadNumMapper.updateByPrimaryKeySelective(num);
   }
}