zhuyifan

fix

......@@ -83,7 +83,7 @@ public class WebSocketServer extends TextWebSocketHandler {
public static <T> void sendMessageByUserTypes(List<UserTypeEnum> userTypes, List<String> authUserIds, SocketMessage<T> socketMessage) throws IOException {
final var keys = userSessions.keySet().stream()
.filter(userSessionData -> userTypes.contains(userSessionData.getUserType()))
.filter(userSessionData -> authUserIds.contains(userSessionData.getUserId()))
.filter(userSessionData -> authUserIds.isEmpty() || authUserIds.contains(userSessionData.getUserId()))
.collect(Collectors.toList());
sendMessageToUsers(keys, socketMessage);
}
......
......@@ -89,6 +89,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
......@@ -606,6 +607,7 @@ public class OrderServiceRpcClient {
// 用餐时间为当天,并且非在线支付餐单,发送消息给客户端
if (createOrderDto.getMealTime().toLocalDate().equals(LocalDate.now()) && menuById.getResponse().getOrderRuleJson().getModeOfPayment() != ModeOfPaymentEnum.ONLINE) {
final var userIds = clientResourceTagServiceRpcClient.getOperatorIdsByStallIds(List.of(createOrderDto.getStallId())).stream().map(SingleResourceLabelEntityRefsResponse::getEntityId).distinct().map(String::valueOf).collect(Collectors.toList());
log.info("received userIds:{}", userIds);
final var orderCreateSuccessData = OrderCreateSuccessData.builder()
.orderId(orderResponse.getId())
.build();
......@@ -617,7 +619,7 @@ public class OrderServiceRpcClient {
.data(orderCreateSuccessData)
.build();
try {
WebSocketServer.sendMessageByUserTypes(List.of(UserTypeEnum.CLIENT, UserTypeEnum.KDS), userIds, data);
WebSocketServer.sendMessageByUserTypes(List.of(UserTypeEnum.CLIENT, UserTypeEnum.KDS), Collections.emptyList(), data);
} catch (IOException e) {
log.error("Failed to send message to user", e);
}
......