Browse Source

充电桩停车场项目创建

fulonglong 3 years ago
commit
d789bac0ca
66 changed files with 2758 additions and 0 deletions
  1. 33 0
      .gitignore
  2. BIN
      .mvn/wrapper/maven-wrapper.jar
  3. 2 0
      .mvn/wrapper/maven-wrapper.properties
  4. 3 0
      loggerPath_IS_UNDEFINED/hk/logfile.log
  5. 20 0
      loggerPath_IS_UNDEFINED/logfile.log
  6. 316 0
      mvnw
  7. 188 0
      mvnw.cmd
  8. 185 0
      pom.xml
  9. 26 0
      src/main/java/com/charging/chargingparking/ChargingParkingApplication.java
  10. 30 0
      src/main/java/com/charging/chargingparking/config/MybatisPlusConfig.java
  11. 180 0
      src/main/java/com/charging/chargingparking/config/RedisConfig.java
  12. 60 0
      src/main/java/com/charging/chargingparking/config/WebMvcConfig.java
  13. 50 0
      src/main/java/com/charging/chargingparking/dto/MessageResult.java
  14. 84 0
      src/main/java/com/charging/chargingparking/entity/SysDataDictionary.java
  15. 71 0
      src/main/java/com/charging/chargingparking/entity/SysLog.java
  16. 82 0
      src/main/java/com/charging/chargingparking/entity/SysMenu.java
  17. 69 0
      src/main/java/com/charging/chargingparking/entity/SysPermission.java
  18. 63 0
      src/main/java/com/charging/chargingparking/entity/SysRole.java
  19. 61 0
      src/main/java/com/charging/chargingparking/entity/SysRoleMenu.java
  20. 61 0
      src/main/java/com/charging/chargingparking/entity/SysRolePermission.java
  21. 77 0
      src/main/java/com/charging/chargingparking/entity/SysUser.java
  22. 61 0
      src/main/java/com/charging/chargingparking/entity/SysUserRole.java
  23. 83 0
      src/main/java/com/charging/chargingparking/interceptor/LoginInterceptor.java
  24. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysDataDictionaryMapper.java
  25. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysLogMapper.java
  26. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysMenuMapper.java
  27. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysPermissionMapper.java
  28. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysRoleMapper.java
  29. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysRoleMenuMapper.java
  30. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysRolePermissionMapper.java
  31. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysUserMapper.java
  32. 15 0
      src/main/java/com/charging/chargingparking/mapper/SysUserRoleMapper.java
  33. 11 0
      src/main/java/com/charging/chargingparking/service/SysDataDictionaryService.java
  34. 11 0
      src/main/java/com/charging/chargingparking/service/SysLogService.java
  35. 11 0
      src/main/java/com/charging/chargingparking/service/SysMenuService.java
  36. 11 0
      src/main/java/com/charging/chargingparking/service/SysPermissionService.java
  37. 11 0
      src/main/java/com/charging/chargingparking/service/SysRoleMenuService.java
  38. 11 0
      src/main/java/com/charging/chargingparking/service/SysRolePermissionService.java
  39. 11 0
      src/main/java/com/charging/chargingparking/service/SysRoleService.java
  40. 11 0
      src/main/java/com/charging/chargingparking/service/SysUserRoleService.java
  41. 11 0
      src/main/java/com/charging/chargingparking/service/SysUserService.java
  42. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysDataDictionaryServiceImpl.java
  43. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysLogServiceImpl.java
  44. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysMenuServiceImpl.java
  45. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysPermissionServiceImpl.java
  46. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysRoleMenuServiceImpl.java
  47. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysRolePermissionServiceImpl.java
  48. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysRoleServiceImpl.java
  49. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysUserRoleServiceImpl.java
  50. 20 0
      src/main/java/com/charging/chargingparking/service/impl/SysUserServiceImpl.java
  51. 90 0
      src/main/java/com/charging/chargingparking/utils/JwtUtil.java
  52. 19 0
      src/main/resources/application-dev.yml
  53. 0 0
      src/main/resources/application-producation.yml
  54. 0 0
      src/main/resources/application-test.yml
  55. 105 0
      src/main/resources/application.yml
  56. 77 0
      src/main/resources/logback-spring.xml
  57. 28 0
      src/main/resources/mapper/SysDataDictionaryMapper.xml
  58. 24 0
      src/main/resources/mapper/SysLogMapper.xml
  59. 28 0
      src/main/resources/mapper/SysMenuMapper.xml
  60. 24 0
      src/main/resources/mapper/SysPermissionMapper.xml
  61. 23 0
      src/main/resources/mapper/SysRoleMapper.xml
  62. 23 0
      src/main/resources/mapper/SysRoleMenuMapper.xml
  63. 23 0
      src/main/resources/mapper/SysRolePermissionMapper.xml
  64. 27 0
      src/main/resources/mapper/SysUserMapper.xml
  65. 23 0
      src/main/resources/mapper/SysUserRoleMapper.xml
  66. 25 0
      src/test/java/com/charging/chargingparking/ChargingParkingApplicationTests.java

+ 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/

BIN
.mvn/wrapper/maven-wrapper.jar


+ 2 - 0
.mvn/wrapper/maven-wrapper.properties

@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

+ 3 - 0
loggerPath_IS_UNDEFINED/hk/logfile.log

