ソースを参照

大数据查新查重服务bug解决

lulihong 3 年 前
コミット
727bcf8bc2

+ 27 - 0
business/base-service/src/main/java/com/yihu/jw/internet/service/YKYKCommonService.java

@ -0,0 +1,27 @@
package com.yihu.jw.internet.service;
import com.yihu.jw.internet.dao.InternetUpLogDao;
import com.yihu.jw.internet.entity.InternetUpErrorLogDO;
import com.yihu.mysql.query.BaseJpaService;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
/**
 * Created by wsy on 2021/9/7.
 */
public class YKYKCommonService extends BaseJpaService<InternetUpErrorLogDO, InternetUpLogDao> {
    private org.slf4j.Logger logger = LoggerFactory.getLogger(YKYKCommonService.class);
    @Autowired
    private InternetUpErrorLogService internetUpErrorLogService;
    @Autowired
    private InternetUpLogDao internetUpLogDao;
    @Value("{fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
}

+ 37 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/aop/ClientSearchRequestAspect.java

@ -0,0 +1,37 @@
package com.yihu.jw.base.aop;
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.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.lang.reflect.Method;
/**
 * Created by wsy on 2021/9/7.
 */
@Order(5)
@Aspect
@Component
public class ClientSearchRequestAspect {
    private static final String REQ_LIMIT = "req_limit";
    public static int RESPONSE_STATUS_CODE = 1000;
    @Around("execution(* com.yihu.jw.base.endpoint.searchClient.ClientSearchEndpoint.saveBaseSearchNoveltyRepeat(..))"
            +"&& @annotation(com.yihu.jw.base.aop.ClientSearchRequestLimit)")
    public Object method(ProceedingJoinPoint pjp) throws Throwable{
        MethodSignature signature = (MethodSignature) pjp.getSignature();
        Method method = signature.getMethod();//获取被拦截的方法
        ClientSearchRequestLimit limit = method.getAnnotation(ClientSearchRequestLimit.class);
        if ( limit == null ){
            return pjp.proceed();
        }
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        return requestAttributes;
    }
}

+ 18 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/aop/ClientSearchRequestLimit.java

@ -0,0 +1,18 @@
package com.yihu.jw.base.aop;
import java.lang.annotation.*;
/**
 * Created by wsy on 2021/9/7.
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ClientSearchRequestLimit {
    int time() default 60;
    int count() default 2;
    int waits() default 300;
}