浏览代码

冲突解决

demon 8 年之前
父节点
当前提交
61f133e031
共有 63 个文件被更改,包括 69 次插入2419 次删除
  1. 3 3
      hos-arbiter/pom.xml
  2. 0 52
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/configuration/MongoConfiguration.java
  3. 3 3
      hos-arbiter/src/main/resources/application.yml
  4. 3 3
      hos-broker/pom.xml
  5. 2 4
      hos-broker/src/main/java/com/yihu/hos/broker/common/constants/MonitorConstant.java
  6. 2 2
      hos-broker/src/main/java/com/yihu/hos/broker/common/scheduler/MonitorScheduler.java
  7. 1 1
      hos-broker/src/main/java/com/yihu/hos/broker/models/BusinessLog.java
  8. 10 9
      hos-broker/src/main/java/com/yihu/hos/broker/services/camel/ESBCamelService.java
  9. 3 3
      hos-broker/src/main/resources/application.yml
  10. 0 2
      hos-broker/src/main/resources/config/dbhelper.properties
  11. 7 7
      hos-camel/pom.xml
  12. 1 1
      hos-core/pom.xml
  13. 8 3
      hos-rest/pom.xml
  14. 0 24
      hos-saas/.gitignore
  15. 二进制
      hos-saas/.mvn/wrapper/maven-wrapper.jar
  16. 0 1
      hos-saas/.mvn/wrapper/maven-wrapper.properties
  17. 0 233
      hos-saas/mvnw
  18. 0 145
      hos-saas/mvnw.cmd
  19. 0 95
      hos-saas/pom.xml
  20. 0 19
      hos-saas/src/main/java/com/yihu/hos/saas/HosSaasApplication.java
  21. 0 31
      hos-saas/src/main/java/com/yihu/hos/saas/configurations/HibernateConfiguration.java
  22. 0 33
      hos-saas/src/main/java/com/yihu/hos/saas/configurations/ServiceConfiguration.java
  23. 0 27
      hos-saas/src/main/java/com/yihu/hos/saas/configurations/WebMvcConfiguration.java
  24. 0 8
      hos-saas/src/main/java/com/yihu/hos/saas/constants/ContextAttributes.java
  25. 0 32
      hos-saas/src/main/java/com/yihu/hos/saas/controllers/AuthenticateController.java
  26. 0 23
      hos-saas/src/main/java/com/yihu/hos/saas/controllers/HelloController.java
  27. 0 20
      hos-saas/src/main/java/com/yihu/hos/saas/daos/TenantDao.java
  28. 0 10
      hos-saas/src/main/java/com/yihu/hos/saas/daos/TestDao.java
  29. 0 20
      hos-saas/src/main/java/com/yihu/hos/saas/daos/UserDao.java
  30. 0 16
      hos-saas/src/main/java/com/yihu/hos/saas/daos/UserTenantDao.java
  31. 0 23
      hos-saas/src/main/java/com/yihu/hos/saas/interceptors/AuthenticateInterceptor.java
  32. 0 34
      hos-saas/src/main/java/com/yihu/hos/saas/interceptors/ChangeSchemaInterceptor.java
  33. 0 107
      hos-saas/src/main/java/com/yihu/hos/saas/models/TenantModel.java
  34. 0 44
      hos-saas/src/main/java/com/yihu/hos/saas/models/TestModel.java
  35. 0 77
      hos-saas/src/main/java/com/yihu/hos/saas/models/UserModel.java
  36. 0 57
      hos-saas/src/main/java/com/yihu/hos/saas/models/UserTenantModel.java
  37. 0 45
      hos-saas/src/main/java/com/yihu/hos/saas/models/bo/UserSession.java
  38. 0 17
      hos-saas/src/main/java/com/yihu/hos/saas/services/AuthenticateService.java
  39. 0 11
      hos-saas/src/main/java/com/yihu/hos/saas/services/HelloService.java
  40. 0 62
      hos-saas/src/main/java/com/yihu/hos/saas/services/impl/AuthenticateServiceImpl.java
  41. 0 13
      hos-saas/src/main/java/com/yihu/hos/saas/services/impl/HelloServiceImpl.java
  42. 0 31
      hos-saas/src/main/java/com/yihu/hos/saas/services/mockimpl/AuthenticateServiceMockImpl.java
  43. 0 19
      hos-saas/src/main/java/com/yihu/hos/saas/services/mockimpl/HelloServiceMockImpl.java
  44. 0 60
      hos-saas/src/main/java/com/yihu/hos/saas/utils/LocalContext.java
  45. 0 14
      hos-saas/src/main/resources/META-INF/additional-spring-configuration-metadata.json
  46. 0 9
      hos-saas/src/main/resources/application.yml
  47. 0 16
      hos-saas/src/test/java/com/yihu/hos/HosSaasApplicationTests.java
  48. 2 2
      hos-web-camel-dependencies/pom.xml
  49. 4 8
      hos-web-framework-dependencies/pom.xml
  50. 2 2
      hos-web-framework/pom.xml
  51. 10 11
      pom.xml
  52. 3 4
      src/main/java/com/yihu/hos/config/MongoConfig.java
  53. 0 198
      src/main/java/com/yihu/hos/crawler/model/config/SysConfig.java
  54. 0 389
      src/main/java/com/yihu/hos/crawler/service/EsbHttp.java
  55. 1 28
      src/main/java/com/yihu/hos/datacollect/controller/DataCollectController.java
  56. 0 42
      src/main/java/com/yihu/hos/datacollect/controller/DataPushController.java
  57. 0 172
      src/main/java/com/yihu/hos/datacollect/service/DatapushService.java
  58. 1 2
      src/main/java/com/yihu/hos/resource/service/RsResourceServiceImpl.java
  59. 3 3
      src/main/resources/application.yml
  60. 0 4
      src/main/resources/config/archive.properties
  61. 0 8
      src/main/resources/config/dbhelper.properties
  62. 0 46
      src/main/resources/config/quartz.properties
  63. 0 31
      src/main/resources/config/sys.config.xml

+ 3 - 3
hos-arbiter/pom.xml

@ -4,7 +4,7 @@
    <modelVersion>4.0.0</modelVersion>
    <artifactId>hos-arbiter</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <packaging>jar</packaging>
    <name>hos-arbiter</name>
@ -13,7 +13,7 @@
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-camel-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <version>1.3.0</version>
        <relativePath>../hos-web-camel-dependencies</relativePath><!-- lookup parent from repository -->
    </parent>
@ -38,7 +38,7 @@
        <dependency>
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-web-framework</artifactId>
            <version>1.1.1-SNAPSHOT</version>
            <version>1.3.0</version>
        </dependency>
    </dependencies>
    <build>

+ 0 - 52
hos-arbiter/src/main/java/com/yihu/hos/arbiter/configuration/MongoConfiguration.java

@ -1,52 +0,0 @@
package com.yihu.hos.arbiter.configuration;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.core.MongoTemplate;
import static java.util.Collections.singletonList;
/**
 * @created Airhead 2016/7/27.
 */
@Configuration
public class MongoConfiguration extends AbstractMongoConfiguration {
//    @Value("${spring.data.mongodb.uri}")
//    private String uri;
    @Value("${spring.data.mongodb.host}")
    private String host;
    @Value("${spring.data.mongodb.port}")
    private int port;
    @Value("${spring.data.mongodb.username}")
    private String username;
    @Value("${spring.data.mongodb.password}")
    private String password;
    @Value("${spring.data.mongodb.authenticationDatabase}")
    private String authenticationDatabase;
    @Value("${spring.data.mongodb.database}")
    private String database;
    @Override
    public String getDatabaseName() {
        return database;
    }
    @Override
    @Bean
    public Mongo mongo() throws Exception {
        return new MongoClient(singletonList(new ServerAddress(host, port)),
                singletonList(MongoCredential.createCredential(username, authenticationDatabase, password.toCharArray())));
    }
    public MongoTemplate mongoTemplate() throws Exception {
        return new MongoTemplate(mongo(), getDatabaseName());
    }
}

+ 3 - 3
hos-arbiter/src/main/resources/application.yml

@ -16,7 +16,7 @@ spring:
      username: esb
      password: esb
      authenticationDatabase: admin
      database: configuration
      database: runtime
  activemq:
    broker-url: tcp://172.19.103.57:61616
    user: admin
@ -64,7 +64,7 @@ spring:
      username: esb
      password: esb
      authenticationDatabase: admin
      database: configuration
      database: runtime
  activemq:
    broker-url: tcp://172.19.103.86:61616
    user: admin
@ -84,7 +84,7 @@ spring:
      username: esb
      password: esb
      authenticationDatabase: admin
      database: configuration
      database: runtime
  activemq:
    broker-url: tcp://172.19.103.58:61616
    user: admin

+ 3 - 3
hos-broker/pom.xml

@ -4,7 +4,7 @@
    <modelVersion>4.0.0</modelVersion>
    <artifactId>hos-broker</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <packaging>war</packaging>
    <name>hos-broker</name>
