This commit is contained in:
oneao committed 2025-12-31 17:21:39 +08:00
1 parent 52b16ed2b0
commit c26d1b3c81
15 files changed
+315 -42

No files matched your search

@@ -6,8 +6,10 @@ import cn.link56.company.model.dto.AddCompanyUserDTO;
import cn.link56.company.model.dto.DeleteCompanyUserDTO;
import cn.link56.company.model.dto.QueryCompanyUserDTO;
import cn.link56.company.model.dto.UpdateCompanyUserDTO;
import cn.link56.company.model.vo.ChatUserVO;
import cn.link56.company.model.vo.QueryCompanyUserVO;
import cn.link56.company.service.CompanyUserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -43,4 +45,10 @@ public class CompanyUserController {
companyUserService.deleteCompanyUser(deleteCompanyUserDTO);
return Result.success();
}
@GetMapping("/chat/{companyId}")
public Result<List<ChatUserVO>> listCompanyChatUsers(@PathVariable("companyId") Long companyId){
List<ChatUserVO> data = companyUserService.listCompanyChatUsers(companyId);
return Result.success(data);
}
}
@@ -0,0 +1,16 @@
package cn.link56.company.model.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ChatUserVO {
private Long id;
private String name;
private String position;
private String avatar;
private Boolean isOnline;
}
@@ -12,7 +12,9 @@ import cn.link56.company.model.dto.QueryCompanyUserDTO;
import cn.link56.company.model.dto.UpdateCompanyUserDTO;
import cn.link56.company.model.po.Company;
import cn.link56.company.model.po.CompanyUser;
import cn.link56.company.model.vo.ChatUserVO;
import cn.link56.company.model.vo.QueryCompanyUserVO;
import cn.link56.im.storage.SessionManager;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -304,4 +307,24 @@ public class CompanyUserService extends ServiceImpl<CompanyUserMapper, CompanyUs
}
public List<ChatUserVO> listCompanyChatUsers(Long companyId) {
LambdaQueryWrapper<CompanyUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CompanyUser::getCompanyId, companyId)
.eq(CompanyUser::getCanuse, "1");
List<CompanyUser> companyUsers = companyUserMapper.selectList(queryWrapper);
List<ChatUserVO> result = new ArrayList<>(companyUsers.size());
companyUsers.forEach(item -> {
ChatUserVO chatUserVO = new ChatUserVO();
BeanUtils.copyProperties(item, chatUserVO);
chatUserVO.setIsOnline(SessionManager.isOnline(item.getId()));
result.add(chatUserVO);
});
return result;
}
}
@@ -216,9 +216,6 @@ public class MessageHandler {
groupMessageVO.setSenderName(senderName);
groupMessageVO.setSenderAvatar(senderAvatar);
// 通知建立群组关系
// 查询该群在线的用户
List<Long> onlineGroupUsers = imGroupUserService.getGroupOnlineUserIds(groupId);
MessageWriter.broadcastToUsers(onlineGroupUsers,MessageResponse.success(MessageTypeEnums.GROUP,groupId).setData(groupMessageVO));