Browse Source

Merge branch 'master' of http://192.168.1.220:10080/esb/esb

airhead 8 years ago
parent
commit
014e5f1596

+ 1 - 1
hos-broker/src/main/resources/application.yml

@ -85,7 +85,7 @@ eureka:
    serviceUrl:
    serviceUrl:
      defaultZone: http://192.168.1.221:8761/eureka/
      defaultZone: http://192.168.1.221:8761/eureka/
log:
log:
  path: /usr/local/logs/logback/broker
  path: /usr/local/esb/logs/logback/broker
  level: info
  level: info
hos:
hos:
  filesystem:
  filesystem:

+ 2 - 2
hos-broker/src/main/resources/logback-spring.xml

@ -6,7 +6,7 @@
    <springProperty scope="context" name="logLevel" source="log.level"/>
    <springProperty scope="context" name="logLevel" source="log.level"/>
    <springProperty scope="context" name="LOG_HOME" source="log.path"/>
    <springProperty scope="context" name="LOG_HOME" source="log.path"/>
    <springProperty scope="context" name="ACTIVE_MQ_URL" source="spring.active.broker-url"/>
    <!--<springProperty scope="context" name="ACTIVE_MQ_URL" source="log.mqUrl"/>-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
        <layout class="ch.qos.logback.classic.PatternLayout">
@ -38,7 +38,7 @@
        <InitialContextFactoryName>
        <InitialContextFactoryName>
            org.apache.activemq.jndi.ActiveMQInitialContextFactory
            org.apache.activemq.jndi.ActiveMQInitialContextFactory
        </InitialContextFactoryName>
        </InitialContextFactoryName>
        <ProviderURL>${ACTIVE_MQ_URL}</ProviderURL>
        <ProviderURL>tcp://172.19.103.42:61616</ProviderURL>
        <userName>admin</userName>
        <userName>admin</userName>
        <password>admin</password>
        <password>admin</password>
        <TopicConnectionFactoryBindingName>ConnectionFactory</TopicConnectionFactoryBindingName>
        <TopicConnectionFactoryBindingName>ConnectionFactory</TopicConnectionFactoryBindingName>

+ 0 - 37
hos-camel2/src/main/java/camel/central/gateway/processor/ErrorHandle.java

@ -1,37 +0,0 @@
package camel.central.gateway.processor;
import org.apache.camel.Exchange;
import org.springframework.stereotype.Component;
/**
 * @author Airhead
 * @since 2017/3/17.
 */
@Component("errorHandle")
public class ErrorHandle {
    public void paramError(Exchange exchange) {
        exchange.getOut().setHeader("errorCode","{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"paramError!\",\"errorCode\":0}");
        exchange.getOut().setBody("paramError");
    }
    public void outdataError(Exchange exchange) {
        exchange.getOut().setHeader("errorCode","{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"outdataError!\",\"errorCode\":0}");
        exchange.getOut().setBody("outdataError");
    }
    public void signValidError(Exchange exchange) {
        exchange.getOut().setHeader("errorCode","{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"signValidError!\",\"errorCode\":0}");
        exchange.getOut().setBody("signValidError");
    }
    public void unauthorizedError(Exchange exchange) {
        exchange.getOut().setHeader("errorCode","{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"unauthorizedError!\",\"errorCode\":0}");
        exchange.getOut().setBody("unauthorizedError");
    }
}

+ 8 - 7
hos-camel2/src/main/java/camel/central/gateway/processor/GatewayProcessor.java

