23 changed files with 84 additions and 19 deletions
@ -0,0 +1,16 @@ |
|||
package com.bx.implatform.annotation; |
|||
|
|||
import java.lang.annotation.ElementType; |
|||
import java.lang.annotation.Retention; |
|||
import java.lang.annotation.RetentionPolicy; |
|||
import java.lang.annotation.Target; |
|||
import java.util.concurrent.TimeUnit; |
|||
|
|||
/** |
|||
* 在线校验,标注此注解的接口用户必须保持长连接,否则将抛异常 |
|||
*/ |
|||
@Retention(RetentionPolicy.RUNTIME)//运行时生效
|
|||
@Target(ElementType.METHOD)//作用在方法上
|
|||
public @interface OnlineCheck { |
|||
|
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
package com.bx.implatform.aspect; |
|||
|
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.bx.imclient.IMClient; |
|||
import com.bx.implatform.annotation.RedisLock; |
|||
import com.bx.implatform.exception.GlobalException; |
|||
import com.bx.implatform.session.SessionContext; |
|||
import com.bx.implatform.session.UserSession; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.aspectj.lang.ProceedingJoinPoint; |
|||
import org.aspectj.lang.annotation.Around; |
|||
import org.aspectj.lang.annotation.Aspect; |
|||
import org.aspectj.lang.reflect.MethodSignature; |
|||
import org.redisson.api.RLock; |
|||
import org.springframework.core.annotation.Order; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.lang.reflect.Method; |
|||
|
|||
/** |
|||
* @author: blue |
|||
* @date: 2024-06-16 |
|||
* @version: 1.0 |
|||
*/ |
|||
@Slf4j |
|||
@Aspect |
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class OnlineCheckAspect { |
|||
|
|||
private final IMClient imClient; |
|||
|
|||
@Around("@annotation(com.bx.implatform.annotation.OnlineCheck)") |
|||
public Object around(ProceedingJoinPoint joinPoint) throws Throwable { |
|||
UserSession session = SessionContext.getSession(); |
|||
if(!imClient.isOnline(session.getUserId())){ |
|||
throw new GlobalException("您当前的网络连接已断开,请稍后重试"); |
|||
} |
|||
return joinPoint.proceed(); |
|||
} |
|||
|
|||
} |
|||
Loading…
Reference in new issue