package com.qianwen.smartman.modules.notify.websocket;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import io.jsonwebtoken.Claims;
|
import java.lang.invoke.SerializedLambda;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.core.jwt.JwtUtil;
|
import com.qianwen.core.secure.utils.AuthUtil;
|
import com.qianwen.core.websocket.config.WebSocketMessageSender;
|
import com.qianwen.core.websocket.handler.JsonMessageHandler;
|
import com.qianwen.smartman.modules.notify.service.INotifySystemService;
|
import org.springframework.stereotype.Component;
|
import org.springframework.web.socket.WebSocketSession;
|
|
@Component
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/notify/websocket/InternalMessageDataJsonMessageHandler.class */
|
public class InternalMessageDataJsonMessageHandler implements JsonMessageHandler<InternalMessageRequestJsonWebSocketMessage> {
|
private static final Logger log = LoggerFactory.getLogger(InternalMessageDataJsonMessageHandler.class);
|
private INotifySystemService notifySystemService;
|
|
private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
|
String implMethodName = lambda.getImplMethodName();
|
boolean z = true;
|
switch (implMethodName.hashCode()) {
|
case -1462639958:
|
if (implMethodName.equals("getNotifyUser")) {
|
z = false;
|
break;
|
}
|
break;
|
case 803533544:
|
if (implMethodName.equals("getStatus")) {
|
z = true;
|
break;
|
}
|
break;
|
}
|
switch (z) {
|
case false:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/notify/entity/NotifySystem") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getNotifyUser();
|
};
|
}
|
break;
|
case true:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
|
return (v0) -> {
|
return v0.getStatus();
|
};
|
}
|
break;
|
}
|
throw new IllegalArgumentException("Invalid lambda deserialization");
|
}
|
|
public InternalMessageDataJsonMessageHandler(final INotifySystemService notifySystemService) {
|
this.notifySystemService = notifySystemService;
|
}
|
|
public void handle(WebSocketSession session, InternalMessageRequestJsonWebSocketMessage message) {
|
try {
|
String uri = session.getUri().getQuery();
|
Claims claims = AuthUtil.parseJWT(JwtUtil.getToken(uri.substring(uri.lastIndexOf("=") + 1)));
|
long unNotificationCount = this.notifySystemService.count((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().ne((v0) -> {
|
return v0.getStatus();
|
}, 1)).eq((v0) -> {
|
return v0.getNotifyUser();
|
}, claims.get("user_id")));
|
InternalMessageResponseJsonWebSocketMessage internalMessageResponseJsonWebSocketMessage = new InternalMessageResponseJsonWebSocketMessage();
|
internalMessageResponseJsonWebSocketMessage.setHaveUnread(unNotificationCount > 0);
|
WebSocketMessageSender.send(session, internalMessageResponseJsonWebSocketMessage);
|
} catch (Exception e) {
|
log.error("消息通知websocket连接异常,异常信息为", e);
|
}
|
}
|
|
public String type() {
|
return "internalMessageData";
|
}
|
|
public Class<InternalMessageRequestJsonWebSocketMessage> getMessageClass() {
|
return InternalMessageRequestJsonWebSocketMessage.class;
|
}
|
}
|