yujian
2019-11-04 148af6b2f57be264c84d0991237fbd7ddea491a4
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java
@@ -6,6 +6,7 @@
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.msg.MsgDeviceReadStateMapper;
import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
@@ -31,15 +32,17 @@
   }
   @Override
   public void addUnreadDeviceMsg(String type, String device, int platform, int msgCount) {
   public void addUnreadDeviceMsg(String type, String device, int platform, int msgCount, String msg, Date msgTime) {
      MsgDeviceReadState state = msgDeviceReadStateMapper.selectByDeviceAndPlatformAndType(device, platform, type);
      if (state != null) {
         MsgDeviceReadState update = new MsgDeviceReadState();
         update.setId(state.getId());
         update.setUnReadCount(state.getUnReadCount() + msgCount);
         update.setUpdateTime(new Date());
         update.setLatestContent(msg);
         update.setLatestContentTime(msgTime);
         msgDeviceReadStateMapper.updateByPrimaryKeySelective(update);
      } else {//
      } else {
         state = new MsgDeviceReadState();
         state.setCreateTime(new Date());
         state.setDevice(device);
@@ -47,13 +50,17 @@
         state.setType(type);
         state.setUnReadCount(msgCount);
         state.setUpdateTime(new Date());
         state.setLatestContent(msg);
         state.setLatestContentTime(msgTime);
         msgDeviceReadStateMapper.insertSelective(state);
      }
   }
   @Transactional
   @Override
   public MsgDeviceReadState getByDeviceAndPlatformAndType(String type, String device, int platform) {
      MsgDeviceReadState state = msgDeviceReadStateMapper.selectByDeviceAndPlatformAndType(device, platform, type);
      MsgDeviceReadState state = msgDeviceReadStateMapper.selectByDeviceAndPlatformAndTypeForUpdate(device, platform,
            type);
      if (state == null) {
         state = new MsgDeviceReadState();
         state.setCreateTime(new Date());
@@ -97,4 +104,12 @@
      return totalCount;
   }
   @Override
   public int getUnReadCount(String device, int platform, String type) {
      MsgDeviceReadState state = getByDeviceAndPlatformAndType(type, device, platform);
      if (state == null)
         return 0;
      return state.getUnReadCount() == null ? 0 : state.getUnReadCount();
   }
}