echo587 2 роки тому
коміт
bb01510948

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 310 - 0
mvnw

@@ -0,0 +1,310 @@
+#!/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
+#
+#    https://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.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven 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
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    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 Mingw, 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)`"
+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
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# 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"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# 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} $MAVEN_CONFIG "$@"

+ 182 - 0
mvnw.cmd

@@ -0,0 +1,182 @@
+@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    https://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 Maven 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 keystroke 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 set title of command window
+title %0
+@REM enable echoing by 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
+
+@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="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+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%

+ 85 - 0
pom.xml

@@ -0,0 +1,85 @@
+<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>1.5.11.RELEASE</version>
+		<relativePath/> <!-- lookup parent from repository -->
+	</parent>
+	<groupId>com.sooka</groupId>
+	<artifactId>zw12345</artifactId>
+	<version>0.0.1</version>
+	<packaging>war</packaging>
+	<name>zw12345</name>
+	<description>Demo project for Spring Boot</description>
+
+	<properties>
+		<java.version>1.8</java.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-validation</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-devtools</artifactId>
+			<scope>runtime</scope>
+			<optional>true</optional>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+			<exclusions>
+				<exclusion>
+					<groupId>org.junit.vintage</groupId>
+					<artifactId>junit-vintage-engine</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.1.23</version>
+        </dependency>
+                <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.0.2</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>19.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-tomcat</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+		    <groupId>org.projectlombok</groupId>
+		    <artifactId>lombok</artifactId>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>

+ 11 - 0
src/main/java/com/example/ServletInitializer.java

@@ -0,0 +1,11 @@
+package com.example;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.support.SpringBootServletInitializer;
+
+
+public class ServletInitializer extends SpringBootServletInitializer {
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+        return application.sources(Zw12345Application.class);
+    }
+}

+ 15 - 0
src/main/java/com/example/Zw12345Application.java

@@ -0,0 +1,15 @@
+package com.example;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cache.annotation.EnableCaching;
+
+@SpringBootApplication
+@EnableCaching
+public class Zw12345Application {
+
+	public static void main(String[] args) {
+		SpringApplication.run(Zw12345Application.class, args);
+	}
+
+}

+ 106 - 0
src/main/java/com/example/common/Http.java

@@ -0,0 +1,106 @@
+package com.example.common;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Map;
+
+/**
+ * Created by yanhongliang on 16/6/14.
+ */
+public class Http {
+
+    public interface SignParams {
+        String signParams(String params);
+    }
+
+    static public void setOnSignParams(SignParams signParams) {
+        onSignParams = signParams;
+    }
+    static private SignParams onSignParams;
+
+    static public String stringFromParams(Map<String, Object> post) {
+
+        StringBuilder buffer = new StringBuilder();
+
+        if (post == null) return null;
+
+        ArrayList<String> keys = new ArrayList<>(post.size());
+        keys.addAll(post.keySet());
+        Collections.sort(keys);
+
+//        ArrayList<Map.Entry<String, Object>> params = new ArrayList<>(post.size());
+//
+//        for (Map.Entry<String, Object> entry: post.entrySet()) {
+//            params.add(entry);
+//        }
+//
+//        Collections.sort(params, new Comparator<Map.Entry<String, Object>>() {
+//            @Override
+//            public int compare(Map.Entry<String, Object> lhs, Map.Entry<String, Object> rhs) {
+//
+//                System.out.println("-----lhs-----:=>"+lhs.getKey().hashCode());
+//                System.out.println("-----rhs-----:=>"+rhs.getKey().hashCode());
+//
+//                return lhs.getKey().hashCode() - rhs.getKey().hashCode();
+//            }
+//        });
+
+        for (String key : keys) {
+            Object value = post.get(key);
+            if (buffer.length() > 0) buffer.append("&");
+            buffer.append(key);
+            buffer.append("=");
+            try {
+                buffer.append(URLEncoder.encode(String.valueOf(value), "UTF-8"));
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+
+        String paramsString = new String(buffer);
+
+        if (onSignParams != null) {
+            paramsString = onSignParams.signParams(paramsString);
+        }
+
+        return paramsString;
+    }
+
+    public static String getMd5(String string) {
+
+        byte[] hash;
+
+        try {
+
+            hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
+
+        } catch (NoSuchAlgorithmException e) {
+
+            throw new RuntimeException("Huh, MD5 should be supported?", e);
+
+        } catch (UnsupportedEncodingException e) {
+
+            throw new RuntimeException("Huh, UTF-8 should be supported?", e);
+
+        }
+
+
+        StringBuilder hex = new StringBuilder(hash.length * 2);
+
+        for (byte b : hash) {
+
+            if ((b & 0xFF) < 0x10) hex.append("0");
+
+            hex.append(Integer.toHexString(b & 0xFF));
+
+        }
+
+        return hex.toString();
+
+    }
+}

+ 157 - 0
src/main/java/com/example/common/HttpRequest.java

@@ -0,0 +1,157 @@
+package com.example.common;
+
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Map;
+
+/**
+ * Http 访问
+ */
+public abstract class HttpRequest {
+
+
+    public interface IProgress {
+        void downloadProgress(int percent, long localSize, long totalSize);
+    }
+
+    public void getAsync(final Map<String, Object> params, final String toUrl) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                get(params, toUrl);
+            }
+        }).start();
+    }
+
+    public void get(Map<String, Object> params, String toUrl) {
+        sendRequest(toUrl, Http.stringFromParams(params), false);
+    }
+
+    public void postAsync(final Map<String, Object> params, final String toUrl) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                post(params, toUrl);
+            }
+        }).start();
+    }
+
+    public void post(Map<String, Object> params, String toUrl) {
+        sendRequest(toUrl, Http.stringFromParams(params), true);
+    }
+
+    private void sendRequest(String url, String params, boolean post) {
+        if (url.equals("")||url == null) return;
+//        Log.i("---------", ""+TextUtils.isEmpty(url));
+
+
+        Response response = new Response(0);
+        HttpURLConnection connection = null;
+        InputStreamReader in = null;
+        try {
+            if (!post) {
+                url = url + "?" + params;
+            }
+            URL uriAPI = new URL(url);
+            connection = (HttpURLConnection) uriAPI.openConnection();
+            // 设置连接主机超时时间
+//            connection.setConnectTimeout(10 * 1000);
+            //设置从主机读取数据超时
+//            connection.setReadTimeout(10 * 1000);
+            // 设置是否使用缓存  默认是true
+            connection.setUseCaches(true);
+
+            if (post) {
+
+                connection.setDoInput(true);
+                connection.setDoOutput(true);
+                connection.setRequestMethod("POST");
+                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+                connection.setRequestProperty("Charset", "UTF-8");
+
+                connection.setRequestProperty("Content-Length", "" + params.length());
+                System.out.println(url + "?" + params);
+
+                // 写入post参数
+                DataOutputStream dop = new DataOutputStream(connection.getOutputStream());
+                dop.writeBytes(params);
+                dop.flush();
+                dop.close();
+            }
+
+            long timestamp = System.currentTimeMillis();
+            response.state = connection.getResponseCode();
+            response.timestamp = connection.getHeaderFieldDate("Date", 0);
+            if (response.timestamp != 0) {
+                response.timestamp += System.currentTimeMillis() - timestamp;
+            }
+
+            if (response.state == 200) {
+                in = new InputStreamReader(connection.getInputStream());
+
+                BufferedReader bufferedReader = new BufferedReader(in);
+                StringBuilder strBuilder = new StringBuilder();
+                String line;
+                while ((line = bufferedReader.readLine()) != null && !_cancel) {
+                    strBuilder.append(line);
+                }
+                response.content = strBuilder.toString();
+            }
+
+        } catch (Exception e) {
+            response.content = e.getLocalizedMessage();
+            error(e);
+        } finally {
+            if (connection != null) {
+                connection.disconnect();
+            }
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            response.cancel = _cancel;
+            _cancel = false;
+            complete(response);
+        }
+    }
+
+    private boolean _cancel = false;
+    public void cancel() {
+        _cancel = true;
+    }
+
+    public abstract void complete(Response response);
+
+    public void error(Exception e)
+    {
+        e.printStackTrace();
+    }
+
+    /**
+     * A dummy item representing a piece of content.
+     */
+    public static class Response {
+        public boolean cancel = false;
+        public int state;
+        public String content;
+        public long timestamp = 0;
+
+        public Response(int state) {
+            this.state = state;
+            this.content = "";
+        }
+
+        @Override
+        public String toString() {
+            return content;
+        }
+    }
+}

+ 63 - 0
src/main/java/com/example/demo/controller/Test.java

@@ -0,0 +1,63 @@
+package com.example.demo.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.protocol.HTTP;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+public class Test {
+
+    public static void main(String args[]){
+
+        String Filename = "D://test.json";
+        String jsonStr = "";
+        try {
+            File jsonFile = new File(Filename);
+            FileReader fileReader = new FileReader(jsonFile);
+            Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
+            int ch = 0;
+            StringBuffer sb = new StringBuffer();
+            while ((ch = reader.read()) != -1) {
+                sb.append((char) ch);
+            }
+            fileReader.close();
+            reader.close();
+            jsonStr = sb.toString();
+            JSONObject jsonObject = JSONObject.parseObject(jsonStr);
+            String fileDatas = jsonObject.getString("fileDatas");
+            System.out.println(fileDatas);
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    public static String mySign(String access_key, long timestamp){
+        //字典序排序
+        String[] arr = {access_key,String.valueOf(timestamp )};
+        Arrays.sort(arr);
+        //按排序后的前后顺序连成串
+        StringBuffer buf = new StringBuffer();
+        buf.append(arr[0]).append(arr[1]);
+        String befStr = buf.toString();
+        //SHA1加密
+        String mySign = DigestUtils.shaHex(befStr.getBytes());
+        return mySign;
+    }
+
+
+
+
+}

+ 361 - 0
src/main/java/com/example/demo/controller/ZzxdControllerth.java

@@ -0,0 +1,361 @@
+package com.example.demo.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.example.common.HttpRequest;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.protocol.HTTP;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Controller
+@RequestMapping("/cms/zzxd/th")
+public class ZzxdControllerth {
+
+	@Value("${system.http.url12345}")
+	private String url12345;
+
+	private final String CHANNELADDORDER = "/12345_inter/handlerProcessNew/channelAddOrderNew";// 自助下单 --8.1新增渠道工单
+	private final String CHANNELEDITORDER = "/12345_inter/handlerProcess/channelEditOrder";// 8.2修改渠道工单
+	private final String LISTMYAPPEAL = "/12345_inter/handlerProcessNew/listMyAppealNew";// 进度查询--8.3我的诉求查询接口
+	private final String SINGLEQUERYORDER = "/12345_inter/handlerProcess/singleQueryOrder";// 工单查询---8.4单个工单查询接口
+	private final String SUBMITAPPRAISE = "/12345_inter/handlerProcess/submitAppraise";// 提交评价---8.5提交评价接口
+	private final String QUERYPUBLICORDE = "/12345_inter/handlerProcess/queryPublicOrde";// 案例公开---8.6查询案例公开
+	private final String GETORDERCOUNT = "/12345_inter/handlerProcess/getOrderCount";
+
+
+	@Value("${system.http.appid}")
+	private String appid;
+
+	@Value("${system.http.account}")
+	private String account;
+
+	@Value("${system.http.password}")
+	private String password;
+
+	private String getSignature(String timestamp) {
+		// 字典序排序
+		String[] arr = { account, timestamp, password };
+		Arrays.sort(arr);
+		// 按排序后的前后顺序连成串
+		StringBuffer buf = new StringBuffer();
+		buf.append(arr[0]).append(arr[1]).append(arr[2]);
+		String befStr = buf.toString();
+		// SHA1加密
+		String signature = DigestUtils.shaHex(befStr.getBytes());
+		return signature;
+	}
+
+//  /**
+//  * 内网(新增12345渠道工单)
+//  */
+	@PostMapping(value = "/save12345")
+	@ResponseBody
+	public JSONObject channelAddOrderNew(@RequestBody String requestBody, HttpServletRequest request) {
+		JSONObject jsonObject = JSONObject.parseObject(requestBody);
+
+		HttpRequest http = new HttpRequest() {
+			@Override
+			public void complete(Response response) {
+
+				if (response.state != 200) {
+					return;
+				}
+				jsonObject.put("message", response.content);
+			}
+		};
+		String channelAddOrder1 = url12345 + CHANNELADDORDER;
+		Map<String, Object> params = new HashMap<>();
+
+		long times = System.currentTimeMillis();
+		String timestamp = String.valueOf(times);
+		String mySignature = this.getSignature(timestamp);
+
+		params.put("signature", mySignature);// 加密校验串
+		params.put("timestamp", timestamp);// 时间戳
+		params.put("appid", appid);// 吉林省政务服务热线分配给第三方系统的appid
+		params.put("orderType", jsonObject.getString("orderType"));// 工单类型
+		params.put("requestTopic", jsonObject.getString("requestTopic"));// 诉求标题
+		params.put("requestContent", jsonObject.getString("requestContent"));// 诉求内容
+		params.put("contactName", jsonObject.getString("contactName"));// 联系人姓名
+		params.put("contactTel", jsonObject.getString("contactTel"));// 联系人电话
+		params.put("certType", jsonObject.getString("certType"));// 证件类型(1身份证)
+		params.put("certCode", jsonObject.getString("certCode"));// 证件号码
+		params.put("contactAddress", jsonObject.getString("contactAddress"));// 联系地址
+		params.put("requestArea", jsonObject.getString("requestArea"));// 事发地址
+		params.put("requestFrom", jsonObject.getString("requestFrom"));// 来源渠道(12345网站)
+		params.put("pubIntent", jsonObject.getString("pubIntent"));// 公开意向(y—公开 n—不公开)
+		params.put("userId", jsonObject.getString("userId"));//统一身份认证用户唯一标识
+		params.put("taskName", jsonObject.getString("requestTopic"));//事项名称
+
+		if (jsonObject.getString("type") != null &&jsonObject.getString("type").equals("1")) {
+			List<Map<String, String>> info = new ArrayList<Map<String, String>>();
+			Map<String, String> m = new HashMap<String, String>();
+			m.put("fileName", jsonObject.getString("fileName"));//
+			m.put("fileBytes", jsonObject.getString("fileBytes"));// 附件数据流,需要转成Base64编码格式
+//			m.put("fileUrl", jsonObject.getString("fileUrl"));// 文件url
+			info.add(m);
+			params.put("fileDatas", info);//
+		}
+		if (jsonObject.getString("type") != null && jsonObject.getString("type").equals("2")) {
+			List<Map<String, String>> info = new ArrayList<Map<String, String>>();
+			Map<String, String> m = new HashMap<String, String>();
+			m.put("fileName", jsonObject.getString("fileName"));
+//			m.put("fileBytes", jsonObject.getString("fileBytes"));// 附件数据流,需要转成Base64编码格式
+			m.put("fileUrl", jsonObject.getString("fileUrl"));// 文件url
+			info.add(m);
+			params.put("fileDatas", info);//
+		}
+		JSONObject paramsjson = JSONObject.parseObject(JSONObject.toJSONString(params));
+		log.info("新增12345渠道工单----参数:" + paramsjson);
+		String result_12345 = post(paramsjson, channelAddOrder1);// 注册
+		JSONObject resultJson = JSONObject.parseObject(result_12345);
+		log.info("新增12345渠道工单----返回值:" + resultJson);
+		return resultJson;
+	}
+
+//  /**
+//  * 内网(12345渠道工单进度查询)
+//  */
+	@PostMapping(value = "/selectScheduleQuery12345")
+	@ResponseBody
+	public JSONObject selectScheduleQuery12345(@RequestBody String requestBody, HttpServletRequest request) {
+		JSONObject jsonObject = JSONObject.parseObject(requestBody);
+
+		String MyQueryOrder1 = url12345 + LISTMYAPPEAL;
+		Map<String, Object> params = new HashMap<>();
+		long times = System.currentTimeMillis();
+		String timestamp = String.valueOf(times);
+		String mySignature = this.getSignature(timestamp);
+		params.put("signature", mySignature);// 加密校验串
+		params.put("timestamp", timestamp);// 时间戳
+		params.put("appid", appid);// 吉林省政务服务热线分配给第三方系统的appid
+		params.put("proWoCode", jsonObject.getString("proWoCode"));// 工单编号
+		params.put("telNum", jsonObject.getString("telNum"));// 电话号码
+		params.put("startNum", jsonObject.getString("startNum"));// 开始条数
+		params.put("endNum", jsonObject.getString("endNum"));// 结束条数
+
+		JSONObject paramsjson = JSONObject.parseObject(JSONObject.toJSONString(params));
+		log.info("渠道工单进度查询----参数:" + paramsjson);
+		String result_12345 = post(paramsjson, MyQueryOrder1);// 注册
+		JSONObject resultJson = JSONObject.parseObject(result_12345);
+		log.info("渠道工单进度查询----返回值:" + resultJson);
+		return resultJson;
+	}
+
+//  /**
+//  * 内网(12345案例公开查询)
+//  */
+	@PostMapping(value = "/selectAlgk12345")
+	@ResponseBody
+	public JSONObject selectAlgk12345(@RequestBody String requestBody, HttpServletRequest request) {
+		JSONObject jsonObject = JSONObject.parseObject(requestBody);
+
+		String queryPublicOrde1 = url12345 + QUERYPUBLICORDE;
+		Map<String, Object> params = new HashMap<>();
+		long times = System.currentTimeMillis();
+		String timestamp = String.valueOf(times);
+		String mySignature = this.getSignature(timestamp);
+		params.put("signature", mySignature);// 加密校验串
+		params.put("timestamp", timestamp);// 时间戳
+		params.put("appid", appid);// 吉林省政务服务热线分配给第三方系统的appid
+		params.put("proWoCode", jsonObject.getString("proWoCode"));// 工单编号
+		params.put("startNum", jsonObject.getString("startNum"));// 开始条数
+		params.put("endNum", jsonObject.getString("endNum"));// 结束条数
+
+		JSONObject paramsjson = JSONObject.parseObject(JSONObject.toJSONString(params));
+		log.info("12345案例公开查询---参数:" + paramsjson);
+		String result_12345 = post(paramsjson, queryPublicOrde1);// 注册
+		JSONObject resultJson = JSONObject.parseObject(result_12345);
+		log.info("12345案例公开查询---返回值:" + resultJson);
+		return resultJson;
+	}
+
+//  /**
+//  * 内网(12345单个工单查询)
+//  */
+	@PostMapping(value = "/singleQueryOrder12345")
+	@ResponseBody
+	public JSONObject singleQueryOrder12345(@RequestBody String requestBody, HttpServletRequest request) {
+		JSONObject jsonObject = JSONObject.parseObject(requestBody);
+
+		String singleQueryOrder1 = url12345 + SINGLEQUERYORDER;
+		Map<String, Object> params = new HashMap<>();
+		long times = System.currentTimeMillis();
+		String timestamp = String.valueOf(times);
+		String mySignature = this.getSignature(timestamp);
+		params.put("signature", mySignature);// 加密校验串
+		params.put("timestamp", timestamp);// 时间戳
+		params.put("appid", appid);// 吉林省政务服务热线分配给第三方系统的appid
+		params.put("proWoCode", jsonObject.getString("proWoCode"));// 工单编号
+        params.put("telNum",jsonObject.getString("telNum"));//电话号码
+
+		JSONObject paramsjson = JSONObject.parseObject(JSONObject.toJSONString(params));
+		log.info("12345单个工单查询---参数:" + paramsjson);
+		String result_12345 = post(paramsjson, singleQueryOrder1);// 注册
+		JSONObject resultJson = JSONObject.parseObject(result_12345);
+//		log.info("12345单个工单查询---返回值:" + resultJson);
+//		String filePath = resultJson.get("filePath").toString();
+//		log.info("12345单个工单查询---filePath:" + url12345 + filePath);
+
+		return resultJson;
+	}
+
+	public HttpServletResponse download(String path, HttpServletResponse response) {
+		try {
+			// path是指欲下载的文件的路径。
+			File file = new File(path);
+			// 取得文件名。
+			String filename = file.getName();
+			// 取得文件的后缀名。
+			String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
+			// 以流的形式下载文件。
+			InputStream fis = new BufferedInputStream(new FileInputStream(path));
+			byte[] buffer = new byte[fis.available()];
+			fis.read(buffer);
+			fis.close();
+			// 清空response
+			response.reset();
+			// 设置response的Header
+			response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
+			response.addHeader("Content-Length", "" + file.length());
+			OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
+			response.setContentType("application/octet-stream");
+			toClient.write(buffer);
+				toClient.flush();
+				toClient.close();
+			} catch (IOException ex) {
+				ex.printStackTrace();
+			}
+		return response;
+	}
+
+//  /**
+//  * 内网(12345提交评价接口)
+//  */
+	@PostMapping(value = "/submitAppraise12345")
+	@ResponseBody
+	public JSONObject submitAppraise12345(@RequestBody String requestBody, HttpServletRequest request) {
+		JSONObject jsonObject = JSONObject.parseObject(requestBody);
+
+		String submitAppraise1 = url12345 + SUBMITAPPRAISE;
+		Map<String, Object> params = new HashMap<>();
+		long times = System.currentTimeMillis();
+		String timestamp = String.valueOf(times);
+		String mySignature = this.getSignature(timestamp);
+		params.put("signature", mySignature);// 加密校验串
+		params.put("timestamp", timestamp);// 时间戳
+		params.put("appid", appid);// 吉林省政务服务热线分配给第三方系统的appid
+		params.put("proWoCode", jsonObject.getString("proWoCode"));// 工单编号
+		params.put("appraisesatisfy", jsonObject.getString("appraisesatisfy"));// 评价满意度
+		params.put("appraiseTime", jsonObject.getString("appraiseTime"));// 评价时间
+		JSONObject paramsjson = JSONObject.parseObject(JSONObject.toJSONString(params));
+		log.info("12345提交评价接口---参数:" + paramsjson);
+		String result_12345 = post(paramsjson, submitAppraise1);// 注册
+		JSONObject resultJson = JSONObject.parseObject(result_12345);
+		log.info("12345提交评价接口---返回值:" + resultJson);
+		return resultJson;
+	}
+
+//  /**
+//  * 12345内网
+//  */
+	public static String post(JSONObject json, String url) {
+
+		HttpClient client = new DefaultHttpClient();
+		HttpPost post = new HttpPost(url);
+		post.setHeader("Content-Type", "application/json");
+		post.addHeader("Authorization", "Basic YWRtaW46");
+		String result = "";
+		try {
+			StringEntity s = new StringEntity(json.toString(), "utf-8");
+			s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
+			post.setEntity(s);
+			// 发送请求
+			HttpResponse httpResponse = client.execute(post);
+			// 获取响应输入流
+			InputStream inStream = httpResponse.getEntity().getContent();
+			BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));
+			StringBuilder strber = new StringBuilder();
+			String line = null;
+			while ((line = reader.readLine()) != null)
+				strber.append(line + "\n");
+			inStream.close();
+			result = strber.toString();
+			if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+				log.info(url + "请求服务器成功");
+			} else {
+				log.info(url + "请求服务端失败");
+			}
+		} catch (Exception e) {
+			log.info(url + "请求异常" + e.getMessage());
+			throw new RuntimeException(e);
+		}
+		return result;
+	}
+
+	/**
+	 * 8.13查询下单量和公开量
+	 * @param requestBody
+	 * @param request
+	 * @return
+	 */
+	@PostMapping(value = "/getOrderCount")
+	@ResponseBody
+	public JSONObject getOrderCount(@RequestBody String requestBody, HttpServletRequest request) {
+		JSONObject jsonObject = JSONObject.parseObject(requestBody);
+		String submitAppraise1 = url12345 + GETORDERCOUNT;
+		Map<String, Object> params = new HashMap<>();
+		long times = System.currentTimeMillis();
+		String timestamp = String.valueOf(times);
+		String mySignature = this.getSignature(timestamp);
+		params.put("signature", mySignature);// 加密校验串
+		params.put("timestamp", timestamp);// 时间戳
+		params.put("appid", appid);// 吉林省政务服务热线分配给第三方系统的appid
+		params.put("callType", "1");// 评价满意度
+		JSONObject paramsjson = JSONObject.parseObject(JSONObject.toJSONString(params));
+		log.info("下单量和公开量---参数:" + paramsjson);
+		String result_12345 = post(paramsjson, submitAppraise1);// 注册
+		JSONObject resultJson = JSONObject.parseObject(result_12345);
+		log.info("下单量和公开量---返回值:" + resultJson);
+		return resultJson;
+	}
+
+	@GetMapping(value = "/test")
+	@ResponseBody
+	public String test() {
+		log.info("===========测试");
+		return "test";
+	}
+
+}

+ 16 - 0
src/main/resources/application.properties

@@ -0,0 +1,16 @@
+#Server
+server.port = 8080
+
+#测试环境(12345url)
+#system.http.url12345=http://172.24.1.72:8150
+#system.http.appid=ff21016c11a34fb2ab6dba97fae0bf14
+#system.http.account=test_thwz
+#system.http.password=123456
+
+#正式环境(12345url)
+system.http.url12345=http://172.24.1.72:8130
+system.http.appid=b425525eec3311ea8262fa163efdf8c5
+system.http.account=jl12345_thwz
+system.http.password=jl12345!@#
+
+system.http.host=127.0.0.1

+ 35 - 0
src/main/resources/logback-spring.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration  scan="true" scanPeriod="10 seconds">
+ 
+    <contextName>logback</contextName>
+    <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
+    <property name="FILE_PATH" value="D:/log/th12345-log.%d{yyyy-MM-dd}.%i.log" />
+ 
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>INFO</level>
+        </filter>
+        <encoder>
+            <pattern>${LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${FILE_PATH}</fileNamePattern>
+            <maxHistory>30</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>2MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <totalSizeCap>1GB</totalSizeCap>
+        </rollingPolicy>
+ 
+        <encoder>
+            <pattern>${LOG_PATTERN}</pattern>
+        </encoder>
+    </appender>
+    <logger name="net.sh.rgface.serive" level="ERROR" />
+    <root level="INFO">
+        <appender-ref ref="console" />
+        <appender-ref ref="rollingFile" />
+    </root>
+</configuration>

+ 13 - 0
src/test/java/com/example/Zw12345ApplicationTests.java

@@ -0,0 +1,13 @@
+package com.example;
+
+import org.junit.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class Zw12345ApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}