沈斌
2018-06-09 6e9c3733135fa96360c8c76e76b431efa5d7f52d
src/main/java/com/moral/common/aop/ControllerAOP.java
@@ -13,6 +13,7 @@
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import com.moral.common.bean.AppData;
import com.moral.common.bean.ResultBean;
import com.moral.common.exception.BusinessException;
import com.moral.common.exception.ValidateException;
@@ -51,29 +52,27 @@
      Object target = pjp.getTarget();
      Method currentMethod = target.getClass().getMethod(msig.getName(), msig.getParameterTypes());
      Type type = currentMethod.getGenericReturnType();
      String message = "";
      String message = e.getMessage();
      if (e instanceof BusinessException) {
         message = e.getLocalizedMessage();
      } else if (e instanceof ValidateException) {
         message = e.getLocalizedMessage();
      } else {
         log.error(pjp.getSignature() + " error ", e);
         message = e.toString();
         log.error(pjp.getSignature() + " error: " + e.toString(), e);
      }
      if (type instanceof ParameterizedType) {
         Type rawType = ((ParameterizedType) type).getRawType();
         if (rawType == ResultBean.class) {
            ResultBean<?> resultBean = new ResultBean(ResultBean.FAIL);
            resultBean.setMessage(message);
            return resultBean;
         } else if (rawType == Map.class) {
            Map<String, Object> result = new HashMap<String, Object>();
            result.put("msg",message);
            return result;
         }
         type = ((ParameterizedType) type).getRawType();
      }
      return null;
      if (type == AppData.class) {
         return new AppData(message, AppData.FAIL);
      } else if (type == ResultBean.class) {
         return new ResultBean(e);
      } else if (type == Map.class) {
         Map<String, Object> resultMap = new HashMap<String, Object>();
         resultMap.put("msg", message);
         return resultMap;
      } else if (type == Void.TYPE) {
         return null;
      } else {
         return type.getClass().newInstance();
      }
   }
}