diff --git a/code/link56/link56-backend/src/main/java/cn/link56/company/controller/CompanyUserController.java b/code/link56/link56-backend/src/main/java/cn/link56/company/controller/CompanyUserController.java index 0bee690c..3a2237de 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/company/controller/CompanyUserController.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/company/controller/CompanyUserController.java @@ -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> listCompanyChatUsers(@PathVariable("companyId") Long companyId){ + List data = companyUserService.listCompanyChatUsers(companyId); + return Result.success(data); + } } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/company/model/vo/ChatUserVO.java b/code/link56/link56-backend/src/main/java/cn/link56/company/model/vo/ChatUserVO.java new file mode 100644 index 00000000..d1ad3989 --- /dev/null +++ b/code/link56/link56-backend/src/main/java/cn/link56/company/model/vo/ChatUserVO.java @@ -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; +} diff --git a/code/link56/link56-backend/src/main/java/cn/link56/company/service/CompanyUserService.java b/code/link56/link56-backend/src/main/java/cn/link56/company/service/CompanyUserService.java index f920b465..0ca59ad6 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/company/service/CompanyUserService.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/company/service/CompanyUserService.java @@ -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 listCompanyChatUsers(Long companyId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CompanyUser::getCompanyId, companyId) + .eq(CompanyUser::getCanuse, "1"); + + List companyUsers = companyUserMapper.selectList(queryWrapper); + + List 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; + } + } diff --git a/code/link56/link56-backend/src/main/java/cn/link56/im/handler/MessageHandler.java b/code/link56/link56-backend/src/main/java/cn/link56/im/handler/MessageHandler.java index 78bd6a8a..b55ff5b9 100644 --- a/code/link56/link56-backend/src/main/java/cn/link56/im/handler/MessageHandler.java +++ b/code/link56/link56-backend/src/main/java/cn/link56/im/handler/MessageHandler.java @@ -216,9 +216,6 @@ public class MessageHandler { groupMessageVO.setSenderName(senderName); groupMessageVO.setSenderAvatar(senderAvatar); - // 通知建立群组关系 - - // 查询该群在线的用户 List onlineGroupUsers = imGroupUserService.getGroupOnlineUserIds(groupId); MessageWriter.broadcastToUsers(onlineGroupUsers,MessageResponse.success(MessageTypeEnums.GROUP,groupId).setData(groupMessageVO)); diff --git a/code/link56/link56-frontend-new/.env.test b/code/link56/link56-frontend-new/.env.test index 9ab3d032..f83a3c31 100644 --- a/code/link56/link56-frontend-new/.env.test +++ b/code/link56/link56-frontend-new/.env.test @@ -1,2 +1,2 @@ -VITE_SERVER_BASEURL = 'http://127.0.0.1:8084' -VITE_WEBSOCKET_BASEURL = 'ws://127.0.0.1:8090/ws' \ No newline at end of file +VITE_SERVER_BASEURL = 'http://192.168.1.137:8084' +VITE_WEBSOCKET_BASEURL = 'ws://192.168.1.137:8090/ws' \ No newline at end of file diff --git a/code/link56/link56-frontend-new/src/components/ChatUserSelect.vue b/code/link56/link56-frontend-new/src/components/ChatUserSelect.vue new file mode 100644 index 00000000..cc95cf93 --- /dev/null +++ b/code/link56/link56-frontend-new/src/components/ChatUserSelect.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/code/link56/link56-frontend-new/src/layout/components/header.vue b/code/link56/link56-frontend-new/src/layout/components/header.vue index 7a70510a..3c970da6 100644 --- a/code/link56/link56-frontend-new/src/layout/components/header.vue +++ b/code/link56/link56-frontend-new/src/layout/components/header.vue @@ -60,7 +60,7 @@ function isActive(path: string) {
- +