@ -13,7 +13,7 @@
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-camel-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <version>1.3.0</version>
        <relativePath>../hos-web-camel-dependencies</relativePath><!-- lookup parent from repository -->
    </parent>
@ -53,7 +53,7 @@
        <dependency>
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-web-framework</artifactId>
            <version>1.1.1-SNAPSHOT</version>
            <version>1.3.0</version>
            <exclusions>
                <exclusion>
                        <groupId>org.springframework.boot</groupId>

+ 2 - 4
hos-broker/src/main/java/com/yihu/hos/broker/common/constants/MonitorConstant.java

@ -6,11 +6,9 @@ package com.yihu.hos.broker.common.constants;
 * Created at 2016/11/3.
 */
public class MonitorConstant {
    public static String MONITOR = "monitor";
    public static String MONITOR_DATABASE = "log";
    public static String SERVER = "server";
    public static String HOST = "host";
    public static String HOST = "host";     //这个是否需要,可以在runtime库中使用brokerServer?
    public static String CPU = "cpu";

+ 2 - 2
hos-broker/src/main/java/com/yihu/hos/broker/common/scheduler/MonitorScheduler.java

@ -68,7 +68,7 @@ public class MonitorScheduler {
     */
    public String collectEnvHealth() {
        try {
            mongoOperations = new MongoTemplate(mongo, MonitorConstant.MONITOR);
            mongoOperations = new MongoTemplate(mongo, MonitorConstant.MONITOR_DATABASE);
            Document result = null;
            result = new Document();
            result.put("tenant", tenant);
@ -137,7 +137,7 @@ public class MonitorScheduler {
//    @Scheduled(cron = "0 0 12 * * ?") //每天中午12点触发
    @Scheduled(fixedDelay = 3600 * 24 * 1000, initialDelay = 3000) //每天中午12点触发
    public void checkHost() {
        mongoOperations = new MongoTemplate(mongo, MonitorConstant.MONITOR);
        mongoOperations = new MongoTemplate(mongo, MonitorConstant.MONITOR_DATABASE);
        DBCollection envCollection = mongoOperations.getCollection(MonitorConstant.HOST);
        BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
                new BasicDBObject[]{

+ 1 - 1
hos-broker/src/main/java/com/yihu/hos/broker/models/BusinessLog.java

@ -9,7 +9,7 @@ import java.util.Date;
/**
 * @created Airhead 2016/8/8.
 */
@Document(collection = "businessLog")
@Document(collection = "business")
public class BusinessLog {
    @Id
    private String id;

+ 10 - 9
hos-broker/src/main/java/com/yihu/hos/broker/services/camel/ESBCamelService.java

@ -157,8 +157,8 @@ public class ESBCamelService {
            if (serviceFlowValid.is()) return Result.error("必要的入参数据不正确,请检查!");
            ServiceFlow serviceFlow = serviceFlowValid.getServiceFlow();
            ArrayList<ServiceFlow.HandleFile> handleFiles =  serviceFlowValid.getHandleFiles();
            if (handleFiles!=null) {
            ArrayList<ServiceFlow.HandleFile> handleFiles = serviceFlowValid.getHandleFiles();
            if (handleFiles != null) {
                for (ServiceFlow.HandleFile handleFile : handleFiles) {
                    String routeCode = serviceFlow.getRouteCode();
                    SystemCamelContext.getContext().stopRoute(routeCode);
@ -261,16 +261,16 @@ public class ESBCamelService {
//        }
        //从中心下载java文件
        String downUrl = centerUrl+"/tenant/down/"+handleFile.getFilePath();
        String sourcePath = ClassFileUtil.downFile(downUrl, resource, handleFile.getPackageName(), handleFile.getClassName(), ClassFileUtil.JAVA_FILE);
        String downUrl = centerUrl + "/tenant/down/" + handleFile.getFilePath();
        String sourcePath =  ClassFileUtil.downFile(downUrl, resource, handleFile.getPackageName(), handleFile.getClassName(), ClassFileUtil.JAVA_FILE);
        if (sourcePath==null){
        if (sourcePath == null) {
            return false;
        }
        logger.info(sourcePath);
        boolean succ = CamelCompiler.compile(sourcePath, resource.getPath());
        if (succ){
        if (succ) {
            //编译成功后将class文件上传至mongodb;文件名为类名+ routeCode
            String packagePath = StringUtil.replaceStrAll(handleFile.getPackageName(), ".", "/");
            String classPath =  resource.getPath()+ packagePath + "/" + handleFile.getClassName() + ClassFileUtil.CLASS_FILE;
@ -296,14 +296,15 @@ public class ESBCamelService {
    }
    /**
     *  删除 serviceFlow记录
     * 删除 serviceFlow记录
     *
     * @param routeCode
     */
    private void deleteServiceFlow(String routeCode){
    private void deleteServiceFlow(String routeCode) {
        try {
            MongoDatabase db = mongoConfig.mongoClient().getDatabase(configuration);
            MongoCollection<Document> collection = db.getCollection(serviceFlow);
            DeleteResult result = collection.deleteMany(Filters.eq("routeCode",routeCode));
            DeleteResult result = collection.deleteMany(Filters.eq("routeCode", routeCode));
        } catch (Exception e) {
            e.printStackTrace();
        }

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

@ -42,7 +42,7 @@ spring:
      password: esb
      authenticationDatabase: admin
      database: log
      gridFsDatabase: upload
      gridFsDatabase: dfs
  gateway:
    ip: localhost
    port: 8066
@ -85,7 +85,7 @@ spring:
      password: esb
      authenticationDatabase: admin
      database: log
      gridFsDatabase: upload
      gridFsDatabase: dfs
  gateway:
    ip: localhost
    port: 8066
@ -126,7 +126,7 @@ spring:
      password: esb
      authenticationDatabase: admin
      database: log
      gridFsDatabase: upload
      gridFsDatabase: dfs
  gateway:
    ip: localhost
    port: 8066

+ 0 - 2
hos-broker/src/main/resources/config/dbhelper.properties

@ -1,2 +0,0 @@
mongodbUri=mongodb://esb:esb@172.19.103.58:27017/?authSource=admin
mongodbName=hos

+ 7 - 7
hos-camel/pom.xml

@ -6,10 +6,16 @@
    <groupId>hos-camel</groupId>
    <artifactId>hos-camel</artifactId>
    <version>1.0-SNAPSHOT</version>
    <version>1.3.0</version>
    <name>hos-camel</name>
    <description>IEP内置业务流程编排模块,本部分内容的维护主要是为了保证代码的完整性。后期如果使用编排工具后,这部分内容是不需要的。</description>
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-camel-dependencies</artifactId>
        <version>1.3.0</version>
        <relativePath>../hos-web-camel-dependencies</relativePath> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
        <dependency>
@ -24,10 +30,4 @@
        </dependency>
    </dependencies>
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-camel-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <relativePath>../hos-web-camel-dependencies</relativePath> <!-- lookup parent from repository -->
    </parent>
</project>

+ 1 - 1
hos-core/pom.xml

@ -6,7 +6,7 @@
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-core</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <packaging>jar</packaging>
    <name>hos-core</name>

+ 8 - 3
hos-rest/pom.xml

@ -5,7 +5,7 @@
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-rest</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <packaging>jar</packaging>
    <name>hos-rest</name>
@ -14,7 +14,7 @@
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-camel-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <version>1.3.0</version>
        <relativePath>../hos-web-camel-dependencies</relativePath><!-- lookup parent from repository -->
    </parent>
@ -54,7 +54,7 @@
        <dependency>
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-web-framework</artifactId>
            <version>1.1.1-SNAPSHOT</version>
            <version>1.3.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
@ -93,6 +93,11 @@
            <artifactId>hibernate-core</artifactId>
            <version>4.3.11.Final</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.core</groupId>
            <artifactId>ehr-dbhelper</artifactId>

+ 0 - 24
hos-saas/.gitignore

@ -1,24 +0,0 @@
target/
!.mvn/wrapper/maven-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/

二进制
hos-saas/.mvn/wrapper/maven-wrapper.jar


+ 0 - 1
hos-saas/.mvn/wrapper/maven-wrapper.properties

@ -1 +0,0 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip

+ 0 - 233
hos-saas/mvnw

@ -1,233 +0,0 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
#   JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
#   M2_HOME - location of maven2's installed home dir
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
#     e.g. to debug Maven itself, use
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
  if [ -f /etc/mavenrc ] ; then
    . /etc/mavenrc
  fi
  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi
fi
# OS specific support.  $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  MINGW*) mingw=true;;
  Darwin*) darwin=true
           #
           # Look for the Apple JDKs first to preserve the existing behaviour, and then look
           # for the new JDKs provided by Oracle.
           #
           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
             #
             # Apple JDKs
             #
             export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
           fi
           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
             #
             # Apple JDKs
             #
             export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
           fi
           if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
             #
             # Oracle JDKs
             #
             export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
           fi
           if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
             #
             # Apple JDKs
             #
             export JAVA_HOME=`/usr/libexec/java_home`
           fi
           ;;
esac
if [ -z "$JAVA_HOME" ] ; then
  if [ -r /etc/gentoo-release ] ; then
    JAVA_HOME=`java-config --jre-home`
  fi
fi
if [ -z "$M2_HOME" ] ; then
  ## resolve links - $0 may be a link to maven's home
  PRG="$0"
  # need this for relative symlinks
  while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
      PRG="$link"
    else
      PRG="`dirname "$PRG"`/$link"
    fi
  done
  saveddir=`pwd`
  M2_HOME=`dirname "$PRG"`/..
  # make it fully qualified
  M2_HOME=`cd "$M2_HOME" && pwd`
  cd "$saveddir"
  # echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --unix "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Migwn, ensure paths are in UNIX format before anything is touched
if $mingw ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME="`(cd "$M2_HOME"; pwd)`"
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  # TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
  javaExecutable="`which javac`"
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
    # readlink(1) is not available as standard on Solaris 10.
    readLink=`which readlink`
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
      if $darwin ; then
        javaHome="`dirname \"$javaExecutable\"`"
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
      else
        javaExecutable="`readlink -f \"$javaExecutable\"`"
      fi
      javaHome="`dirname \"$javaExecutable\"`"
      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
      JAVA_HOME="$javaHome"
      export JAVA_HOME
    fi
  fi
fi
if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi
if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly." >&2
  echo "  We cannot execute $JAVACMD" >&2
  exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
  echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --path --windows "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
fi
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
  local basedir=$(pwd)
  local wdir=$(pwd)
  while [ "$wdir" != '/' ] ; do
    if [ -d "$wdir"/.mvn ] ; then
      basedir=$wdir
      break
    fi
    wdir=$(cd "$wdir/.."; pwd)
  done
  echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
  if [ -f "$1" ]; then
    echo "$(tr -s '\n' ' ' < "$1")"
  fi
}
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
  $MAVEN_OPTS \
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  ${WRAPPER_LAUNCHER} "$@"

+ 0 - 145
hos-saas/mvnw.cmd

@ -1,145 +0,0 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements.  See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership.  The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License.  You may obtain a copy of the License at
@REM
@REM    http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied.  See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM     e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
set MAVEN_CMD_LINE_ARGS=%*
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%

+ 0 - 95
hos-saas/pom.xml

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-saas</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>
    <name>hos-saas</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>repo1.maven.org</id>
            <name>Maven Repository Repo1</name>
            <url>http://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
        <repository>
            <id>org.jboss.repository.releases</id>
            <name>JBoss Maven Release Repository</name>
            <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
</project>

+ 0 - 19
hos-saas/src/main/java/com/yihu/hos/saas/HosSaasApplication.java

@ -1,19 +0,0 @@
package com.yihu.hos.saas;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class HosSaasApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(HosSaasApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(HosSaasApplication.class);
    }
}

+ 0 - 31
hos-saas/src/main/java/com/yihu/hos/saas/configurations/HibernateConfiguration.java

@ -1,31 +0,0 @@
package com.yihu.hos.saas.configurations;
import org.hibernate.Interceptor;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.jta.JtaTransactionManager;
import javax.sql.DataSource;
import java.util.Map;
/**
 * @created Airhead 2016/11/14.
 */
@Configuration
public class HibernateConfiguration extends HibernateJpaAutoConfiguration {
    @Autowired
    private Interceptor changeSchemaInterceptor;
    public HibernateConfiguration(DataSource dataSource, JpaProperties jpaProperties, ObjectProvider<JtaTransactionManager> jtaTransactionManagerProvider) {
        super(dataSource, jpaProperties, jtaTransactionManagerProvider);
    }
    @Override
    protected void customizeVendorProperties(Map<String, Object> vendorProperties) {
        vendorProperties.put("hibernate.ejb.interceptor", changeSchemaInterceptor);
        super.customizeVendorProperties(vendorProperties);
    }
}

+ 0 - 33
hos-saas/src/main/java/com/yihu/hos/saas/configurations/ServiceConfiguration.java

@ -1,33 +0,0 @@
package com.yihu.hos.saas.configurations;
import com.yihu.hos.saas.services.AuthenticateService;
import com.yihu.hos.saas.services.HelloService;
import com.yihu.hos.saas.services.impl.AuthenticateServiceImpl;
import com.yihu.hos.saas.services.impl.HelloServiceImpl;
import com.yihu.hos.saas.services.mockimpl.AuthenticateServiceMockImpl;
import com.yihu.hos.saas.services.mockimpl.HelloServiceMockImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @created Airhead 2016/9/23.
 */
@Configuration
public class ServiceConfiguration {
    @Value("${services.HelloService}")
    private boolean helloService;
    @Value("${services.AuthenticateService}")
    private boolean authenticateService;
    @Bean
    public HelloService helloService() {
        return helloService ? new HelloServiceImpl() : new HelloServiceMockImpl();
    }
    @Bean
    AuthenticateService authenticateService() {
        return authenticateService ? new AuthenticateServiceImpl() : new AuthenticateServiceMockImpl();
    }
}

+ 0 - 27
hos-saas/src/main/java/com/yihu/hos/saas/configurations/WebMvcConfiguration.java

@ -1,27 +0,0 @@
package com.yihu.hos.saas.configurations;
import com.yihu.hos.saas.interceptors.AuthenticateInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
 * @created Airhead 2016/11/14.
 */
@EnableWebMvc
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(authenticateInterceptor())
                .excludePathPatterns("/auth/**");
    }
    @Bean
    AuthenticateInterceptor authenticateInterceptor() {
        return new AuthenticateInterceptor();
    }
}

+ 0 - 8
hos-saas/src/main/java/com/yihu/hos/saas/constants/ContextAttributes.java

@ -1,8 +0,0 @@
package com.yihu.hos.saas.constants;
/**
 * @created Airhead 2016/11/14.
 */
public interface ContextAttributes {
    String SCHEMA = "schema";
}

+ 0 - 32
hos-saas/src/main/java/com/yihu/hos/saas/controllers/AuthenticateController.java

@ -1,32 +0,0 @@
package com.yihu.hos.saas.controllers;
import com.yihu.hos.saas.services.AuthenticateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
 */
@RestController
@RequestMapping(value = "/auth")
public class AuthenticateController {
    @Autowired
    private AuthenticateService authenticateService;
    @RequestMapping(value = "/{tenantName}", method = RequestMethod.POST)
    public String auth(@PathVariable(name = "tenantName") String tenantName,
                       HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        String tenantPassword = request.getParameter("tenantPassword");
        String user = request.getParameter("user");
        String password = request.getParameter("password");
        return authenticateService.auth(session, tenantName, tenantPassword, user, password);
    }
}

+ 0 - 23
hos-saas/src/main/java/com/yihu/hos/saas/controllers/HelloController.java

@ -1,23 +0,0 @@
package com.yihu.hos.saas.controllers;
import com.yihu.hos.saas.services.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
 * @created Airhead 2016/9/23.
 */
@RestController
@RequestMapping(value = "/hello")
public class HelloController {
    @Autowired
    private HelloService helloService;
    @RequestMapping(method = RequestMethod.GET)
    public String sayHello() {
        return helloService.sayHello();
    }
}

+ 0 - 20
hos-saas/src/main/java/com/yihu/hos/saas/daos/TenantDao.java

@ -1,20 +0,0 @@
package com.yihu.hos.saas.daos;
import com.yihu.hos.saas.models.TenantModel;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
 * @created Airhead 2016/11/16.
 */
@Component
@Transactional
public interface TenantDao extends CrudRepository<TenantModel, Long> {
    @Query("select a from TenantModel a where a.code = ?1 and a.valid=1")
    TenantModel findOneByCode(String code);
    @Query("select a from TenantModel a where a.name = ?1 and a.valid=1")
    TenantModel findOneByName(String name);
}

+ 0 - 10
hos-saas/src/main/java/com/yihu/hos/saas/daos/TestDao.java

@ -1,10 +0,0 @@
package com.yihu.hos.saas.daos;
import com.yihu.hos.saas.models.TestModel;
import org.springframework.data.repository.CrudRepository;
/**
 * @created Airhead 2016/11/16.
 */
public interface TestDao extends CrudRepository<TestModel, Long> {
}

+ 0 - 20
hos-saas/src/main/java/com/yihu/hos/saas/daos/UserDao.java

@ -1,20 +0,0 @@
package com.yihu.hos.saas.daos;
import com.yihu.hos.saas.models.UserModel;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
 * @created Airhead 2016/9/4.
 */
@Transactional
@Component
public interface UserDao extends CrudRepository<UserModel, Long> {
    @Query("select a from UserModel a where a.name = ?1 and a.valid = 1")
    UserModel findOne(String userName);
    @Query("select a from UserModel a where a.code = ?1 and a.valid = 1")
    UserModel findOneByCode(String userCode);
}

+ 0 - 16
hos-saas/src/main/java/com/yihu/hos/saas/daos/UserTenantDao.java

@ -1,16 +0,0 @@
package com.yihu.hos.saas.daos;
import com.yihu.hos.saas.models.UserModel;
import com.yihu.hos.saas.models.UserTenantModel;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
/**
 * @created Airhead 2016/11/16.
 */
@Component
public interface UserTenantDao extends CrudRepository<UserTenantModel, Long> {
    @Query("select a from UserTenantModel a where a.userCode = ?1")
    UserTenantModel findOne(String userCode);
}

+ 0 - 23
hos-saas/src/main/java/com/yihu/hos/saas/interceptors/AuthenticateInterceptor.java

@ -1,23 +0,0 @@
package com.yihu.hos.saas.interceptors;
import com.yihu.hos.saas.services.AuthenticateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AuthenticateInterceptor extends HandlerInterceptorAdapter {
    @Autowired
    private AuthenticateService authenticateService;
//    public AuthenticateInterceptor(AuthenticateService authenticateService) {
//        Assert.notNull(authenticateService, "AuthenticateService must be not null");
//        this.authenticateService = authenticateService;
//    }
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return authenticateService.isAuth(request, response);
    }
}

+ 0 - 34
hos-saas/src/main/java/com/yihu/hos/saas/interceptors/ChangeSchemaInterceptor.java

@ -1,34 +0,0 @@
package com.yihu.hos.saas.interceptors;
import com.yihu.hos.saas.constants.ContextAttributes;
import com.yihu.hos.saas.utils.LocalContext;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.EmptyInterceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
 * @created Airhead 2016/11/14.
 */
@Component
public class ChangeSchemaInterceptor extends EmptyInterceptor {
    private static final long serialVersionUID = 1L;
    private static Logger logger = LoggerFactory.getLogger(ChangeSchemaInterceptor.class);
    @Override
    public String onPrepareStatement(String sql) {
        String schemaName = getSchema();
        String completeSql = sql;
        if (StringUtils.isNotEmpty(schemaName)) {
            String myCatAnnotation = "/*#mycat:schema=" + schemaName + "*/ ";
            completeSql = myCatAnnotation + sql;
        }
        logger.info("prepare " + completeSql);
        return super.onPrepareStatement(completeSql);
    }
    private String getSchema() {
        return LocalContext.getContext().getAttachment(ContextAttributes.SCHEMA);
    }
}

+ 0 - 107
hos-saas/src/main/java/com/yihu/hos/saas/models/TenantModel.java

@ -1,107 +0,0 @@
package com.yihu.hos.saas.models;
import com.yihu.hos.tenant.models.common.IdModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * @created Airhead 2016/11/16.
 */
@Entity
@Table(name = "tenant")
public class TenantModel extends IdModel {
    private String code;
    private String name;
    private String password;
    private String schema;
    private Date created;
    private Long createdUnix;
    private Date updated;
    private Long updatedUnix;
    private Integer valid;
    @Column(name = "password")
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "schema")
    public String getSchema() {
        return schema;
    }
    public void setSchema(String schema) {
        this.schema = schema;
    }
    @Column(name = "created")
    public Date getCreated() {
        return created;
    }
    public void setCreated(Date created) {
        this.created = created;
    }
    @Column(name = "created_unix")
    public Long getCreatedUnix() {
        return createdUnix;
    }
    public void setCreatedUnix(Long createdUnix) {
        this.createdUnix = createdUnix;
    }
    @Column(name = "updated")
    public Date getUpdated() {
        return updated;
    }
    public void setUpdated(Date updated) {
        this.updated = updated;
    }
    @Column(name = "updated_unix")
    public Long getUpdatedUnix() {
        return updatedUnix;
    }
    public void setUpdatedUnix(Long updatedUnix) {
        this.updatedUnix = updatedUnix;
    }
    @Column(name = "valid")
    public Integer getValid() {
        return valid;
    }
    public void setValid(Integer valid) {
        this.valid = valid;
    }
}

+ 0 - 44
hos-saas/src/main/java/com/yihu/hos/saas/models/TestModel.java

@ -1,44 +0,0 @@
package com.yihu.hos.saas.models;
import com.yihu.hos.tenant.models.common.IdModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * @created Airhead 2016/11/16.
 */
@Entity
@Table(name = "test")
public class TestModel extends IdModel {
    private String name;
    private String memo;
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "memo")
    public String getMemo() {
        return memo;
    }
    public void setMemo(String memo) {
        this.memo = memo;
    }
    @Override
    public String toString() {
        return "TestModel{" +
                "name='" + name + '\'' +
                ", memo='" + memo + '\'' +
                '}';
    }
}

+ 0 - 77
hos-saas/src/main/java/com/yihu/hos/saas/models/UserModel.java

@ -1,77 +0,0 @@
package com.yihu.hos.saas.models;
import com.yihu.hos.tenant.models.common.IdModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * @created Airhead 2016/9/2.
 */
@Entity
@Table(name = "user")
public class UserModel extends IdModel {
    private String code;
    private String name;
    private String password;
    private Date created;
    private Date updated;
    private Integer valid;
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "password")
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Column(name = "created")
    public Date getCreated() {
        return created;
    }
    public void setCreated(Date created) {
        this.created = created;
    }
    @Column(name = "updated")
    public Date getUpdated() {
        return updated;
    }
    public void setUpdated(Date updated) {
        this.updated = updated;
    }
    @Column(name = "valid")
    public Integer getValid() {
        return valid;
    }
    public void setValid(Integer valid) {
        this.valid = valid;
    }
}

+ 0 - 57
hos-saas/src/main/java/com/yihu/hos/saas/models/UserTenantModel.java

@ -1,57 +0,0 @@
package com.yihu.hos.saas.models;
import com.yihu.hos.tenant.models.common.IdModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * @created Airhead 2016/11/16.
 */
@Entity
@Table(name = "user_tenant")
public class UserTenantModel extends IdModel {
    private String userCode;
    private String tenantSchema;
    private Date created;
    private Date updated;
    @Column(name = "user_code")
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    @Column(name = "tenant_schema")
    public String getTenantSchema() {
        return tenantSchema;
    }
    public void setTenantSchema(String tenantSchema) {
        this.tenantSchema = tenantSchema;
    }
    @Column(name = "created")
    public Date getCreated() {
        return created;
    }
    public void setCreated(Date created) {
        this.created = created;
    }
    @Column(name = "updated")
    public Date getUpdated() {
        return updated;
    }
    public void setUpdated(Date updated) {
        this.updated = updated;
    }
}

+ 0 - 45
hos-saas/src/main/java/com/yihu/hos/saas/models/bo/UserSession.java

@ -1,45 +0,0 @@
package com.yihu.hos.saas.models.bo;
import java.util.UUID;
/**
 * @created Airhead 2016/11/16.
 */
public class UserSession {
    private String userCode;
    private String token;
    private String schema;
    public UserSession() {
    }
    public UserSession(String userCode, String schema) {
        this.userCode = userCode;
        this.schema = schema;
        token = UUID.randomUUID().toString();
    }
    public String getSchema() {
        return schema;
    }
    public void setSchema(String schema) {
        this.schema = schema;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
}

+ 0 - 17
hos-saas/src/main/java/com/yihu/hos/saas/services/AuthenticateService.java

@ -1,17 +0,0 @@
package com.yihu.hos.saas.services;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
 */
@Service
public interface AuthenticateService {
    boolean isAuth(HttpServletRequest request, HttpServletResponse response) throws Exception;
    String auth(HttpSession httpSession, String tenantName, String tenantPassword, String user, String password);
}

+ 0 - 11
hos-saas/src/main/java/com/yihu/hos/saas/services/HelloService.java

@ -1,11 +0,0 @@
package com.yihu.hos.saas.services;
import org.springframework.stereotype.Service;
/**
 * @created Airhead 2016/9/23.
 */
@Service
public interface HelloService {
    String sayHello();
}

+ 0 - 62
hos-saas/src/main/java/com/yihu/hos/saas/services/impl/AuthenticateServiceImpl.java

@ -1,62 +0,0 @@
package com.yihu.hos.saas.services.impl;
import com.yihu.hos.saas.constants.ContextAttributes;
import com.yihu.hos.saas.daos.TenantDao;
import com.yihu.hos.saas.daos.UserDao;
import com.yihu.hos.saas.models.TenantModel;
import com.yihu.hos.saas.models.UserModel;
import com.yihu.hos.saas.models.bo.UserSession;
import com.yihu.hos.saas.services.AuthenticateService;
import com.yihu.hos.saas.utils.LocalContext;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
 */
public class AuthenticateServiceImpl implements AuthenticateService {
    @Autowired
    private UserDao userDao;
    @Autowired
    private TenantDao tenantDao;
    @Override
    public boolean isAuth(HttpServletRequest request, HttpServletResponse response) throws Exception {
        HttpSession session = request.getSession();
        UserSession userSession = (UserSession) session.getAttribute("userSession");
        if (userSession == null) {
            return false;
        }
        LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, userSession.getSchema());
        return true;
    }
    @Override
    public String auth(HttpSession httpSession, String tenantName, String tenantPassword, String user, String password) {
        TenantModel tenantModel = tenantDao.findOneByName(tenantName);
        //TODO:现在只是简单逻辑,需要修改成安全逻辑
        if (tenantModel == null
//                || !password.equals(tenantModel.getPassword())
                ) {
            return "Tenant Auth Failed";
        }
        //切换Schema
        LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, tenantModel.getSchema());
        UserModel userModel = userDao.findOne(user);
        //TODO:现在只是简单逻辑,需要修改成安全逻辑
        if (userModel == null || !password.equals(userModel.getPassword())) {
            return "User Auth Failed";
        }
        httpSession.setAttribute("userSession", new UserSession(userModel.getCode(), tenantModel.getSchema()));
        return "Auth Success";
    }
}

+ 0 - 13
hos-saas/src/main/java/com/yihu/hos/saas/services/impl/HelloServiceImpl.java

@ -1,13 +0,0 @@
package com.yihu.hos.saas.services.impl;
import com.yihu.hos.saas.services.HelloService;
/**
 * @created Airhead 2016/9/23.
 */
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello() {
        return "Hello World!";
    }
}

+ 0 - 31
hos-saas/src/main/java/com/yihu/hos/saas/services/mockimpl/AuthenticateServiceMockImpl.java

@ -1,31 +0,0 @@
package com.yihu.hos.saas.services.mockimpl;
import com.yihu.hos.saas.constants.ContextAttributes;
import com.yihu.hos.saas.models.bo.UserSession;
import com.yihu.hos.saas.services.AuthenticateService;
import com.yihu.hos.saas.utils.LocalContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * @created Airhead 2016/11/16.
 */
public class AuthenticateServiceMockImpl implements AuthenticateService {
    @Override
    public boolean isAuth(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String name = request.getParameter("name");
        LocalContext.getContext().setAttachment(ContextAttributes.SCHEMA, name);
        return true;
    }
    @Override
    public String auth(HttpSession httpSession, String tenantName, String tenantPassword, String user, String password) {
        UserSession userSession = new UserSession();
        userSession.setUserCode("abc");
        userSession.setToken("1234567890");
        return null;
    }
    
}

+ 0 - 19
hos-saas/src/main/java/com/yihu/hos/saas/services/mockimpl/HelloServiceMockImpl.java

@ -1,19 +0,0 @@
package com.yihu.hos.saas.services.mockimpl;
import com.yihu.hos.saas.daos.TestDao;
import com.yihu.hos.saas.models.TestModel;
import com.yihu.hos.saas.services.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * @created Airhead 2016/9/23.
 */
public class HelloServiceMockImpl implements HelloService {
    @Autowired
    private TestDao testDao;
    public String sayHello() {
        TestModel testModel = testDao.findOne(1L);
        return "Hello," + testModel.toString();
    }
}

+ 0 - 60
hos-saas/src/main/java/com/yihu/hos/saas/utils/LocalContext.java

@ -1,60 +0,0 @@
package com.yihu.hos.saas.utils;
import java.util.HashMap;
import java.util.Map;
/**
 * @created Airhead 2016/11/14.
 */
public class LocalContext {
    private static final ThreadLocal<LocalContext> LOCAL = new ThreadLocal<LocalContext>() {
        protected LocalContext initialValue() {
            return new LocalContext();
        }
    };
    private final Map<String, String> attachments = new HashMap<>();
    public static LocalContext getContext() {
        return LOCAL.get();
    }
    public static void removeContext() {
        LOCAL.remove();
    }
    public String getAttachment(String key) {
        return (String) this.attachments.get(key);
    }
    public LocalContext setAttachment(String key, String value) {
        if (value == null) {
            this.attachments.remove(key);
        } else {
            this.attachments.put(key, value);
        }
        return this;
    }
    public LocalContext removeAttachment(String key) {
        this.attachments.remove(key);
        return this;
    }
    public Map<String, String> getAttachments() {
        return this.attachments;
    }
    public LocalContext setAttachments(Map<String, String> attachment) {
        this.attachments.clear();
        if (attachment != null && attachment.size() > 0) {
            this.attachments.putAll(attachment);
        }
        return this;
    }
    public void clearAttachments() {
        this.attachments.clear();
    }
}

+ 0 - 14
hos-saas/src/main/resources/META-INF/additional-spring-configuration-metadata.json

@ -1,14 +0,0 @@
{
  "properties": [
    {
      "name": "services.HelloService",
      "type": "java.lang.String",
      "description": "Description for services.HelloService."
    },
    {
      "name": "services.AuthenticateService ",
      "type": "java.lang.String",
      "description": "Description for services.AuthenticateService ."
    }
  ]
}

+ 0 - 9
hos-saas/src/main/resources/application.yml

@ -1,9 +0,0 @@
services:
  HelloService: false
  AuthenticateService : true
spring:
  datasource:
    url: jdbc:mysql://192.168.1.220:8066/global_db?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
    username: hos
    password: 123456

+ 0 - 16
hos-saas/src/test/java/com/yihu/hos/HosSaasApplicationTests.java

@ -1,16 +0,0 @@
package com.yihu.hos;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class HosSaasApplicationTests {
	@Test
	public void contextLoads() {
	}
}

+ 2 - 2
hos-web-camel-dependencies/pom.xml

@ -5,12 +5,12 @@
    <modelVersion>4.0.0</modelVersion>
    <artifactId>hos-web-camel-dependencies</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <packaging>pom</packaging>
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-framework-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <version>1.3.0</version>
        <relativePath>../hos-web-framework-dependencies</relativePath><!-- lookup parent from repository -->
    </parent>

+ 4 - 8
hos-web-framework-dependencies/pom.xml

@ -6,12 +6,12 @@
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-web-framework-dependencies</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <packaging>pom</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <version>1.4.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository1212 -->
    </parent>
@ -92,15 +92,11 @@
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-core</artifactId>
            <version>1.1.1-SNAPSHOT</version>
            <version>1.3.0</version>
        </dependency>
        <!-- swagger start -->
        <dependency>

+ 2 - 2
hos-web-framework/pom.xml

@ -6,11 +6,11 @@
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-web-framework</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <version>1.3.0</version>
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-framework-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <version>1.3.0</version>
        <relativePath>../hos-web-framework-dependencies</relativePath>
    </parent>
    <dependencies>

+ 10 - 11
pom.xml

@ -4,8 +4,8 @@
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yihu.hos</groupId>
    <artifactId>esb</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <artifactId>hos-admin</artifactId>
    <version>1.3.0</version>
    <packaging>war</packaging>
    <name>esb</name>
@ -13,7 +13,7 @@
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-framework-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <version>1.3.0</version>
        <relativePath>/hos-web-framework-dependencies</relativePath> <!-- lookup parent from repository -->
    </parent>
@ -48,7 +48,7 @@
        <dependency>
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-web-framework</artifactId>
            <version>1.1.1-SNAPSHOT</version>
            <version>1.3.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
@ -134,16 +134,15 @@
            <version>1.8.9</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.core</groupId>
            <artifactId>ehr-dbhelper</artifactId>
            <version>1.1.9</version>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.core</groupId>
            <artifactId>html2image</artifactId>
            <version>0.9</version>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20140107</version>
        </dependency>
    </dependencies>
    <build>

+ 3 - 4
src/main/java/com/yihu/hos/config/MongoConfig.java

@ -1,12 +1,11 @@
package com.yihu.hos.config;
import com.mongodb.*;
import com.yihu.ehr.dbhelper.jdbc.DBConfig;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.core.MongoTemplate;
import static java.util.Collections.singletonList;

+ 0 - 198
src/main/java/com/yihu/hos/crawler/model/config/SysConfig.java

@ -1,198 +0,0 @@
package com.yihu.hos.crawler.model.config;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.crawler.model.patient.PatientIdentity;
import com.yihu.hos.crawler.model.patient.PatientIndex;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SysConfig {
    private static Logger logger = LoggerFactory.getLogger(SysConfig.class);
    public static final String HOS_RESOURCES_CONFIG = "/config/sys.config.xml";
    private static volatile SysConfig instance = null;
    private HashMap<String, PatientIdentity> patientIdentityHashMap;
    private Map<String, PatientIndex> patientIndexMap;//病人摘要信息内容
    private Map<String, String> publicKeyMap;
    private Map<String, String> versionMap;
    public static String tempFile;
    public static String orgcode;
    public static String registerDataSet;
    public static String registerIdCardNo;
    private SysConfig() {
        patientIdentityHashMap = new HashMap<>();
        patientIndexMap = new HashMap<>();
        publicKeyMap = new HashMap<>();
        versionMap = new HashMap<>();
        init();
    }
    public static SysConfig getInstance() {
        if (instance == null) {
            synchronized (SysConfig.class) {
                if (instance == null) {
                    try {
                        instance = new SysConfig();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        return instance;
    }
    public void finalize() throws Throwable {
    }
    public String getTempFile() {
        return this.tempFile;
    }
    public void setTempFile(String tempFile) {
        this.tempFile = tempFile;
    }
    public PatientIdentity getPatientIdentity(String dataSetCode) {
        return patientIdentityHashMap.get(dataSetCode);
    }
    public HashMap<String, PatientIdentity> getPatientIdentityHashMap() {
        return patientIdentityHashMap;
    }
    public String getRegisterDataSet() {
        return registerDataSet;
    }
    public String getRegisterIdCardNo() {
        return registerIdCardNo;
    }
    public Map<String, PatientIndex> getPatientIndexMap() {
        return patientIndexMap;
    }
    public Map<String, String> getPublicKeyMap() {
        return publicKeyMap;
    }
    public Map<String, String> getVersionMap() {
        return versionMap;
    }
    public void setVersionMap(Map<String, String> versionMap) {
        this.versionMap = versionMap;
    }
    private Document getDocument() throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = null;
        try {
            InputStream inputStream = SysConfig.class.getResourceAsStream(HOS_RESOURCES_CONFIG);
            document = reader.read(inputStream);
            return document;
        } catch (DocumentException de) {
            logger.info("读取classpath下的xml文档路径发生异常");
            return null;
        }
    }
    private void init() {
        try {
            Document document = this.getDocument();
            Element rootElement = null;
            if (document != null) {
                rootElement = document.getRootElement();
            }
            if (rootElement == null) {
                return;
            }
            this.initCrawler(rootElement);
            this.initEventNo(rootElement);
            this.initVersion(rootElement);
//            this.initPatientIndex(rootElement);
        } catch (Exception e) {
            logger.error(e.getCause().toString());
        }
    }
    private void initVersion(Element rootElement){
        String tempFile = rootElement.elementTextTrim("temp_file");
        if (!StringUtil.isEmpty(tempFile)) {
            this.tempFile = tempFile;
        } else {
            String home = System.getProperty("catalina.home").replace('\\','/');
            String homeUrl = home.substring(0,home.lastIndexOf('/')+1);
            this.tempFile = homeUrl + "temp";
        }
        List queueDataSets = rootElement.element("ehr_version").elements("org_code");
        for (Object obj : queueDataSets) {
            if (obj instanceof Element) {
                Element element = (Element) obj;
                String dataSetCode = element.attributeValue("code");
                String version = element.elementTextTrim("version");
                String ehrVersion=new String(version);
                versionMap.put(dataSetCode,ehrVersion);
            }
        }
        Element registerDataSet = rootElement.element("register").element("dataset");
        this.registerDataSet = registerDataSet.attributeValue("code");
        this.registerIdCardNo = registerDataSet.elementTextTrim("id_card");
    }
    private void initCrawler(Element rootElement) {
        String tempFile = rootElement.elementTextTrim("temp_file");
        if (!StringUtil.isEmpty(tempFile)) {
            this.tempFile = tempFile;
        } else {
            String home = System.getProperty("catalina.home").replace('\\','/');
            String homeUrl = home.substring(0,home.lastIndexOf('/')+1);
            this.tempFile = homeUrl + "temp";
        }
        List queueDataSets = rootElement.element("patient_queue").elements("dataset");
        for (Object obj : queueDataSets) {
            if (obj instanceof Element) {
                Element element = (Element) obj;
                String dataSetCode = element.attributeValue("code");
                String eventNo = element.elementTextTrim("event_no");
                String refTime = element.elementTextTrim("ref_time");
                PatientIdentity patientIdentity = new PatientIdentity(eventNo, refTime);
                patientIdentityHashMap.put(dataSetCode, patientIdentity);
            }
        }
        Element registerDataSet = rootElement.element("register").element("dataset");
        this.registerDataSet = registerDataSet.attributeValue("code");
        this.registerIdCardNo = registerDataSet.elementTextTrim("id_card");
    }
    private void initEventNo(Element rootElement) {
        List eventItems = rootElement.element("event_no").elements("item");
        for (Object obj : eventItems) {
            if (obj instanceof Element) {
                Element element = (Element) obj;
                String eventNoCode = element.getTextTrim();
                PatientIdentity.addEventNoCode(eventNoCode);
            }
        }
    }
}//end SysConfig

+ 0 - 389
src/main/java/com/yihu/hos/crawler/service/EsbHttp.java

@ -1,389 +0,0 @@
package com.yihu.hos.crawler.service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.crawler.model.adapter.AdapterDataSet;
import com.yihu.hos.crawler.model.config.SysConfig;
import com.yihu.hos.crawler.model.patient.Patient;
import com.yihu.hos.crawler.model.transform.EhrCondition;
import com.yihu.hos.web.framework.constant.SqlConstants;
import org.json.JSONObject;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import sun.misc.BASE64Encoder;
import java.io.File;
import java.util.*;
/**
 * Created by hzp on 2016/3/10.
 */
public class EsbHttp {
    public static String defaultHttpUrl;
    public static String clientId;
    public static String clientKey;
    public static String httpGateway;
    public static String defaultHttpUser;
    public static String defaultHttpPassword;
    public static String sslKeyStore;
    public static String sslPassword;
    private static Logger logger = LoggerFactory.getLogger(EsbHttp.class);
    static {
        //默认配置
        try {
            Resource resource = new ClassPathResource("config/http.properties");
            EncodedResource encRes = new EncodedResource(resource, "UTF-8");
            Properties props = PropertiesLoaderUtils.loadProperties(encRes);
            defaultHttpUrl = props.getProperty("httpUrl");
            defaultHttpUser = props.getProperty("httpUser");
            defaultHttpPassword = props.getProperty("httpPassword");
            clientId = props.getProperty("clientId");
            clientKey = props.getProperty("clientKey");
            sslKeyStore = props.getProperty("sslKeystore");
            sslPassword = props.getProperty("sslPassword");
        } catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }
    /***************************** 用户接口 *********************************************/
    /**
     * 用户登录验证
     */
    public static HTTPResponse loginAction(String user, String password) throws Exception {
        String loginAction = defaultHttpUrl + "/authorizations/users/" + user;
        Map<String, String> header = new HashMap<>();
        String auth = new BASE64Encoder().encode((user + ":" + password).getBytes());
        header.put("Authorization", "Basic " + auth);
        return HttpClientKit.put(loginAction, null, header);
    }
    /*
    *   获取用户信息
    * */
    public static HTTPResponse getUserInfo(String user, String token) {
        String url = defaultHttpUrl + "/users/" + user;
        Map<String, String> params = new HashMap<>();
        params.put("token", token);
        params.put("user", user);
        return HttpClientKit.get(url, params);
    }
    /***************************** 应用接口 *********************************************/
    /**
     * 获取本机指纹
     *
     * @return
     */
    private static String GetFingerprint() {
        try {
            return UUID.randomUUID().toString();
        } catch (Exception e) {
            System.out.print(e.getMessage());
            return "";
        }
    }
    /**
     * 应用登录验证
     */
    public static String getToken() {
        try {
            String loginAction = defaultHttpUrl + "/authorizations/clients/" + clientId;
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            //本地指纹
            Map<String, String> params = new HashMap<>();
            params.put("info", "{\"fingerprint\": \"" + GetFingerprint() + "\"}");
            HTTPResponse response = HttpClientKit.put(loginAction, params, header);
            if (response != null && response.getStatusCode() == 200) {
                JSONObject obj = new JSONObject(response.getBody());
                //判断是否成功
                if (obj.has("token")) {
                    return obj.getString("token");
                } else {
                    logger.info("返回未包含token。");
                    return null;
                }
            } else {
                String msg = "获取Token失败。";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return null;
            }
        } catch (Exception ex) {
            logger.info("获取Token失败," + ex.getMessage());
            return null;
        }
    }
    /**
     * 获取病人列表
     */
    public static String getPatientList(AdapterDataSet adapterDataSet, List<EhrCondition> queryParams) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            ObjectNode paramsNode = mapper.createObjectNode();
            paramsNode.put("tableCode", adapterDataSet.getAdapterDataSetT().getStdDatasetCode());
            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
            Map<String, String> formParams = new HashMap<>();
            formParams.put("api", "collectionData");
            String params = mapper.writeValueAsString(paramsNode);
            formParams.put("param", params);
            HTTPResponse response = HttpClientKit.post(httpGateway, formParams);
            if (response == null || response.getStatusCode() != 200) {
                logger.error("获取病人列表错误,请求HTTP错误,请检查配置或HTTP是否可用.");
                return "";
            }
            JsonNode responseNode = mapper.readValue(response.getBody(), JsonNode.class);
            String code = responseNode.path("responseCode").asText();
            if (StringUtil.isEmpty(code) || !code.equals("10000")) {
                logger.error("获取病人列表错误,请求HTTP错误,请检查集成平台网关是否可用.");
                return "";
            }
            String rootStr = responseNode.path("responseResult").asText();
            if ("".equals(rootStr)) {
                logger.error("获取病人列表错误,集成平台获取病人列表失败.");
                return "";
            }
            return rootStr;
        } catch (Exception e) {
            logger.error("获取病人列表失败!", e);
            return "";
        }
    }
    public static String getFecthData(Map<String, String> formParams) {
        try {
            HTTPResponse response = HttpClientKit.post(httpGateway, formParams);
            if (response == null || response.getStatusCode() != 200) {
                logger.info("获取病人数据错误,请求HTTP错误,请检查配置或HTTP是否可用.");
                return SqlConstants.EMPTY;
            }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode responseNode = mapper.readValue(response.getBody(), JsonNode.class);
            String code = responseNode.path("responseCode").asText();
            if (StringUtil.isEmpty(code) || !code.equals("10000")) {
                logger.info("获取病人数据错误,请求HTTP错误,请检查集成平台网关是否可用.");
                return SqlConstants.EMPTY;
            }
            String rootStr = responseNode.path("responseResult").asText();
            if (SqlConstants.EMPTY.equals(rootStr)) {
                logger.info("获取病人数据错误,集成平台获取病人数据失败.");
                return SqlConstants.EMPTY;
            }
            return rootStr;
        } catch (Exception e) {
            logger.error("获取病人数据失败.", e);
            return SqlConstants.EMPTY;
        }
    }
    /**
     * 获取公钥
     */
    public static String getPublicKey(String orgCode) {
        try {
            String token = getToken();
            if (!StringUtil.isEmpty(SysConfig.getInstance().getPublicKeyMap().get(orgCode))) {
                return SysConfig.getInstance().getPublicKeyMap().get(orgCode);
            }
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            Map<String, String> paramMap = new HashMap<>();
            paramMap.put("org_code", orgCode);
            paramMap.put("token", token);
            String publicKeyMethod = defaultHttpUrl + "/organizations/" + orgCode + "/key";
            HTTPResponse response = HttpClientKit.get(publicKeyMethod, paramMap, header);
            if (response != null && response.getStatusCode() == 200) {
                JSONObject json = new JSONObject(response.getBody());
                if (json.has("publicKey")) {
                    String publicKey = json.getString("publicKey");
                    SysConfig.getInstance().getPublicKeyMap().put(orgCode, publicKey);
                    return publicKey;
                } else {
                    logger.info("获取公钥失败,返回未包含publicKey。");
                    return null;
                }
            } else {
                String msg = "获取公钥失败。";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return null;
            }
        } catch (Exception e) {
            logger.info(e.getMessage());
            return null;
        }
    }
    /**
     * 获取健康云平台标准版本号
     */
    public static String getRemoteVersion(String orgCode) {
        try {
            String token = getToken();
            String versionMethod = defaultHttpUrl + "/adaptions/org_plan/version";
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            Map<String, String> params = new HashMap<>();
            params.put("org_code", orgCode);
            params.put("token", token);
            HTTPResponse response = HttpClientKit.get(versionMethod, params, header);
            if (response != null && response.getStatusCode() == 200) {
                return response.getBody();
            } else {
                String msg = "获取健康云平台标准版本号失败";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return null;
            }
        } catch (Exception e) {
            logger.info("获取远程版本号异常");
            logger.error(e.getCause().toString());
            return null;
        }
    }
    /**
     * 注册病人
     */
    public static Boolean register(Patient patient, String data, String token) {
        try {
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            header.put("User-Agent", "client " + clientId);
            if (json != null && json.has("data")) {
                JSONObject p = (JSONObject) json.getJSONArray("data").get(0);
                if (!p.has(colName) || StringUtil.isEmpty(p.get(colName))) {
                    logger.info("注册病人信息请求失败:身份证号码为空,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                    return false;
                } else {
                    String idCord = p.getString(colName);
                    String registerMethod = defaultHttpUrl + "/patients/" + idCord;
                    if (StringUtil.isEmpty(data)) {
                        logger.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                        return false;
                    }
                    Map<String, String> paramMap = new HashMap<>();
                    paramMap.put("demographic_id", idCord);
                    paramMap.put("json", data);
                    paramMap.put("token", token);
                    HTTPResponse response = HttpClientKit.post(registerMethod, paramMap, header);
                    if (response != null && response.getStatusCode() == 200) {
                        logger.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                        return true;
                    } else {
                        String msg = "注册病人信息请求失败。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo();
                        if (response != null) {
                            msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                        }
                        logger.info(msg);
                        return false;
                    }
                }
            } else {
                logger.info("注册病人信息请求失败:传入数据无效,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
        } catch (Exception e) {
            logger.info("注册病人信息请求失败." + e.getMessage());
            return false;
        }
    }
    /**
     * 上传病人档案
     */
    public static boolean upload(Patient patient, File file, String encryptPwd, String token) {
        try {
            String uploadMethod = defaultHttpUrl + "/packages";
            String fileMd5 = MD5.getMd5ByFile(file);
            Map<String, String> formParams = new HashMap<>();
            formParams.put("md5", fileMd5);
            formParams.put("package_crypto", encryptPwd);
            formParams.put("org_code", patient.getOrgCode());
            formParams.put("token", token);
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            header.put("User-Agent", "client " + clientId);
            HTTPResponse response = HttpClientKit.postFile(uploadMethod, file.getAbsolutePath(), formParams, header);
            if (response != null && response.getStatusCode() == 200) {
                logger.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            } else {
                String msg = "上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo();
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return false;
            }
        } catch (Exception e) {
            logger.info("上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            logger.error(e.getCause().toString());
            return false;
        }
    }
    /**
     * 下载标准包
     */
    public static HTTPResponse download(String remoteVersion, String orgCode) {
        try {
            String token = getToken();
            String downLoadMethod = defaultHttpUrl + "/adaptions/" + orgCode + "/source";
            Map<String, String> params = new HashMap<>();
            params.put("version_code", remoteVersion);
            params.put("org_code", orgCode);
            params.put("token", token);
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            HTTPResponse response = HttpClientKit.get(downLoadMethod, params, header);
            return response;
        } catch (Exception e) {
            logger.info("下载标准包异常:");
            logger.error(e.getCause().toString());
            return null;
        }
    }
}

+ 1 - 28
src/main/java/com/yihu/hos/datacollect/controller/DataCollectController.java

@ -6,7 +6,6 @@ import com.yihu.hos.common.Services;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.datacollect.model.RsJobConfig;
import com.yihu.hos.datacollect.service.DatacollectManager;
import com.yihu.hos.datacollect.service.DatacollectService;
import com.yihu.hos.resource.service.StdService;
import com.yihu.hos.standard.service.adapter.AdapterSchemeService;
import com.yihu.hos.system.service.DatasourceManager;
@ -38,9 +37,6 @@ public class DataCollectController extends BaseController {
    @Resource(name = Services.Datacollect)
    DatacollectManager datacollect;
    @Resource(name = Services.DatacollectService)
    DatacollectService datacollectService;
    @Resource(name = StdService.BEAN_ID)
    StdService stdService;
@ -407,30 +403,7 @@ public class DataCollectController extends BaseController {
    @RequestMapping("repeat")
    @ResponseBody
    public Result repeat(String ids) {
        try {
            if (ids.length() > 0) {
                String[] logId = ids.split(",");
                if (logId.length == 1) {
                    return datacollectService.repeatJob(ids);
                } else {
                    StringBuilder str = new StringBuilder();
                    for (String id : logId) {
                        ActionResult re = datacollectService.repeatJob(id);
                        if (re.isSuccessFlg()) {
                            str.append(id + "补采成功!\n");
                        } else {
                            str.append(id + "补采失败!\n");
                        }
                    }
                    return Result.success(str.toString());
                }
            } else {
                return Result.error("非法操作!");
            }
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
        return Result.error("非法操作!");
    }
    /*************************** 任务跟踪 ***********************************/

+ 0 - 42
src/main/java/com/yihu/hos/datacollect/controller/DataPushController.java

@ -1,42 +0,0 @@
package com.yihu.hos.datacollect.controller;
import com.yihu.hos.datacollect.service.DatapushService;
import com.yihu.hos.web.framework.model.Result;
import com.yihu.hos.web.framework.util.controller.BaseController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
/**
 * 数据采集配置页面
 * Created by hzp on 2015/8/12.
 */
@RequestMapping("/datapush")
@Controller("dataPushController")
public class DataPushController extends BaseController {
    @Resource(name = DatapushService.BEAN_ID)
    DatapushService datapushService;
    /**************************** 推送数据 ************************************************/
    /*
    全流程推数据
     */
    @RequestMapping("datapush")
    @ResponseBody
    public Result datapush(String dataset,String data,String orgCode) {
        try {
            return datapushService.pushData(dataset, data,orgCode);
        }
        catch (Exception ex)
        {
            return Result.error(ex.getMessage());
        }
    }
}

+ 0 - 172
src/main/java/com/yihu/hos/datacollect/service/DatapushService.java

@ -1,172 +0,0 @@
package com.yihu.hos.datacollect.service;
import com.yihu.ehr.dbhelper.mongodb.MongodbHelper;
import com.yihu.hos.common.Services;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.datacollect.dao.DatacollectDao;
import com.yihu.hos.datacollect.dao.DatacollectLogDao;
import com.yihu.hos.resource.service.StdService;
import com.yihu.hos.standard.model.adapter.AdapterDatasetModel;
import com.yihu.hos.standard.model.adapter.resultModel.AdapterMetadataResultDetailModel;
import com.yihu.hos.web.framework.model.ActionResult;
import com.yihu.hos.web.framework.model.Result;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * 推数据服务
 */
@Service(Services.DatapushService)
public class DatapushService {
    public static final String BEAN_ID = Services.DatapushService;
    static private final Logger logger = LoggerFactory.getLogger(DatapushService.class);
    @Autowired
    private DatacollectDao datacollect;
    @Resource(name = DatacollectLogDao.BEAN_ID)
    private DatacollectLogDao datacollectLog;
    @Resource(name = StdService.BEAN_ID)
    private StdService stdService;
    MongodbHelper mongo = new MongodbHelper();
    /**
     * 转译字典
     */
    private String translateDictValue(String oldValue,String type,JSONArray dictAdapterList) throws Exception
    {
        //应用标准字段
        String colName = "adapterEntryCode";
        if(type.equals("0")) //通过name转译
        {
            colName = "adapterEntryValue";
        }
        //遍历字典数据
        for(int i=0; i< dictAdapterList.length();i++)
        {
            JSONObject dictItem = dictAdapterList.getJSONObject(i);
            if(oldValue.equals(dictItem.getString(colName)))
            {
                String newValue = dictItem.getString("stdEntryCode");
                return newValue;
            }
        }
        return oldValue;
    }
    /*****************************************************************************************************/
    /**
     * 数据入库
     */
    @Transactional
    public Result pushData(String datasetCode,String dataString,String orgCode) throws Exception
    {
        //机构标准版本
        String version = datacollect.getVersionByQLC(orgCode);
        //通过标准数据集名称获取适配关系
        AdapterDatasetModel dataset = stdService.getDatasetByCode(version,datasetCode);
        String msg = "";
        if(dataset!=null)
        {
            String datasetId = dataset.getAdapterDatasetId().toString();
            List<AdapterMetadataResultDetailModel> list = stdService.getDatacolByScheme(version,datasetId);
            if(list!=null && list.size()>0)
            {
                JSONArray array = new JSONArray(dataString);
                List<JSONObject> dataList = new ArrayList<>();
                if(array!=null && array.length()>0)
                {
                    for (int i=0;i<array.length();i++)
                    {
                        JSONObject obj = new JSONObject();
                        JSONObject data = (JSONObject)array.get(i);
                        //标准转换
                        for(AdapterMetadataResultDetailModel metadata : list)
                        {
                            String stdColName = metadata.getStdMetadataCode();
                            String adapterColName = metadata.getAdapterMetadataCode();
                            if(data.has(adapterColName))
                            {
                                String val = data.optString(adapterColName);
                                String newValue =val;
                                //判断是否字典
                                if(metadata.getStdDictId()!=null&&metadata.getStdDictId()!=0)
                                {
                                    //获取字典列表
                                    List dictString = stdService.getDictByScheme(version,metadata.getStdDictId().toString());
                                    JSONArray dictAdapterArray = new JSONArray(dictString);
                                    String type = "";
                                    if(metadata.getAdapterDataType()!=null)
                                    {
                                        type = metadata.getAdapterDataType().toString();
                                    }
                                    newValue = translateDictValue(val,type,dictAdapterArray);
                                }
                                obj.put(stdColName,newValue);
                            }
                        }
                        //org_code字段
                        obj.put("RSCOM_ORG_CODE",orgCode);
                        dataList.add(obj);
                    }
                }
                //MongoDB入库
                boolean b = mongo.insert(datasetCode,dataList);
                if(!b)
                {
                    if(mongo.errorMessage!=null && mongo.errorMessage.length()>0)
                    {
                        logger.debug(mongo.errorMessage);
                        msg = "Mongodb保存失败!(表:"+datasetCode+",数据:"+dataString+")"+mongo.errorMessage;
                    }
                    else {
                        msg ="Mongodb保存失败!(表:"+datasetCode+",数据:"+dataString+")";
                    }
                }
            }
        }
        else{
            msg ="适配标准不完善!";
        }
        //是否成功
        if(msg.length()>0)
        {
            //日志记录
            datacollectLog.addDataPushLog("1","0",msg);
            return ActionResult.error(msg);
        }
        else{
            msg = "数据入库成功!(表:"+datasetCode+")";
            //日志记录
            datacollectLog.addDataPushLog("1","1",msg);
            return ActionResult.success(msg);
        }
    }
}

+ 1 - 2
src/main/java/com/yihu/hos/resource/service/RsResourceServiceImpl.java

@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.crawler.service.EsbHttp;
import com.yihu.hos.resource.dao.*;
import com.yihu.hos.resource.model.*;
import com.yihu.hos.resource.viewresult.ResourceAuthorizeDGModel;
@ -332,7 +331,7 @@ public class RsResourceServiceImpl {
  
    public String searchRomoteResourceList(String code, Map<String, String> params) throws Exception {
        params.put("code", code);
        String result = HttpClientKit.get(EsbHttp.defaultHttpUrl, params).getBody();
        String result = HttpClientKit.get("", params).getBody();
        JsonNode jsonobject = objectMapper.readValue(result,JsonNode.class);
        Object response_params = jsonobject.get("responseResult");
        if (response_params.equals("null")) {

+ 3 - 3
src/main/resources/application.yml

@ -48,7 +48,7 @@ spring:
      username: esb
      password: esb
      authenticationDatabase: admin
      gridFsDatabase: upload
      gridFsDatabase: dfs
  activemq:
    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
    user: admin
@ -68,7 +68,7 @@ spring:
      username: esb
      password: esb
      authenticationDatabase: admin
      gridFsDatabase: upload
      gridFsDatabase: dfs
  activemq:
    broker-url: tcp://172.19.103.86:61616?wireFormat.maxInactivityDuration=0
    user: admin
@ -115,7 +115,7 @@ spring:
      username: esb
      password: esb
      authenticationDatabase: admin
      gridFsDatabase: upload
      gridFsDatabase: dfs
  activemq:
    broker-url: tcp://172.19.103.86:61616?wireFormat.maxInactivityDuration=0
    user: admin

+ 0 - 4
src/main/resources/config/archive.properties

@ -1,4 +0,0 @@
##轻量模式 档案过期时间(暂时无需配置)
hos.archives.request.url=/api/v1.0/archives/patient/
hos.archives.expiry.days=60000

+ 0 - 8
src/main/resources/config/dbhelper.properties

@ -1,8 +0,0 @@
defaultName = hos-mysql
defaultUri = jdbc:mysql://172.19.103.71:3306/esb?useUnicode=true&characterEncoding=UTF-8
defaultUser = hos
defaultPassword = hos
mongodbUri=mongodb://esb:esb@172.19.103.57:27017/?authSource=admin
mongodbName=hos

+ 0 - 46
src/main/resources/config/quartz.properties

@ -1,46 +0,0 @@
# Default Properties file for use by StdSchedulerFactory
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
org.quartz.threadPool.class= org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=  10
org.quartz.threadPool.threadPriority=  5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread= true
#表示实际执行时间与下一次应该执行时间之间的差值,超过这个差值就不会执行,低于这个差值就会执行
org.quartz.jobStore.misfireThreshold=  59000
 
#============================================================================
# Configure JobStore
#============================================================================
 
# RAM
# Configure JobStore Cluster
org.quartz.jobStore.class= org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass= org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties= true
#dataSource
org.quartz.jobStore.tablePrefix= QRTZ_
#org.quartz.jobStore.dataSource:qzDS
 
#============================================================================
# Configure Datasources
#============================================================================
#dataSource
#org.quartz.dataSource.qzDS.driver:com.mysql.jdbc.Driver
#org.quartz.dataSource.qzDS.URL:jdbc:mysql://172.19.103.71:3306/esb?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&autoReconnectForPools=true
#org.quartz.dataSource.qzDS.user:hos
#org.quartz.dataSource.qzDS.password:hos
#org.quartz.dataSource.qzDS.maxConnection:100
#org.quartz.dataSource.qzDS.validateOnCheckout:true
#org.quartz.dataSource.qzDS.validationQuery:select 1
org.quartz.jobGroupName = RS_JOBGROUP_NAME
org.quartz.triggerGroupName = RS_TRIGGERGROUP_NAME

+ 0 - 31
src/main/resources/config/sys.config.xml

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <!--<temp_file>D:\temp</temp_file>-->
    <ehr_version>
        <org_code code="jkzl">
            <version>56395d75b854</version>
        </org_code>
    </ehr_version>
    <event_no>
        <item>HDSD03_01_031</item>
        <item>HDSD00_01_579</item>
        <item>EVENT_NO</item>
    </event_no>
    <patient_queue>
        <dataset code="HDSC01_02">
            <patient_id>PATIENT_ID</patient_id>
            <event_no>HDSD03_01_031</event_no>
            <ref_time>HDSD00_01_457</ref_time>
        </dataset>
        <dataset code="HDSC02_09">
            <patient_id>PATIENT_ID</patient_id>
            <event_no>HDSD00_01_579</event_no>
            <ref_time>HDSD00_01_185</ref_time>
        </dataset>
    </patient_queue>
    <register>
        <dataset code="HDSA00_01">
            <id_card>HDSA00_01_017</id_card>
        </dataset>
    </register>
</config>