Class TopicService

java.lang.Object
com.bytedesk.core.topic.TopicService

@Service public class TopicService extends Object
  • Field Details

    • topicRepository

      private final TopicRepository topicRepository
    • modelMapper

      private final org.modelmapper.ModelMapper modelMapper
    • uidUtils

      private final UidUtils uidUtils
    • optimisticLockingHandler

      private final OptimisticLockingHandler optimisticLockingHandler
  • Constructor Details

    • TopicService

      public TopicService()
  • Method Details

    • create

      public void create(String topic, String uid)
    • create

      @Transactional public void create(TopicRequest topicRequest)
    • remove

      @Transactional public void remove(TopicRequest topicRequest)
    • remove

      @Transactional public void remove(String topic, String userUid)
    • subscribe

      @Transactional public void subscribe(String topic, String clientId)
    • unsubscribe

      @Transactional public void unsubscribe(String topic, String clientId)
    • addClientId

      @Transactional public void addClientId(String clientId)
    • doRemoveClientId

      @Transactional private void doRemoveClientId(String clientId)
    • removeClientId

      @Async public void removeClientId(String clientId)
    • findByUid

      @Cacheable(value="topic", key="#uid") public Optional<TopicEntity> findByUid(String uid)
    • findByClientId

      @Cacheable(value="topic", key="#clientId", unless="#result == null") public Optional<TopicEntity> findByClientId(String clientId)
    • findByUserUid

      @Cacheable(value="topic", key="#uid", unless="#result == null") public Optional<TopicEntity> findByUserUid(String uid)
    • findByTopic

      @Cacheable(value="topic", key="#topic", unless="#result == null") public Set<TopicEntity> findByTopic(String topic)
    • save

      @Caching(put=@CachePut(value="topic",key="#topic.userUid")) public TopicEntity save(TopicEntity topic)
    • update

      public void update(String uid, String userUid)
    • delete

      @CacheEvict(value="topic", key="#topic.userUid") public void delete(TopicEntity topic)
    • convertToTopicResponse

      public TopicResponse convertToTopicResponse(TopicEntity topic)