@@ -0,0 +1,3 @@
+2022-05-25 08:37:37,122 INFO [StartupInfoLogger.java : 55] Starting ChargingParkingApplication using Java 1.8.0_111 on PsDn-2021OFJPXC with PID 118524 (E:\WORK\charging-parking\target\classes started by Administrator in E:\WORK\charging-parking)
+2022-05-25 08:37:37,123 DEBUG [StartupInfoLogger.java : 56] Running with Spring Boot v2.7.0, Spring v5.3.20
+2022-05-25 08:37:37,124 INFO [SpringApplication.java : 640] The following 1 profile is active: "test"

+ 20 - 0
loggerPath_IS_UNDEFINED/logfile.log

@@ -0,0 +1,20 @@
+2022-05-25 08:37:38,297 WARN [main] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext [AbstractApplicationContext.java : 591] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysDataDictionaryServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysDataDictionaryMapper' defined in file [E:\WORK\charging-parking\target\classes\com\charging\chargingparking\mapper\SysDataDictionaryMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine suitable jdbc url
+2022-05-25 08:37:38,329 ERROR [main] o.s.b.d.LoggingFailureAnalysisReporter [LoggingFailureAnalysisReporter.java : 40] 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
+
+Reason: Failed to determine suitable jdbc url
+
+
+Action:
+
+Consider the following:
+	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
+	If you have database settings to be loaded from a particular profile you may need to activate it (the profiles test are currently active).
+

+ 316 - 0
mvnw

@@ -0,0 +1,316 @@
+#!/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 /usr/local/etc/mavenrc ] ; then
+    . /usr/local/etc/mavenrc
+  fi
+
+  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="`\\unset -f command; \\command -v 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/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.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" || rm -f "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$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 \
+  $MAVEN_DEBUG_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" \
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 188 - 0
mvnw.cmd

@@ -0,0 +1,188 @@
+@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 "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\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/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
+
+FOR /F "usebackq 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%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.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 "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\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%
+
+cmd /C exit /B %ERROR_CODE%

+ 185 - 0
pom.xml

@@ -0,0 +1,185 @@
+<?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>2.7.0</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.charging</groupId>
+    <artifactId>charging-parking</artifactId>
+    <packaging>war</packaging>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>charging-parking</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-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.6.7</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.2.8</version>
+        </dependency>
+
+        <!--缓存 start-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <!--缓存 end-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.lazyluke</groupId>
+            <artifactId>log4jdbc-remix</artifactId>
+            <version>0.2.7</version>
+        </dependency>
+
+        <!--支付相关-->
+        <dependency>
+            <groupId>com.github.javen205</groupId>
+            <artifactId>IJPay-All</artifactId>
+            <version>2.7.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>4.23.21.ALL</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>bcprov-jdk15on</artifactId>
+                    <groupId>org.bouncycastle</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.4.3.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.5.1</version>
+        </dependency>
+        <!--支付相关-->
+        <dependency>
+            <groupId>net.sf.json-lib</groupId>
+            <artifactId>json-lib</artifactId>
+            <version>2.4</version>
+            <type>jar</type>
+            <classifier>jdk15</classifier>
+        </dependency>
+        <!--jwt start-->
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-api</artifactId>
+            <version>0.10.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.12</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.10</version>
+        </dependency>
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+            <version>2.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+    <profiles>
+        <profile>
+            <id>dev</id>
+            <dependencies>
+                <dependency>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </dependency>
+            </dependencies>
+            <properties>
+                <active.profile>dev</active.profile>
+            </properties>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <id>test</id>
+            <dependencies>
+                <dependency>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </dependency>
+            </dependencies>
+            <properties>
+                <active.profile>test</active.profile>
+            </properties>
+        </profile>
+        <profile>
+            <id>production</id>
+            <properties>
+                <active.profile>production</active.profile>
+            </properties>
+            <dependencies>
+                <dependency>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
+
+</project>

+ 26 - 0
src/main/java/com/charging/chargingparking/ChargingParkingApplication.java

@@ -0,0 +1,26 @@
+package com.charging.chargingparking;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@SpringBootApplication
+@EnableTransactionManagement
+@EnableAsync(proxyTargetClass=true)
+@MapperScan("com.charging.chargingparking.mapper")
+public class ChargingParkingApplication extends SpringBootServletInitializer {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ChargingParkingApplication.class, args);
+    }
+
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
+        return builder.sources(ChargingParkingApplication.class);
+    }
+
+}

+ 30 - 0
src/main/java/com/charging/chargingparking/config/MybatisPlusConfig.java

@@ -0,0 +1,30 @@
+package com.charging.chargingparking.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author 墨鱼_mo
+ * @date 2022/5/23 0023 下午 2:54
+ */
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+        paginationInnerInterceptor.setDbType(DbType.MYSQL);
+        paginationInnerInterceptor.setOverflow(true);
+        interceptor.addInnerInterceptor(paginationInnerInterceptor);
+        return interceptor;
+    }
+
+
+}

+ 180 - 0
src/main/java/com/charging/chargingparking/config/RedisConfig.java

