package com.ks.daylucky.aspect;
|
|
import com.ks.app.entity.AppInfo;
|
import com.ks.daylucky.pojo.VO.AcceptData;
|
import com.ks.daylucky.service.impl.AppManager;
|
import com.ks.daylucky.util.ApiCodeConstant;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.annotation.Around;
|
import org.aspectj.lang.annotation.Aspect;
|
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 org.yeshi.utils.JsonUtil;
|
import org.yeshi.utils.StringUtil;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.PrintWriter;
|
import java.util.*;
|
|
/**
|
* 参数检查AOP
|
*/
|
@Aspect
|
@Order(2)
|
@Component
|
public class VerifyAppAspect {
|
|
@Resource
|
private AppManager appManager;
|
|
|
public static final String EDP = "execution(* com.ks.daylucky.controller.api.client.**.*(..))";
|
|
@Around(EDP)
|
public Object verifyApp(ProceedingJoinPoint joinPoint) throws Throwable {
|
ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder
|
.getRequestAttributes();
|
PrintWriter out = servletContainer.getResponse().getWriter();
|
HttpServletRequest request = servletContainer.getRequest();
|
Map<String, String[]> paramsMap = request.getParameterMap();
|
String appKey = paramsMap.get("appKey") + "";
|
|
AppInfo app = null;
|
if (!StringUtil.isNullOrEmpty(appKey)) {
|
app = appManager.getAppDetail(appKey);
|
}
|
if (StringUtil.isNullOrEmpty(appKey) || app == null) {
|
out.print(JsonUtil.loadFalseResult(ApiCodeConstant.CODE_APP_NOT_EXIST, "应用不存在"));
|
out.close();
|
return null;
|
}
|
|
for (Object obj : joinPoint.getArgs()) {
|
if (obj instanceof AcceptData) {
|
//注入应用详情
|
((AcceptData) obj).setApp(app);
|
break;
|
}
|
}
|
return joinPoint.proceed(joinPoint.getArgs());
|
}
|
|
|
}
|