GroupInitService.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.zhentao.information.service;
  2. import com.zhentao.groups.dto.GroupDto;
  3. import com.zhentao.groups.service.GroupsService;
  4. import com.zhentao.information.cache.GroupMemberCache;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.stereotype.Service;
  7. import javax.annotation.PostConstruct;
  8. import javax.annotation.Resource;
  9. import java.util.List;
  10. /**
  11. * 群聊初始化服务
  12. * 用于初始化群成员缓存
  13. */
  14. @Slf4j
  15. @Service
  16. public class GroupInitService {
  17. @Resource
  18. private GroupsService groupsService;
  19. @Resource
  20. private GroupMemberCache groupMemberCache;
  21. /**
  22. * 在应用启动时初始化群成员缓存
  23. */
  24. @PostConstruct
  25. public void init() {
  26. try {
  27. List<GroupDto> groupList = groupsService.getList();
  28. groupList.forEach(group -> {
  29. groupMemberCache.updateGroupMembers(group.getGroupId(), group.getUid());
  30. });
  31. log.info("群成员缓存初始化完成,共 {} 个群", groupList.size());
  32. } catch (Exception e) {
  33. log.error("群成员缓存初始化失败", e);
  34. }
  35. }
  36. /**
  37. * 刷新群成员缓存
  38. */
  39. public void refreshGroupMemberCache() {
  40. try {
  41. List<GroupDto> groupList = groupsService.getList();
  42. groupList.forEach(group -> {
  43. groupMemberCache.updateGroupMembers(group.getGroupId(), group.getUid());
  44. });
  45. log.info("群成员缓存刷新完成,共 {} 个群", groupList.size());
  46. } catch (Exception e) {
  47. log.error("群成员缓存刷新失败", e);
  48. }
  49. }
  50. }