@@ -0,0 +1,180 @@
+package com.charging.chargingparking.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CachingConfigurerSupport;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cache.interceptor.KeyGenerator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.cache.RedisCacheWriter;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.*;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.lang.reflect.Method;
+
+
+@Configuration
+@EnableCaching
+public class RedisConfig extends CachingConfigurerSupport {
+    public final static String WX_COMMON_ACCESS_TOKEN = "wx_common_accessToken";
+    public final static String JS_API_TICKET = "js_api_ticket";
+    public final static String PERSON_SELECT_COMPANY = "psc_";
+
+    /**
+     * 注入 RedisConnectionFactory,注意maven中要有redis.clients.jedis
+     */
+    @Autowired
+    RedisConnectionFactory redisConnectionFactory;
+
+    /**
+     * 实例化 RedisTemplate 对象
+     * @return
+     */
+    @Bean
+    public RedisTemplate<String, Object> getRedisTemplate() {
+        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+        initDomainRedisTemplate(redisTemplate, redisConnectionFactory);
+        return redisTemplate;
+    }
+
+    /**
+     * 设置数据存入 redis 的序列化方式
+     *
+     * @param redisTemplate
+     * @param factory
+     */
+    private void initDomainRedisTemplate(RedisTemplate<String, Object> redisTemplate, RedisConnectionFactory factory) {
+        redisTemplate.setKeySerializer(new StringRedisSerializer());
+        redisTemplate.setValueSerializer(valueSerializer());
+        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+        redisTemplate.setHashValueSerializer(valueSerializer());
+        redisTemplate.setConnectionFactory(factory);
+    }
+
+    @Bean
+    public KeyGenerator keyGenerator() {
+        return new KeyGenerator() {
+            @Override
+            public Object generate(Object target, Method method, Object... params) {
+                StringBuilder sb = new StringBuilder();
+                sb.append(target.getClass().getName());
+                sb.append(method.getName());
+                for (Object obj : params) {
+                    sb.append(obj.toString());
+                }
+
+                return sb.toString();
+            }
+        };
+    }
+
+    /**
+     * 实例化 HashOperations 对象,可以使用 Hash 类型操作
+     *
+     * @param redisTemplate
+     * @return
+     */
+    @Bean
+    public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
+        return redisTemplate.opsForHash();
+    }
+
+    /**
+     * 实例化 ValueOperations 对象,可以使用 String 操作
+     *
+     * @param redisTemplate
+     * @return
+     */
+    @Bean
+    public ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {
+        return redisTemplate.opsForValue();
+    }
+
+    /**
+     * 实例化 ListOperations 对象,可以使用 List 操作
+     *
+     * @param redisTemplate
+     * @return
+     */
+    @Bean
+    public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
+        return redisTemplate.opsForList();
+    }
+
+    /**
+     * 实例化 SetOperations 对象,可以使用 Set 操作
+     *
+     * @param redisTemplate
+     * @return
+     */
+    @Bean
+    public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
+        return redisTemplate.opsForSet();
+    }
+
+    /**
+     * 实例化 ZSetOperations 对象,可以使用 ZSet 操作
+     *
+     * @param redisTemplate
+     * @return
+     */
+    @Bean
+    public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
+        return redisTemplate.opsForZSet();
+    }
+
+    @Bean
+    public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
+        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);
+        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(valueSerializer()));
+        redisCacheConfiguration.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
+        return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration);
+    }
+
+    /**
+     * 使用Jackson序列化器
+     * @return
+     */
+    private RedisSerializer<Object> valueSerializer() {
+        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
+        ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        /**
+         * 这一句必须要,作用是序列化时将对象全类名一起保存下来
+         * 设置之后的序列化结果如下:
+         *  [
+         *   "com.dxy.cache.pojo.Dept",
+         *   {
+         *     "pid": 1,
+         *     "code": "11",
+         *     "name": "财务部1"
+         *   }
+         * ]
+         *
+         * 不设置的话,序列化结果如下,将无法反序列化
+         *
+         *  {
+         *     "pid": 1,
+         *     "code": "11",
+         *     "name": "财务部1"
+         *   }
+         */
+//                objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        //因为上面那句代码已经被标记成作废,因此用下面这个方法代替,仅仅测试了一下,不知道是否完全正确
+        objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
+        serializer.setObjectMapper(objectMapper);
+
+        return serializer;
+    }
+}

+ 60 - 0
src/main/java/com/charging/chargingparking/config/WebMvcConfig.java

@@ -0,0 +1,60 @@
+package com.charging.chargingparking.config;
+
+import com.charging.chargingparking.interceptor.LoginInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.*;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+	@Autowired
+	private LoginInterceptor loginInterceptor;
+
+	@Override
+	public void addCorsMappings(CorsRegistry registry) {
+		registry.addMapping("/**")
+				.allowedOrigins("*")
+				.allowedHeaders("*")
+				.allowedMethods("*")
+				.allowCredentials(false)
+				.exposedHeaders("access-control-allow-headers",
+						"access-control-allow-methods",
+						"access-control-allow-origin",
+						"access-control-max-age",
+						"X-Frame-Options",
+						"token-status")
+				.maxAge(3600);
+	}
+
+	@Override
+	public void addResourceHandlers(ResourceHandlerRegistry registry) {
+		registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
+
+		registry.addResourceHandler("swagger-ui.html")
+				.addResourceLocations("classpath:/META-INF/resources/");
+
+		registry.addResourceHandler("/webjars/**")
+				.addResourceLocations("classpath:/META-INF/resources/webjars/");
+	}
+
+	@Override
+	public void addViewControllers(ViewControllerRegistry registry) {
+		// registry.addViewController("/login").setViewName("login");
+	}
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(loginInterceptor)
+				.addPathPatterns("/**")
+                .excludePathPatterns("/login",
+						"/swagger-resources/**",
+                        "/webjars/**",
+                        "/swagger-ui.html",
+						"/doc.html",
+                        "/v2/**",
+                        "/mobileApi/**",
+						"/favicon.ico",
+						"/error")
+				;
+	}
+}