@ -46,36 +46,36 @@ public class GatewayProcessor implements Processor {
//        body = URLDecoder.decode(body, "UTF-8");
//        body = URLDecoder.decode(body, "UTF-8");
        Map<String, Object> params = exchange.getIn().getHeaders();
        Map<String, Object> params = exchange.getIn().getHeaders();
        if (params.get("appKey") == null) {
        if (params.get("appKey") == null) {
            return "jetty:http://0.0.0.0:9999/error/paramError";    //TODO:
            return "restlet:http://0.0.0.0:8088/error/paramError?socketTimeout=60000&connectionTimeout=60000";    //TODO:
        }
        }
        String appKey = params.get("appKey").toString();
        String appKey = params.get("appKey").toString();
        String secret = getSecret(appKey);
        String secret = getSecret(appKey);
        if (secret.equals("")) {
        if (secret.equals("")) {
            return "jetty:http://0.0.0.0:9999/error/paramError";    //TODO:
            return "restlet:http://0.0.0.0:8088/error/paramError?socketTimeout=60000&connectionTimeout=60000";    //TODO:
        }
        }
        boolean pass = checkParams(params);
        boolean pass = checkParams(params);
        if (!pass) {
        if (!pass) {
            return "jetty:http://0.0.0.0:9999/error/paramError";    //TODO:
            return "jetty:http://0.0.0.0:8088/error/paramError?socketTimeout=60000&connectionTimeout=60000";    //TODO:
        }
        }
        pass = checkTimeStamp(params);
        pass = checkTimeStamp(params);
        if (!pass) {
        if (!pass) {
            return "jetty:http://0.0.0.0:9999/error/outdataError";    //TODO:
            return "restlet:http://0.0.0.0:8088/error/outdataError?socketTimeout=60000&connectionTimeout=60000";    //TODO:
        }
        }
        //获取secret接口,不做sign验证
        //获取secret接口,不做sign验证
        if (!"admin.apps.get".equals(params.get("api"))) {
        if (!"admin.apps.get".equals(params.get("api"))) {
            pass = checkSign(params, secret);
            pass = checkSign(params, secret);
            if (!pass) {
            if (!pass) {
                return "jetty:http://0.0.0.0:9999/error/signValidError";    //TODO:
                return "restlet:http://0.0.0.0:8088/error/signValidError?socketTimeout=60000&connectionTimeout=60000";    //TODO:
            }
            }
        }
        }
        pass = checkAuthorized(params);
        pass = checkAuthorized(params);
        if (!pass) {
        if (!pass) {
            return "jetty:http://0.0.0.0:9999/error/unauthorizedError";    //TODO:
            return "restlet:http://0.0.0.0:8088/error/unauthorizedError";    //TODO:
        }
        }
        return genEndpoint(params, exchange);
        return genEndpoint(params, exchange);
@ -180,7 +180,8 @@ public class GatewayProcessor implements Processor {
            methodMap.put("3", "put");
            methodMap.put("3", "put");
            JsonNode jsonNode = objectMapper.readValue(param, JsonNode.class);
            JsonNode jsonNode = objectMapper.readValue(param, JsonNode.class);
            String url = serviceUrl(appApi.getMicroServiceName());
//            String url = serviceUrl(appApi.getMicroServiceName());
            String url = brokerUrl;
            if (StringUtil.isEmpty(url)) {
            if (StringUtil.isEmpty(url)) {
                return "";
                return "";
            }
            }

+ 1 - 11
hos-camel2/src/main/java/camel/central/gateway/route/GatewayRouterBuilder.java

@ -1,6 +1,5 @@
package camel.central.gateway.route;
package camel.central.gateway.route;
import camel.central.gateway.processor.ErrorHandle;
import camel.central.gateway.processor.GatewayProcessor;
import camel.central.gateway.processor.GatewayProcessor;
import camel.central.gateway.processor.WsProcessor;
import camel.central.gateway.processor.WsProcessor;
import org.apache.camel.Exchange;
import org.apache.camel.Exchange;
@ -29,16 +28,7 @@ public class GatewayRouterBuilder extends RouteBuilder {
                .process(new GatewayProcessor())
                .process(new GatewayProcessor())
                .routingSlip(method(GatewayProcessor.class, "route"));
                .routingSlip(method(GatewayProcessor.class, "route"));
        from("jetty:http://0.0.0.0:9999/error/{error}")
                .choice()
                .when(header(Exchange.HTTP_URI).contains("paramError")).bean(new ErrorHandle(), "paramError")
                .when(header(Exchange.HTTP_URI).contains("outdataError")).bean(new ErrorHandle(), "outdataError")
                .when(header(Exchange.HTTP_URI).contains("signValidError")).bean(new ErrorHandle(), "signValidError")
                .when(header(Exchange.HTTP_URI).contains("unauthorizedError")).bean(new ErrorHandle(), "unauthorizedError")
                .endChoice();
        from("jetty:http://0.0.0.0:9999/ping").routeId("heartbeat")
                .transform(constant("pong"))
        from("jetty:http://0.0.0.0:9999/healthy").routeId("healthy")
                .log("=========================心跳测试=====================");
                .log("=========================心跳测试=====================");
        from(SIMPLE_ENDPOINT_URI)
        from(SIMPLE_ENDPOINT_URI)

+ 33 - 0
hos-rest/src/main/java/com/yihu/hos/rest/controllers/ErrorHandleController.java

@ -0,0 +1,33 @@
package com.yihu.hos.rest.controllers;
import com.yihu.hos.rest.services.gateway.ErrorHandleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/6/13.
 */
@RequestMapping("/")
@RestController("errorHandleController")
@Api(protocols = "http", value = "ErrorHandleController", description = "统一网关错误返回", tags = {"统一网关,错误返回"})
public class ErrorHandleController
{
    @Resource(name = ErrorHandleService.BEAN_ID)
    private ErrorHandleService errorHandleService;
    @RequestMapping(value = "/error/{errorCode}", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
    @ApiOperation(value = "统一网关错误信息获取", produces = "application/json", notes = "统一网关错误信息获取")
    public String test(HttpServletResponse response,
                       @ApiParam(name = "errorCode", value = "错误代码", required = true)
                       @PathVariable(name = "errorCode") String errorCode) {
        return errorHandleService.getError(response,errorCode);
    }
}

+ 43 - 0
hos-rest/src/main/java/com/yihu/hos/rest/services/gateway/ErrorHandleService.java

@ -0,0 +1,43 @@
package com.yihu.hos.rest.services.gateway;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/6/13.
 */
@Component("errorHandleService")
public class ErrorHandleService {
    public static final String BEAN_ID = "errorHandleService";
    private final static String PARAM_ERROR = "{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"paramError!\",\"errorCode\":0}";
    private final static String OUTDATE_ERROR = "{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"outdateError!\",\"errorCode\":0}";
    private final static String SIGN_VALID_ERROR = "{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"signValidError!\",\"errorCode\":0}";
    private final static String UNAUTHORISED_ERROR = "{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"unauthorizedError!\",\"errorCode\":0}";
    private final static String OTHER_ERROR = "{\"successFlg\":false,\"pageSize\":10,\"currPage\":0,\"totalPage\":0,\"totalCount\":0,\"detailModelList\":null,\"obj\":null,\"errorMsg\":\"otherError!\",\"errorCode\":0}";
    public String getError(HttpServletResponse response,String errorCode) {
        switch (errorCode){
            case "paramError":
                response.setHeader("errorCode",PARAM_ERROR);
                return PARAM_ERROR;
            case "outdateError":
                response.setHeader("errorCode",OUTDATE_ERROR);
                return OUTDATE_ERROR;
            case "signValidError":
                response.setHeader("errorCode",SIGN_VALID_ERROR);
                return SIGN_VALID_ERROR;
            case "unauthorizedError":
                response.setHeader("errorCode",UNAUTHORISED_ERROR);
                return UNAUTHORISED_ERROR;
            default:
                response.setHeader("errorCode",UNAUTHORISED_ERROR);
                return UNAUTHORISED_ERROR;
        }
    }
}

+ 6 - 0
pom.xml

@ -205,6 +205,12 @@
            <artifactId>ojdbc6</artifactId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3.0</version>
            <version>11.2.0.3.0</version>
        </dependency>
        </dependency>
        <!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.9.9</version>
        </dependency>
    </dependencies>
    </dependencies>
    <build>
    <build>

+ 27 - 10
src/main/java/com/yihu/hos/datacollect/controller/DataCollectController.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.yihu.hos.common.Services;
import com.yihu.hos.common.Services;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.datacollect.model.RsJobConfig;
import com.yihu.hos.datacollect.model.RsJobConfig;
import com.yihu.hos.datacollect.service.DatacollectManager;
import com.yihu.hos.datacollect.service.DatacollectManager;
import com.yihu.hos.resource.service.StdService;
import com.yihu.hos.resource.service.StdService;
@ -14,6 +15,9 @@ import com.yihu.hos.web.framework.model.ActionResult;
import com.yihu.hos.web.framework.model.Result;
import com.yihu.hos.web.framework.model.Result;
import com.yihu.hos.web.framework.util.controller.BaseController;
import com.yihu.hos.web.framework.util.controller.BaseController;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.Model;
@ -80,7 +84,7 @@ public class DataCollectController extends BaseController {
            //获取方案列表
            //获取方案列表
            List data = stdService.getSchemeVersion();
            List data = stdService.getSchemeVersion();
            String jsonlist = objectMapper.writeValueAsString(data);
            String jsonlist = objectMapper.writeValueAsString(data);
            ArrayNode jsonArray = objectMapper.readValue(jsonlist,ArrayNode.class);
            ArrayNode jsonArray = objectMapper.readValue(jsonlist, ArrayNode.class);
            model.addAttribute("schemeList", "{\"detailModelList\":" + (CollectionUtil.isEmpty(data) ? "[]" : jsonArray) + "}");
            model.addAttribute("schemeList", "{\"detailModelList\":" + (CollectionUtil.isEmpty(data) ? "[]" : jsonArray) + "}");
            model.addAttribute("contentPage", "/datacollect/editorJob");
            model.addAttribute("contentPage", "/datacollect/editorJob");
@ -108,16 +112,15 @@ public class DataCollectController extends BaseController {
    @RequestMapping("compareServeTime")
    @RequestMapping("compareServeTime")
    @ResponseBody
    @ResponseBody
    public Result getJob(String time){
    public Result getJob(String time) {
        try {
        try {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if(df.parse(time).before(new Date())) {
            if (df.parse(time).before(new Date())) {
                return Result.success("beforeServeTime");
                return Result.success("beforeServeTime");
            }
            else
            } else
                return Result.error("afterServeTime");
                return Result.error("afterServeTime");
        }catch (Exception ex){
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
            return Result.error(ex.getMessage());
        }
        }
    }
    }
@ -161,9 +164,9 @@ public class DataCollectController extends BaseController {
            BeanUtils.populate(obj, request.getParameterMap());
            BeanUtils.populate(obj, request.getParameterMap());
            obj.setValid("1");
            obj.setValid("1");
            obj.setJobCron(cron);
            obj.setJobCron(cron);
            String time=request.getParameter("jobNextTime");
            String time = request.getParameter("jobNextTime");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if(df.parse(time).before(new Date())) {
            if (df.parse(time).before(new Date())) {
                return Result.error("任务开始时间不能小于当前时间");
                return Result.error("任务开始时间不能小于当前时间");
            }
            }
@ -188,12 +191,26 @@ public class DataCollectController extends BaseController {
            obj.setJobCron(cron);
            obj.setJobCron(cron);
//            ConvertUtils.register(new DateLocaleConverter(), Date.class);
//            ConvertUtils.register(new DateLocaleConverter(), Date.class);
            BeanUtils.populate(obj, request.getParameterMap());
            BeanUtils.populate(obj, request.getParameterMap());
            String time=request.getParameter("jobNextTime");
            String time = request.getParameter("jobNextTime");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if(df.parse(time).before(new Date())) {
            if (df.parse(time).before(new Date())) {
                return Result.error("任务开始时间不能小于当前时间");
                return Result.error("任务开始时间不能小于当前时间");
            }
            }
            String delayTime = request.getParameter("delayTime");//延迟时间
            String startTime = request.getParameter("repeatStartTime");
            String endTime = request.getParameter("repeatEndTime");
            DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
            if (StringUtil.isBlank(endTime)) {
                endTime = DateTime.now().toString(dateTimeFormat);
            }
            DateTime beginDate = DateTime.parse(startTime, dateTimeFormat);
            DateTime endDate = DateTime.parse(endTime, dateTimeFormat);
            beginDate = beginDate.plusDays(Integer.valueOf(delayTime));//开始时间+延迟时间
            if (beginDate.isAfter(endDate)) {
                return Result.error("任务开始时间加延迟时间不能大于结束时间");
            }
            return datacollect.updateJob(obj, cron, jobDataset);
            return datacollect.updateJob(obj, cron, jobDataset);
        } catch (Exception ex) {
        } catch (Exception ex) {
            ex.printStackTrace();
            ex.printStackTrace();

+ 3 - 1
src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJobJs.jsp

@ -439,7 +439,8 @@
                repeatEndTime: $("#repeatEndTime").ligerDateEditor('getValue'),
                repeatEndTime: $("#repeatEndTime").ligerDateEditor('getValue'),
                delayTime: $('#txtDelayTime').val(),
                delayTime: $('#txtDelayTime').val(),
                jobCron:$('#txtCronExpression').val(),
                jobCron:$('#txtCronExpression').val(),
                dataKey:$('#jobDatasetKeyvalue').val()
                dataKey:$('#jobDatasetKeyvalue').val(),
                delayTime:$('#txtDelayTime').val()
            };
            };
            return model;
            return model;
@ -838,6 +839,7 @@
            var me = this;
            var me = this;
            me.setCheckVal();
            me.setCheckVal();
            var data = me.getData();
            var data = me.getData();
            console.log(data);
            //按钮失效
            //按钮失效
            $("a[href='#finish']").unbind("click");
            $("a[href='#finish']").unbind("click");
            $.ajax({ //ajax处理
            $.ajax({ //ajax处理