1.新增 移除不存在的会话 Test

This commit is contained in:
乾乾
2025-04-28 19:52:08 +08:00
parent e44f251af7
commit 008d2207b5

View File

@@ -1,8 +1,17 @@
package com.hula.common;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hula.HuLaImServiceApplication;
import com.hula.core.chat.dao.ContactDao;
import com.hula.core.chat.dao.RoomGroupDao;
import com.hula.core.chat.domain.entity.Contact;
import com.hula.core.chat.domain.entity.Room;
import com.hula.core.chat.domain.entity.RoomFriend;
import com.hula.core.chat.domain.entity.RoomGroup;
import com.hula.core.chat.domain.enums.RoomTypeEnum;
import com.hula.core.chat.service.cache.GroupMemberCache;
import com.hula.core.chat.service.cache.RoomCache;
import com.hula.core.chat.service.cache.RoomFriendCache;
import com.hula.core.user.dao.UserDao;
import com.hula.core.user.domain.entity.User;
import com.hula.snowflake.uid.UidGenerator;
@@ -14,6 +23,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.List;
@@ -28,6 +38,49 @@ public class CreateAccount {
@Resource
private UidGenerator uidGenerator;
@Resource
private ContactDao contactDao;
@Resource
private RoomCache roomCache;
@Resource
private RoomFriendCache roomFriendCache;
@Resource
private GroupMemberCache groupMemberCache;
/**
* 移除不存在的会话
*/
@Test
public void removeContacts() {
List<Contact> contacts = contactDao.getBaseMapper().selectList(new QueryWrapper<>());
// 需要移除的会话
List<Long> ids = new ArrayList<>();
for (Contact contact : contacts) {
Room room = roomCache.get(contact.getRoomId());
if(room == null){
ids.add(contact.getId());
} else {
if(room.getType().equals(RoomTypeEnum.FRIEND.getType())){
RoomFriend roomFriend = roomFriendCache.get(contact.getRoomId());
if(roomFriend == null || !roomFriend.getUid1().equals(contact.getUid()) && !roomFriend.getUid2().equals(contact.getUid())){
ids.add(contact.getId());
}
} else {
List<Long> uidList = groupMemberCache.getMemberUidList(contact.getRoomId());
if(uidList.isEmpty() || !uidList.contains(contact.getUid())){
ids.add(contact.getId());
}
}
}
}
System.out.println("需要移除的会话:" + ids);
}
/**
* 批量填充群账号
*/