diff --git a/service/src/main/java/com/hzya/frame/u8c/ax/service/IAxService.java b/service/src/main/java/com/hzya/frame/u8c/ax/service/IAxService.java index 29b71543..27dd9160 100644 --- a/service/src/main/java/com/hzya/frame/u8c/ax/service/IAxService.java +++ b/service/src/main/java/com/hzya/frame/u8c/ax/service/IAxService.java @@ -13,7 +13,7 @@ public interface IAxService extends IBaseService{ * @param object * @return com.hzya.frame.web.entity.JsonResultEntity **/ - JsonResultEntity thirdInterfaceVoucherInsert(JSONObject object); + Object thirdInterfaceVoucherInsert(JSONObject object); /** * @Author lvleigang * @Description 档案新增 diff --git a/service/src/main/java/com/hzya/frame/u8c/ax/service/impl/AxServiceImpl.java b/service/src/main/java/com/hzya/frame/u8c/ax/service/impl/AxServiceImpl.java index c13d698a..5d1b0c65 100644 --- a/service/src/main/java/com/hzya/frame/u8c/ax/service/impl/AxServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/u8c/ax/service/impl/AxServiceImpl.java @@ -99,7 +99,7 @@ public class AxServiceImpl extends BaseService implement * @return com.hzya.frame.web.entity.JsonResultEntity **/ @Override - public JsonResultEntity thirdInterfaceVoucherInsert(JSONObject object) { + public Object thirdInterfaceVoucherInsert(JSONObject object) { JSONObject jsonObject = object.getJSONObject("jsonStr"); if(jsonObject == null ){ return BaseResult.getFailureMessageEntity("数据为空,请先传递数据"); @@ -181,7 +181,7 @@ public class AxServiceImpl extends BaseService implement } logger.info("返回结果:" + body); JsonResultEntity resultEntity = JSON.parseObject(body.toString(),JsonResultEntity.class); - return resultEntity; + return resultEntity.getAttribute(); } catch (Exception e) { logger.error("请求错误:" + e.getMessage()); diff --git a/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java b/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java index cad48373..0ae99bfc 100644 --- a/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java +++ b/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java @@ -56,6 +56,13 @@ public class EntranceController { public JsonResultEntity option(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception { return entranceService.doBusiness(servletRequest, servletResponse); } + //平台接口 + @RequestMapping(value = "/platformInterface") + @ResponseBody + public Object centerInterFace(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception { + return entranceService.platformInterface(servletRequest, servletResponse); + } + /*** * 文件上传接口 /entranceController/fileUpload * @param diff --git a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java index f735bfe4..0665cb93 100644 --- a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java +++ b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java @@ -8,6 +8,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; +import java.lang.reflect.InvocationTargetException; /** * @Content @@ -40,5 +41,6 @@ public interface IEntranceService { * @return com.hzya.frame.web.entity.JsonResultEntity **/ JsonResultEntity fileUpload(MultipartFile file, FileResultEntity entity, ServletRequest servletRequest, ServletResponse servletResponse) throws Exception; - + //平台接口 + Object platformInterface(ServletRequest servletRequest, ServletResponse servletResponse) throws InvocationTargetException, IllegalAccessException; } diff --git a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java index 5530be35..1b56f2fc 100644 --- a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java +++ b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java @@ -237,8 +237,113 @@ public class EntranceServiceImpl implements IEntranceService { return BaseResult.getSuccessMessageEntity("附件上传成功",entity); } - - + @Override + public Object platformInterface(ServletRequest servletRequest, ServletResponse servletResponse) throws InvocationTargetException, IllegalAccessException { + HttpServletRequest request = (HttpServletRequest) servletRequest; + //tailuo 要访问的Bean名称 + String service = request.getHeader("tl"); + //bean方法 + String serviceMethod = request.getHeader("dj"); + String body = ServletUtil.getBody(servletRequest); + //获取类 + Object object = null; + if(service == null || "".equals(service) || serviceMethod == null || "".equals(serviceMethod)){ + return BaseResult.getFailureMessageEntity("非法请求,请检查"); + } + try { + object = ApplicationContextUtil.getBeanByName(service); + } catch (SecurityException e) { + return BaseResult.getFailureMessageEntity(service + "未找到"); + } + //获取类下面的方法 + Method[] methods = object.getClass().getMethods(); + logger.info("methodsLength:" + methods.length); + if (methods == null || methods.length == 0) { + logger.info("当前methods:" + methods + "methodsLength = " + methods.length); + return BaseResult.getFailureMessageEntity(service + "未找到" + serviceMethod + "方法"); + } else { + logger.error("当前methods:" + methods + "methodsLength = " + methods.length); + } + for (Method m : methods) { + logger.info("当前mnAME:" + m.getName() + " :serviceMethod = " + serviceMethod.trim()); + if (null != m) { + if (m.getName().equals(serviceMethod.trim())) { + if (m.getName().startsWith("thirdInterface")) {//TODO 后续可能要加强校验规则 + logger.info("第三方接口,不校验是否登陆"); + }else if (!"doLogin".equals(m.getName())) { + try { + StpUtil.checkLogin(); + //校验当前登陆人是否有权限 + boolean flag = false; + String userId = StpUtil.getLoginIdAsString(); + //获取接口 + SysInterfaceEntity sysInterfaceEntity = (SysInterfaceEntity) interfaceCache.get("6","beanName"+service+"interfacName"+serviceMethod); + if(sysInterfaceEntity == null || sysInterfaceEntity.getId() == null){ + //todo 接口权限验证 + return BaseResult.getFailureMessageEntity("用户无访问权限,请联系管理员"); + } + //查询用户权限 + if(!flag){ + SysPopedomInterfaceEntity userPopedomInterfaceEntity = (SysPopedomInterfaceEntity) interfaceCache.get("4","userId"+userId+"interfaceId"+sysInterfaceEntity.getId()); + if(userPopedomInterfaceEntity != null && userPopedomInterfaceEntity.getId() != null ){ + flag = true; + } + } + //查询用户角色的权限 + if(!flag){ + List userRoleMap = (List) interfaceCache.get("3",null); + if(userRoleMap != null && userRoleMap.size() > 0){ + for (SysUserRolesEntity sysUserRolesEntity : userRoleMap) { + if(sysUserRolesEntity.getUserId().equals(userId)){ + SysPopedomInterfaceEntity sysPopedomInterfaceEntity = (SysPopedomInterfaceEntity) interfaceCache.get("5","roleId"+sysUserRolesEntity.getRoleId()+"interfaceId"+sysInterfaceEntity.getId()); + if(sysPopedomInterfaceEntity != null && sysPopedomInterfaceEntity.getId() != null ){ + flag = true; + break; + } + } + } + } + } + if(!flag){ + //todo 接口权限验证 + return BaseResult.getFailureMessageEntity("用户无访问权限,请联系管理员"); + } + } catch (NotLoginException e) { + logger.error("token无效"); + return BaseResult.getFailureMessageEntity("token无效"); + } + } + logger.info("m.getNameEquals成功"); + JSONObject jsonObject = new JSONObject(); + if (!ObjectUtils.isEmpty(body)) { + jsonObject.put("jsonStr", body); + } + JsonResultEntity jsonResultEntity; + try { + logger.info("invoke开始>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + logger.info("请求的参数:jsonObject:" + jsonObject.toJSONString()); + Object result = m.invoke(object, jsonObject); + logger.info("invoke结束>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + return result; + } catch (Exception e) { + logger.error("METHOD doBusiness invokeException{}", e.getMessage()); + if (e instanceof InvocationTargetException) { + Throwable targetException = ((InvocationTargetException) e).getTargetException(); + if (targetException instanceof BaseSystemException) { + throw new BaseSystemException(targetException.getMessage()); + } else { + logger.info("METHOD doBusiness :{}", e.getMessage()); + throw e; + } + } else { + throw e; + } + } + } + } + } + throw new BaseSystemException( service + "未找到" + serviceMethod + "方法") ; + } @Override