+ 50 - 0
src/main/java/com/charging/chargingparking/dto/MessageResult.java

@@ -0,0 +1,50 @@
+package com.charging.chargingparking.dto;
+
+public class MessageResult<T> {
+	private boolean result = true;
+	private String message;
+	private T data;
+	private int code = 200;
+
+	public MessageResult() {
+	}
+
+	public MessageResult(boolean result, String message, T data, int code) {
+		this.result = result;
+		this.message = message;
+		this.data = data;
+		this.code = code;
+	}
+
+	public boolean isResult() {
+		return result;
+	}
+
+	public void setResult(boolean result) {
+		this.result = result;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public T getData() {
+		return data;
+	}
+
+	public void setData(T data) {
+		this.data = data;
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+}

+ 84 - 0
src/main/java/com/charging/chargingparking/entity/SysDataDictionary.java

@@ -0,0 +1,84 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 数据字典
+ * @TableName sys_data_dictionary
+ */
+@TableName(value ="sys_data_dictionary")
+@Data
+public class SysDataDictionary implements Serializable {
+    /**
+     * 编号
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 名称
+     */
+    @TableField(value = "name_")
+    private String name;
+
+    /**
+     * 数值
+     */
+    @TableField(value = "value_")
+    private String value;
+
+    /**
+     * 显示序号
+     */
+    private Integer sortNo;
+
+    /**
+     * 所属目录
+     */
+    private String parentId;
+
+    /**
+     * 1-字典目录,2-数据
+     */
+    private String dataType;
+
+    /**
+     *
+     */
+    private String createBy;
+
+    /**
+     *
+     */
+    private Date createDate;
+
+    /**
+     *
+     */
+    private String updateBy;
+
+    /**
+     *
+     */
+    private Date updateDate;
+
+    /**
+     *
+     */
+    @TableField(value = "activated_")
+    private Boolean activated;
+
+    /**
+     *
+     */
+    private Boolean delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 71 - 0
src/main/java/com/charging/chargingparking/entity/SysLog.java

@@ -0,0 +1,71 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ *
+ * @TableName sys_log
+ */
+@TableName(value ="sys_log")
+@Data
+public class SysLog implements Serializable {
+    /**
+     * 日志编号
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 客户端IP
+     */
+    private String remoteIp;
+
+    /**
+     * 访问url
+     */
+    @TableField(value = "url_")
+    private String url;
+
+    /**
+     * 提交参数
+     */
+    @TableField(value = "data_")
+    private String data;
+
+    /**
+     * 用户编号
+     */
+    private String userId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark_")
+    private String remark;
+
+    /**
+     * 切入口
+     */
+    @TableField(value = "pointcut_")
+    private String pointcut;
+
+    /**
+     * 耗时
+     */
+    @TableField(value = "elapse_")
+    private Long elapse;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 82 - 0
src/main/java/com/charging/chargingparking/entity/SysMenu.java

@@ -0,0 +1,82 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ *
+ * @TableName sys_menu
+ */
+@TableName(value ="sys_menu")
+@Data
+public class SysMenu implements Serializable {
+    /**
+     * 菜单编号
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 菜单名称
+     */
+    private String menuName;
+
+    /**
+     * 上级菜单
+     */
+    private String parentId;
+
+    /**
+     * 排序号
+     */
+    private Integer sortNo;
+
+    /**
+     * 菜单地址
+     */
+    private String menuUrl;
+
+    /**
+     * 菜单图标
+     */
+    @TableField(value = "icon_")
+    private String icon;
+
+    /**
+     * 菜单类型(1-后端、2-前端)
+     */
+    private String menuType;
+
+    /**
+     *
+     */
+    private Date createTime;
+
+    /**
+     *
+     */
+    private String createBy;
+
+    /**
+     *
+     */
+    private Date updateTime;
+
+    /**
+     *
+     */
+    private String updateBy;
+
+    /**
+     *
+     */
+    private Boolean delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 69 - 0
src/main/java/com/charging/chargingparking/entity/SysPermission.java

@@ -0,0 +1,69 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ *
+ * @TableName sys_permission
+ */
+@TableName(value ="sys_permission")
+@Data
+public class SysPermission implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 访问路径
+     */
+    @TableField(value = "path_")
+    private String path;
+
+    /**
+     * 访问方式
+     */
+    @TableField(value = "method_")
+    private String method;
+
+    /**
+     * 简介
+     */
+    @TableField(value = "summary_")
+    private String summary;
+
+    /**
+     * 是否删除
+     */
+    private Boolean delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 63 - 0
src/main/java/com/charging/chargingparking/entity/SysRole.java

@@ -0,0 +1,63 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ *
+ * @TableName sys_role
+ */
+@TableName(value ="sys_role")
+@Data
+public class SysRole implements Serializable {
+    /**
+     * 角色编号
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 角色名称
+     */
+    @TableField(value = "name_")
+    private String name;
+
+    /**
+     * 角色描述
+     */
+    @TableField(value = "description_")
+    private String description;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标示
+     */
+    private Boolean delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 61 - 0
src/main/java/com/charging/chargingparking/entity/SysRoleMenu.java

@@ -0,0 +1,61 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 
+ * @TableName sys_role_menu
+ */
+@TableName(value ="sys_role_menu")
+@Data
+public class SysRoleMenu implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 
+     */
+    private String roleId;
+
+    /**
+     * 
+     */
+    private String menuId;
+
+    /**
+     * 是否删除
+     */
+    private Boolean delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 61 - 0
src/main/java/com/charging/chargingparking/entity/SysRolePermission.java

@@ -0,0 +1,61 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 
+ * @TableName sys_role_permission
+ */
+@TableName(value ="sys_role_permission")
+@Data
+public class SysRolePermission implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 
+     */
+    private String permId;
+
+    /**
+     * 
+     */
+    private String roleId;
+
+    /**
+     * 是否删除
+     */
+    private Boolean delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 77 - 0
src/main/java/com/charging/chargingparking/entity/SysUser.java

@@ -0,0 +1,77 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ *
+ * @TableName sys_user
+ */
+@TableName(value ="sys_user")
+@Data
+public class SysUser implements Serializable {
+    /**
+     * 用户编号
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 用户名
+     */
+    private String userName;
+
+    /**
+     * 密码
+     */
+    @TableField(value = "password_")
+    private String password;
+
+    /**
+     * 真实名称
+     */
+    private String realName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标示
+     */
+    private Boolean delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 所属公司编号
+     */
+    private String companyId;
+
+    /**
+     * open id
+     */
+    private String openId;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 61 - 0
src/main/java/com/charging/chargingparking/entity/SysUserRole.java

@@ -0,0 +1,61 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 
+ * @TableName sys_user_role
+ */
+@TableName(value ="sys_user_role")
+@Data
+public class SysUserRole implements Serializable {
+    /**
+     * 用户角色关联编号
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 角色编号
+     */
+    private String roleId;
+
+    /**
+     * 用户编号
+     */
+    private String userId;
+
+    /**
+     * 是否删除
+     */
+    private Boolean delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 83 - 0
src/main/java/com/charging/chargingparking/interceptor/LoginInterceptor.java

@@ -0,0 +1,83 @@
+package com.charging.chargingparking.interceptor;
+
+import com.charging.chargingparking.dto.MessageResult;
+import com.charging.chargingparking.utils.JwtUtil;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.jsonwebtoken.Claims;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLDecoder;
+
+@Slf4j
+@Component
+public class LoginInterceptor implements HandlerInterceptor {
+    @Value("${jwt.secret}")
+    private String jwtSecret;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        if (request.getMethod().equals("OPTIONS")){
+            return true;
+        }
+
+        String token = request.getHeader("Authorization");
+
+        if (StringUtils.isEmpty(token)){
+            token = (String)request.getSession().getAttribute("token");
+        }
+
+        if (StringUtils.isEmpty(token) && !StringUtils.isEmpty(request.getParameter("token"))) {
+            token = URLDecoder.decode(request.getParameter("token"),"UTF-8");
+        }
+
+        boolean result;
+
+        try {
+            Claims claims = JwtUtil.decodeTokenForClaims(jwtSecret, token);
+            String subject = (String) claims.get("subject");
+
+            if(StringUtils.isEmpty(subject)){
+                log.warn("token=" + token);
+
+                //兼容之前的token
+                subject = JwtUtil.decodeTokenForSubject(jwtSecret, token);
+                request.setAttribute("subject", subject);
+            }
+            else {
+                String roles = (String) claims.get("roles");
+                String permissions = (String) claims.get("permissions");
+
+                request.setAttribute("subject", subject);
+                request.setAttribute("roles", roles);
+                request.setAttribute("permissions", permissions);
+            }
+
+            result = true;
+        }
+        catch(Exception ex){
+            MessageResult<String> msgResult = new MessageResult<>();
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+            msgResult.setCode(415);
+
+            ObjectMapper mapper = new ObjectMapper();
+            String json = mapper.writeValueAsString(msgResult);
+
+            response.setContentType("application/json");
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("access-control-allow-origin","*");
+            response.getWriter().print(json);
+
+            result = false;
+        }
+
+        return result;
+    }
+}

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysDataDictionaryMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysDataDictionary;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysDataDictionary
+ */
+public interface SysDataDictionaryMapper extends BaseMapper<SysDataDictionary> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysLogMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysLog
+ */
+public interface SysLogMapper extends BaseMapper<SysLog> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysMenuMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysMenu;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysMenu
+ */
+public interface SysMenuMapper extends BaseMapper<SysMenu> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysPermissionMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysPermission;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysPermission
+ */
+public interface SysPermissionMapper extends BaseMapper<SysPermission> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysRoleMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysRole;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysRole
+ */
+public interface SysRoleMapper extends BaseMapper<SysRole> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysRoleMenuMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysRoleMenu;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysRoleMenu
+ */
+public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysRolePermissionMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysRolePermission;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysRolePermission
+ */
+public interface SysRolePermissionMapper extends BaseMapper<SysRolePermission> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysUserMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysUser
+ */
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/charging/chargingparking/mapper/SysUserRoleMapper.java

@@ -0,0 +1,15 @@
+package com.charging.chargingparking.mapper;
+
+import com.charging.chargingparking.entity.SysUserRole;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.charging.chargingparking.entity.SysUserRole
+ */
+public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
+
+}
+
+
+
+

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysDataDictionaryService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysDataDictionary;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysDataDictionaryService extends IService<SysDataDictionary> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysLogService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysLogService extends IService<SysLog> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysMenuService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysMenu;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysMenuService extends IService<SysMenu> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysPermissionService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysPermission;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysPermissionService extends IService<SysPermission> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysRoleMenuService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysRoleMenu;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysRoleMenuService extends IService<SysRoleMenu> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysRolePermissionService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysRolePermission;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysRolePermissionService extends IService<SysRolePermission> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysRoleService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysRole;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysRoleService extends IService<SysRole> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysUserRoleService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysUserRole;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysUserRoleService extends IService<SysUserRole> {
+
+}

+ 11 - 0
src/main/java/com/charging/chargingparking/service/SysUserService.java

@@ -0,0 +1,11 @@
+package com.charging.chargingparking.service;
+
+import com.charging.chargingparking.entity.SysUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface SysUserService extends IService<SysUser> {
+
+}

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysDataDictionaryServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysDataDictionary;
+import com.charging.chargingparking.service.SysDataDictionaryService;
+import com.charging.chargingparking.mapper.SysDataDictionaryMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysDataDictionaryServiceImpl extends ServiceImpl<SysDataDictionaryMapper, SysDataDictionary>
+    implements SysDataDictionaryService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysLogServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysLog;
+import com.charging.chargingparking.service.SysLogService;
+import com.charging.chargingparking.mapper.SysLogMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog>
+    implements SysLogService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysMenuServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysMenu;
+import com.charging.chargingparking.service.SysMenuService;
+import com.charging.chargingparking.mapper.SysMenuMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
+    implements SysMenuService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysPermissionServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysPermission;
+import com.charging.chargingparking.service.SysPermissionService;
+import com.charging.chargingparking.mapper.SysPermissionMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, SysPermission>
+    implements SysPermissionService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysRoleMenuServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysRoleMenu;
+import com.charging.chargingparking.service.SysRoleMenuService;
+import com.charging.chargingparking.mapper.SysRoleMenuMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu>
+    implements SysRoleMenuService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysRolePermissionServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysRolePermission;
+import com.charging.chargingparking.service.SysRolePermissionService;
+import com.charging.chargingparking.mapper.SysRolePermissionMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysRolePermissionServiceImpl extends ServiceImpl<SysRolePermissionMapper, SysRolePermission>
+    implements SysRolePermissionService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysRoleServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysRole;
+import com.charging.chargingparking.service.SysRoleService;
+import com.charging.chargingparking.mapper.SysRoleMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole>
+    implements SysRoleService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysUserRoleServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysUserRole;
+import com.charging.chargingparking.service.SysUserRoleService;
+import com.charging.chargingparking.mapper.SysUserRoleMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole>
+    implements SysUserRoleService{
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/charging/chargingparking/service/impl/SysUserServiceImpl.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.SysUser;
+import com.charging.chargingparking.service.SysUserService;
+import com.charging.chargingparking.mapper.SysUserMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
+    implements SysUserService{
+
+}
+
+
+
+

+ 90 - 0
src/main/java/com/charging/chargingparking/utils/JwtUtil.java

@@ -0,0 +1,90 @@
+package com.charging.chargingparking.utils;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.security.Keys;
+
+import java.security.Key;
+import java.util.Base64;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+public class JwtUtil {
+    public static String createToken(String jwtSecret, String subject, Date expiration) {
+        //token有效时间天
+        byte[] privateKey = Base64.getDecoder().decode(jwtSecret);
+
+        Key key = Keys.hmacShaKeyFor(privateKey);
+
+        Map<String,Object> extraInfo = new HashMap<>();
+        extraInfo.put("subject", subject);
+
+        String token = Jwts.builder()
+//                    .setSubject(subject)
+                //设置自定义claims后,setSubject值将失效
+                .setClaims(extraInfo)
+                .signWith(key)
+                .setExpiration(expiration)
+                .compact();
+
+        return "Bearer " + token;
+    }
+
+    public static String createToken(String jwtSecret, String userId,String roles,String permissions, Date expiration) {
+        //token有效时间天
+        byte[] privateKey = Base64.getDecoder().decode(jwtSecret);
+
+        Key key = Keys.hmacShaKeyFor(privateKey);
+
+        Map<String,Object> extraInfo = new HashMap<>();
+        extraInfo.put("subject", userId);
+        extraInfo.put("roles", roles);
+        extraInfo.put("permissions", permissions);
+
+        String token = Jwts.builder()
+//                    .setSubject(subject)
+                //设置自定义claims后,setSubject值将失效
+                .setClaims(extraInfo)
+                .signWith(key)
+                .setExpiration(expiration)
+                .compact();
+
+        return "Bearer " + token;
+    }
+
+    public static Claims decodeTokenForClaims(String jwtSecret,String token) throws Exception{
+        String prefix = "Bearer ";
+
+        if (token==null || token.length() < prefix.length()){
+            throw new Exception("未传递令牌或未带前缀Bearer!");
+        }
+
+        token = token.substring(prefix.length());
+
+        byte[] privateKey = Base64.getDecoder().decode(jwtSecret);
+
+        Key key = Keys.hmacShaKeyFor(privateKey);
+
+        Claims claims = Jwts.parser()
+                .setSigningKey(key)
+                .parseClaimsJws(token)
+                .getBody();
+
+        return claims;
+    }
+
+    public static String decodeToken(String jwtSecret,String token) throws Exception{
+        Claims claims = decodeTokenForClaims(jwtSecret,token);
+
+        String subject = (String)claims.get("subject");
+
+        return subject;
+    }
+
+    public static String decodeTokenForSubject(String jwtSecret,String token) throws Exception{
+        Claims claims = decodeTokenForClaims(jwtSecret,token);
+
+        return claims.getSubject();
+    }
+}

+ 19 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,19 @@
+spring:
+  datasource:
+    url: jdbc:log4jdbc:mysql://192.168.33.20:3306/charging_parking?autoReconnect=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+    username: root
+    password: jpsoft2016
+  devtools:
+    add-properties: false
+    restart:
+      enabled: true
+  redis:
+    # Redis数据库索引(默认为0)
+    database: 3
+    # Redis服务器地址
+    host: 127.0.0.1
+  rabbitmq:
+    virtual-host: housekeeper-dev
+logger:
+  level: WARN
+  dir: "D:\\logs\\charging-parking"

+ 0 - 0
src/main/resources/application-producation.yml


+ 0 - 0
src/main/resources/application-test.yml


+ 105 - 0
src/main/resources/application.yml

@@ -0,0 +1,105 @@
+server:
+  port: 8081
+  servlet:
+    context-path: /charging-parking
+
+
+spring:
+  servlet:
+    multipart:
+      max-request-size: 20MB
+      max-file-size: 20MB
+  datasource:
+    driver-class-name: net.sf.log4jdbc.DriverSpy
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      # 连接池的配置信息
+      # 初始化大小,最小,最大
+      initial-size: 5
+      min-idle: 5
+      maxActive: 50
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      validationQuery: SELECT 1
+      testWhileIdle: true
+      # 获取连接时检测连接是否可用
+      testOnBorrow: true
+      testOnReturn: false
+      # 打开PSCache,并且指定每个连接上PSCache的大小(PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。)
+      poolPreparedStatements: false
+      maxPoolPreparedStatementPerConnectionSize: 20
+      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+      filters: stat,wall
+      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+      connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+      # 配置DruidStatFilter
+      web-stat-filter:
+        enabled: true
+        url-pattern: "/*"
+        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
+      # 配置DruidStatViewServlet
+      stat-view-servlet:
+        enabled: true
+        url-pattern: "/druid/*"
+        # IP白名单(没有配置或者为空,则允许所有访问)
+        allow:
+        # IP黑名单 (存在共同时,deny优先于allow)
+        deny:
+        #  禁用HTML页面上的“Reset All”功能
+        reset-enable: false
+        # 登录名
+        login-username: admin
+        # 登录密码
+        login-password: jpsoft
+  devtools:
+    restart:
+      enabled: true
+  profiles:
+    active: "dev"
+  redis:
+    # Redis数据库索引(默认为0)
+    database: 4
+    # Redis服务器地址
+    host: 127.0.0.1
+    #host: 127.0.0.1
+    # Redis服务器连接端口
+    port: 6379
+    # Redis服务器连接密码(默认为空)
+    password:
+    #password: 123456
+    # 连接池最大连接数(使用负值表示没有限制)
+    pool:
+      max-active: 8
+      # 连接池最大阻塞等待时间(使用负值表示没有限制)
+      max-wait: -1
+      # 连接池中的最大空闲连接
+      max-idle: 8
+      # 连接池中的最小空闲连接
+      min-idle: 0
+      # 连接超时时间(毫秒)
+      timeout: 0
+  rabbitmq:
+    #    host: 119.36.146.59
+    host: 192.168.33.20
+    port: 5672
+    username: admin
+    password: admin
+    #虚拟host 可以不设置,使用server默认host
+    virtual-host: devmq
+  resources:
+    static-locations: classpath:/static/
+  thymeleaf:
+    cache: false
+    mode: HTML
+    prefix: classpath:/templates/
+    suffix: .html
+    encoding: UTF-8
+    servlet:
+      content-type: text/html; charset=utf-8
+jwt:
+  secret: WJgLLiAktNj/vCNEoz6mfAmE0btwluCTk/TnJiZOIkQ=
+  header: Authorization

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

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+<!--    <include resource="org/springframework/boot/logging/logback/base.xml"/>-->
+    <!--
+    官方文档指明,需要使用<springProperty>,才可使用application.properties(或application.yml)中的值
+    -->
+    <springProperty scope="context" name="loggerLevel" source="logger.level"/>
+    <springProperty scope="context" name="loggerPath" source="logger.dir"/>
+    <property name="pattern" value="%date %level [%thread] %logger{36} [%file : %line] %msg%n"></property>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>ipcon
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${loggerPath}/logfile.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${loggerPath}/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="HK" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${loggerPath}/hk/logfile.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${loggerPath}/hk/%d{yyyy-MM-dd}.log</fileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%date %level [%file : %line] %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!--
+    直接用maven的变量是@...@,用spring的变量是${...}
+    -->
+    <springProfile name="dev">
+        <root level="INFO">
+            <appender-ref ref="STDOUT"/>
+        </root>
+        <!--root的level不能用变量-->
+        <logger name="jdbc" level="WARN" additivity="false">
+            <appender-ref ref="STDOUT" />
+        </logger>
+        <logger name="jdbc.sqltiming" level="ON" additivity="false">
+            <appender-ref ref="STDOUT" />
+        </logger>
+        <logger name="com.charging" level="${loggerLevel}" additivity="false" >
+            <appender-ref ref="STDOUT" />
+        </logger>
+        <logger name="com.charging.chargingparking" level="${loggerLevel}" additivity="false" >
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="HK" />
+        </logger>
+    </springProfile>
+    <springProfile name="test">
+        <root level="WARN">
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="FILE" />
+        </root>
+        <logger name="com.charging.chargingparking" level="${loggerLevel}" additivity="false" >
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="HK" />
+        </logger>
+    </springProfile>
+    <springProfile name="production">
+        <root level="WARN">
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="FILE" />
+        </root>
+        <logger name="com.charging.chargingparking" level="${loggerLevel}" additivity="false" >
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="HK" />
+    </logger>
+    </springProfile>
+</configuration>

+ 28 - 0
src/main/resources/mapper/SysDataDictionaryMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysDataDictionaryMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysDataDictionary">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="name" column="name_" jdbcType="VARCHAR"/>
+            <result property="value" column="value_" jdbcType="VARCHAR"/>
+            <result property="sortNo" column="sort_no" jdbcType="INTEGER"/>
+            <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+            <result property="dataType" column="data_type" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="activated" column="activated_" jdbcType="BIT"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name_,value_,
+        sort_no,parent_id,data_type,
+        create_by,create_date,update_by,
+        update_date,activated_,del_flag
+    </sql>
+</mapper>

+ 24 - 0
src/main/resources/mapper/SysLogMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysLogMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysLog">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="remoteIp" column="remote_ip" jdbcType="VARCHAR"/>
+            <result property="url" column="url_" jdbcType="VARCHAR"/>
+            <result property="data" column="data_" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="remark" column="remark_" jdbcType="VARCHAR"/>
+            <result property="pointcut" column="pointcut_" jdbcType="VARCHAR"/>
+            <result property="elapse" column="elapse_" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,remote_ip,url_,
+        data_,user_id,create_time,
+        remark_,pointcut_,elapse_
+    </sql>
+</mapper>

+ 28 - 0
src/main/resources/mapper/SysMenuMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysMenuMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysMenu">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="menuName" column="menu_name" jdbcType="VARCHAR"/>
+            <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+            <result property="sortNo" column="sort_no" jdbcType="INTEGER"/>
+            <result property="menuUrl" column="menu_url" jdbcType="VARCHAR"/>
+            <result property="icon" column="icon_" jdbcType="VARCHAR"/>
+            <result property="menuType" column="menu_type" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,menu_name,parent_id,
+        sort_no,menu_url,icon_,
+        menu_type,create_time,create_by,
+        update_time,update_by,del_flag
+    </sql>
+</mapper>

+ 24 - 0
src/main/resources/mapper/SysPermissionMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysPermissionMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysPermission">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="path" column="path_" jdbcType="VARCHAR"/>
+            <result property="method" column="method_" jdbcType="VARCHAR"/>
+            <result property="summary" column="summary_" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,path_,method_,
+        summary_,del_flag,create_by,
+        update_by,create_time,update_time
+    </sql>
+</mapper>

+ 23 - 0
src/main/resources/mapper/SysRoleMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysRoleMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysRole">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="name" column="name_" jdbcType="VARCHAR"/>
+            <result property="description" column="description_" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name_,description_,
+        create_time,update_time,del_flag,
+        create_by,update_by
+    </sql>
+</mapper>

+ 23 - 0
src/main/resources/mapper/SysRoleMenuMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysRoleMenuMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysRoleMenu">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="roleId" column="role_id" jdbcType="VARCHAR"/>
+            <result property="menuId" column="menu_id" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,role_id,menu_id,
+        del_flag,create_by,create_time,
+        update_by,update_time
+    </sql>
+</mapper>

+ 23 - 0
src/main/resources/mapper/SysRolePermissionMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysRolePermissionMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysRolePermission">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="permId" column="perm_id" jdbcType="VARCHAR"/>
+            <result property="roleId" column="role_id" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,perm_id,role_id,
+        del_flag,create_by,update_by,
+        create_time,update_time
+    </sql>
+</mapper>

+ 27 - 0
src/main/resources/mapper/SysUserMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysUserMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysUser">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="password" column="password_" jdbcType="VARCHAR"/>
+            <result property="realName" column="real_name" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+            <result property="openId" column="open_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,user_name,password_,
+        real_name,create_time,update_time,
+        del_flag,create_by,update_by,
+        company_id,open_id
+    </sql>
+</mapper>

+ 23 - 0
src/main/resources/mapper/SysUserRoleMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.SysUserRoleMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.SysUserRole">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="roleId" column="role_id" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,role_id,user_id,
+        del_flag,create_by,update_by,
+        create_time,update_time
+    </sql>
+</mapper>

+ 25 - 0
src/test/java/com/charging/chargingparking/ChargingParkingApplicationTests.java

@@ -0,0 +1,25 @@
+package com.charging.chargingparking;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.redis.core.ValueOperations;
+
+import java.util.concurrent.TimeUnit;
+
+@SpringBootTest
+class ChargingParkingApplicationTests {
+
+    @Autowired
+    private ValueOperations<String, Object> valueOperations;
+
+
+    @Test
+    void contextLoads() {
+
+        valueOperations.set("111", "2020", 10, TimeUnit.MINUTES);
+
+
+    }
+
+}